Php 如何使用IIS7设置用户访问网络驱动器目录的权限

Php 如何使用IIS7设置用户访问网络驱动器目录的权限,php,permissions,iis-7,file-permissions,user-permissions,Php,Permissions,Iis 7,File Permissions,User Permissions,首先,这个问题是我上一个问题的延伸。 我的目标还是一样的。我在网络驱动器(驱动器1)上有IIS7服务器(在那里我运行一些PHP),当我尝试访问另一个网络驱动器(驱动器2)时,需要使用pdftotext.exe访问PDF文件 在驱动器1上,当存储所有需要访问的文件时,我在驱动器2的目录(tarDir)上也有一个虚拟/链接目录(virDir) 当我自己运行pdftotext.exe时,一切都像一个魔咒一样工作,在驱动器1上创建了带有pdfcontent的输出文件,每个人都过着幸福的生活,直到死去。但

首先,这个问题是我上一个问题的延伸。 我的目标还是一样的。我在网络驱动器(驱动器1)上有IIS7服务器(在那里我运行一些PHP),当我尝试访问另一个网络驱动器(驱动器2)时,需要使用pdftotext.exe访问PDF文件

在驱动器1上,当存储所有需要访问的文件时,我在驱动器2的目录(tarDir)上也有一个虚拟/链接目录(virDir)

当我自己运行pdftotext.exe时,一切都像一个魔咒一样工作,在驱动器1上创建了带有pdfcontent的输出文件,每个人都过着幸福的生活,直到死去。但当我试图执行PHP脚本时,它存储在virDir的驱动器1中,通过exec命令运行pdftotext.exe,它返回1,并且不创建任何文件

在我的最后一个问题中,我发现这可能是权限问题,但我有点困惑如何设置它们。IIS7有一些内部用户,比如IUSR和IIS_IUSRS,当我调用
get_current_user()时
那个么,我需要将哪些权限同时设置为dir(virDir和tarDir),以便服务器可以访问它们

我试着让testUser在tarDir(驱动器2)上设置了修改、读取、执行、列出文件夹内容、读取、写入权限,而IUSR、testUser和II_IUSR在tarDir(驱动器1)上设置了读取、执行、列出文件夹内容、读取、写入权限

当我尝试访问“普通”文件时,如txt、pptx等,我可以毫无问题地读取它们(我使用php库),但当我尝试使用pdftotext.exe时,它失败了

有人能看出我做错了什么吗

编辑: 所以我做了一些其他的测试,当我运行这个comand时(运行命令行的是我的同事)

echo“
命令行中的我是谁?
”; $out=array(); exec('cmd/c whoami 2>&1',$out,$exitcode); echo“
EXEC:(exitcode:$exitcode)”; 回声“
”; 打印(输出); 回声“;

在驱动器1上运行它表明命令行是由testUser运行的,但当我在驱动器1 virDir中运行它时,它返回1。所以可能会出现在shell中执行命令的权限问题。。。我将回答任何提示…

因此,似乎问题不在权限中(我将两个目录的权限都设置为testUser,但仍然得到相同的错误),但当我将pdftotext.exe移动到虚拟目录时,现在看起来它正在工作。但是我很好奇为什么…

将权限用作“Everyone”,这样就可以毫无问题地访问目录

步骤:

  • 右键单击目录文件夹并选择属性
  • 在“安全性”选项卡下,单击“编辑”按钮
  • 现在单击添加按钮
  • 在字段中指定“所有人”:输入要选择的对象名称,然后单击“检查名称”以识别该对象
  • 完全控制并应用
  • 最近我遇到了同样的问题,上面的步骤解决了它

    echo "<br> who am i in command line? <br>";
    $out = array();
    exec('cmd /c whoami 2>&1',$out,$exitcode);
    echo "<br />EXEC: ( exitcode : $exitcode )";
    echo "<hr /><pre>";
    print_r($out);
    echo "</pre>";