在Win 7上使用Python访问PHP中的网络驱动器

时间:2015-07-22 00:19:50

标签: php python com share drive

我正在尝试从python访问网络驱动器共享。我有基本的检查:

if not os.access('\\\\path', os.W_OK):
     print 'Not accessible' 
else:
     print 'Accessible'

它有效,但当我从php调用该脚本时,它表示“无法访问”#。

我认为问题可能是因为PHP不在我登录的用户帐户下运行,但是如何指定具有适当权限的用户?

我通过exec命令调用python脚本:

exec('python "path-to.py"');

我正在使用Win 7机器。如果我将RunAs /user:username password添加到exec命令的末尾 - 没有任何反应。

1 个答案:

答案 0 :(得分:0)

OP解决方案。

由于PHP脚本无法访问网络共享,因此我决定使用PHP映射网络驱动器。为此,我使用了以下两行:

$WshNetwork = new COM("WScript.Network");
$WshNetwork->MapNetworkDrive("L:", '\\\\path', FALSE, 'domain\\username', 'password');

我在这个帖子上学到了:link(请注意有两页)

第一次使用COM连接时,出现错误:

  

同一用户与服务器或共享资源的多个连接,   不允许使用多个用户名< ...>

这基本上意味着您已经连接到网络驱动器。为了解决这个问题,我在以下组合中使用了net use命令:

net use * /delete /noconfirm
taskkill /f /IM explorer.exe
explorer.exe
net use x: \\myServer\mySHaredFolder

我在这里发现:link

您可以使用net use命令查看记住哪些连接(=存在)。列出连接后,您可以使用net use /delete \\your_connection删除所需的连接,或使用net use * /delete删除所有连接。之后,您需要重新启动计算机,但为了避免这样做,您只需首先在控制台上关闭explorer.exe,然后重新启动:taskkill /f /IM explorer.exe explorer.exe。 >

我还有一些映射到驱动器的“死链接”。如何删除我从这里学到的“死链接”:

  

如何在Windows主题中断开未映射的UNC路径“驱动器”:   link

基本上指示您清除注册表:

  1. 以管理员身份运行cmd
  2. 输入regedit
  3. 导航至HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\mountPoints2
  4. 删除可疑条目并重新启动
  5. 之后,您的资源管理器(我的电脑)应该清晰,COM应该可以工作。 PHP现在能够从python脚本获取输出,该脚本执行网络驱动器上所需的任何操作。