呃。。。遗憾的是,简短的答案是否定的。如果Python程序是作为Windows服务运行的,那么这里有很多复杂的问题。。。让我解释一下。在
首先,为了允许服务程序本身访问网络,它必须在允许网络访问的用户帐户下运行。系统帐户已关闭(禁止所有网络访问),但您可以使用“网络服务”帐户(在域环境中,它实际上是计算机的域帐户)或另一个实际用户帐户。在
但是你不能在服务帐户中映射一个驱动器,因为它没有加载用户配置文件的内容,包括“映射”到驱动器号的能力。(从技术上讲,如果服务运行的是一个CMD批处理文件,那么这个脚本可以映射一个驱动器号并使用它,但是在下次登录时它不会持久化。。。相反,程序想要在网络上获得的任何东西都应该通过UNC路径(如\SERVERNAME\SHARENAME)访问。在
最后,不可能使驱动器映射“适用于所有用户”,映射的驱动器对每个用户配置文件都是唯一的(即使它使用相同的字母指向同一个服务器共享)。如果您有多个用户登录到一台计算机(例如,在终端服务器上,或者某个用户和某个服务在另一个用户帐户下运行),则他们无法共享映射的驱动器,每个用户都必须拥有自己的驱动器。在
但是,您可以这样做:创建一个登录脚本(或组策略等),将带有预期字母的驱动器(例如,假设为“M:”)映射到服务器共享(\server\share)。如果每个用户都在同一个脚本上运行,那么每个用户都会运行相同的映射。然后,当您的程序作为服务运行需要访问该共享时,它必须使用UNC路径(当然,还有具有适当权限的用户帐户)。在
希望有帮助!在