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


How to set users permissions with IIS7 to access network drive directory

首先提到,这个问题是对我之前问题的扩展。我的目标还是一样。我在网络驱动器(驱动器 1(上有 IIS7 服务器(我在其中运行一些 PHP(,当我尝试访问另一个网络驱动器(驱动器 2(时,需要访问带有 pdftotext.exe的 PDF 文件。

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

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

在我的最后一个问题中,我发现这可能是权限问题,但我有点困惑如何设置它们。IIS7有一些内部用户,如IUSR和IIS_IUSRS,当我在php中调用get_current_user();时,它设置为testUser。

那么我需要同时为dirs(virDir和tarDir(设置哪些权限,以便服务器可以访问它们?

我尝试测试用户在 tarDir(驱动器 2(上设置了修改、读取执行、列出文件夹内容、读取、写入权限,IUSR、testUser 和 II_IUSRS 在 tarDir(驱动器 1(上设置了读取执行、列出文件夹内容、读取、写入权限。

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

有人能看到我做错了什么吗?

编辑:所以我做了一些其他测试,当我运行这个 comand 时(我正在运行命令行(

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>";

在驱动器 1 上运行,它显示命令行由 testUser 运行,但是当我在驱动器 1 virDir 中运行它时,它返回 1。所以可能会有关于在 shell 中执行命令的权限问题......我会否认任何暗示...

所以问题似乎不在于权限(我为两个目录设置了权限以测试用户,但仍然收到相同的错误(,但是当我将pdftotext.exe移动到虚拟目录时,现在看起来它可以工作。但我很好奇为什么...

将权限用作"所有人",以便可以毫无问题地访问该目录。

步骤:

  1. 右键单击目录文件夹并选择属性
  2. 在"安全"选项卡下,单击"编辑"按钮
  3. 现在单击添加按钮
  4. 在字段中指定"所有人":输入要选择的对象名称,然后单击检查名称以识别它。
  5. 完全控制和应用

最近我遇到了同样的问题,上面的步骤解决了它