在Python中访问Windows密码保护的文件
我想在一台远程的Windows机器上用Python访问一个需要用户名和密码的文件。这个问题看起来很简单,但我在网上查了很久都没有找到解决办法。
具体情况:
我在一台Windows 8电脑上运行着一个IIS网络服务器。我想要一个按钮,点击后可以调用一个脚本,去访问这台电脑上的一些受密码保护的文件。所以当按钮被按下时,我有以下的PHP代码,它会调用位于scripts文件夹中的ActiveChannelScraper.py,并把所有的输出数据显示在浏览器上:
$runCMD = 'C:\Anaconda\python scripts\ActiveChannelScraper.py';
$output= shell_exec($runCMD . "2>&1");
echo( '<pre>' );
echo( $output );
echo( '</pre>' );
所有的测试打印语句都能正常输出,直到执行到 os.listdir(p)
这一行,程序明显停止运行,因为之后我没有看到任何打印输出。这是有道理的,因为它无法列出p中的文件,因为p是受密码保护的。
我在服务器的机器上用PowerShell执行了 Set-ExecutionPolicy Unrestricted -Scope CurrentUser
。
在我的Python脚本中,我尝试使用net use命令:
os.system("net use /user:" + USER + " " + p + " " + PASS)
但它给了我一个错误信息:
System error 86 has occurred.
The specified network password is not correct.
我在自己的电脑上用自己的用户名和密码试过,结果显示 The command completed successfully.
我确认过用户名和密码,绝对是正确的。
1 个回答
0
系统错误86:如果你确定密码是正确的,那就说明你输入的用户名时没有加上域名。正确的格式应该是 /user:远程计算机名\用户名,或者如果你没有域名的话,可以用 /user:远程IP地址\用户名。还有,输入密码时不要在前面加上字母'p':
net use \\192.168.0.2 我的秘密密码 /USER:192.168.0.2\用户名