|
|
1
1
呃。。。遗憾的是,简短的答案是否定的。如果python程序作为Windows服务运行,这里会有多种复杂的情况…所以让我解释一下。 首先,为了允许服务程序本身访问网络,它必须在允许网络访问的用户帐户下运行。系统帐户已退出(禁止所有网络访问),但您可以使用“网络服务”帐户(在域环境中,该帐户实际上是计算机的域帐户)或其他实际用户帐户。 但是,您将无法在服务帐户中映射驱动器,因为它没有加载用户配置文件,其中包含将驱动器号“映射”到驱动器号的功能。(从技术上讲,如果服务运行的是一个cmd批处理文件,那么该脚本可以映射一个驱动器号并使用它,但是在下一次登录时它将不会持久化……但是不要忘记。)相反,程序想要进入网络的任何东西都应该通过UNC路径(如\servername\sharename)访问。 最后,不可能使驱动器映射“对所有用户”都有效——映射的驱动器对于每个用户配置文件都是唯一的(即使它使用相同的字母指向相同的服务器共享)。如果有多个用户登录到一台计算机(例如,在终端服务器上,或者在另一个用户帐户下运行一个用户和一个服务),那么他们就不能共享映射的驱动器——每个用户都必须拥有自己的驱动器。 但是,您可以这样做:创建一个登录脚本(或组策略等),将驱动器与预期字母(例如“m”)映射到服务器共享(\server\share)。如果此脚本在登录时为每个用户运行,那么它们都将具有相同的映射。然后,当程序运行即服务需要访问该共享时,它必须使用UNC路径(当然,还必须使用具有适当权限的用户帐户)。 希望有帮助! |
|
|
jack · Powershell如何注册网络连接丢失事件? 8 年前 |
|
|
Steve Hobbs · 插入XML的空格 9 年前 |
|
|
Zev Spitz · 使用WMI读取自动化类型信息 11 年前 |