'net use' 命令如何与不同的用户和不同的进程一起工作

'net use' 命令如何与不同的用户和不同的进程一起工作

最近,我编写了一个 python 脚本来对共享网络驱动器(需要身份验证才能访问)上的文件夹进行一些常规文件操作和维护。

当我在本地机器上运行该脚本时,它运行正常,能够毫无问题地访问网络驱动器。然后我将脚本放在远程机器上,并让 Jenkins 运行它。Jenkins 给我一个访问被拒绝的错误,因为 Jenkins 是作为本地系统帐户运行的服务安装的,而本地系统帐户无权访问共享驱动器。

因此,在寻找解决方案后,我发现我可以使用 net use 命令通过其他凭据获取网络访问权限。我尝试编写一个 powershell 脚本,使用 net use 并传递我的登录信息来调用 python 脚本。

这不起作用。

最后,我尝试在 python 脚本中使用 os.sys('net use user/pass') 执行 net use 命令,并且成功了!

所以,我的问题是......为什么当 net use 命令放在 python 脚本中而不是放在用于调用 python 的 powershell 脚本中时它会起作用?

我在网上读到的关于“net use”的大部分内容都将其描述为“映射”到网络驱动器?但我的计算机已经知道该驱动器存在并且位于何处,只是在我使用该命令输入用户名和密码之前无法访问它。此命令的网络身份验证范围是什么?子进程不保留相同的身份验证吗?

相关内容