在Python中访问Windows密码保护的文件

0 投票
1 回答
1813 浏览
提问于 2025-04-18 09:59

我想在一台远程的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\用户名

撰写回答