我正在Windows服务器上运行守护程序作为服务,该服务器旨在侦听触发器并在服务器上创建文件夹。但是我遇到了这样一个问题:虽然命令提示符识别我的'Y:'驱动器映射,但服务却没有。
调查一下,我被告知问题可能是映射没有普遍建立。所以我尝试让服务运行net use
命令并在该访问级别映射相同的驱动器。
注意:守护程序使用logger.info
写入文本文件。
command = ['net', 'use','Y', '\\\\REAL.IP.ADDRESS\\FOLDER',
'/user:USER', 'password']
response = subprocess.Popen(command,stdout=subprocess.PIPE)
result = response.communicate()
logger.info("net use result:")
logger.info(result[0])
logger.info(result[1])
command = ['net', 'use',]
response = subprocess.Popen(command,stdout=subprocess.PIPE)
result = response.communicate()
logger.info("Current drives:")
logger.info(result[0])
logger.info(result[1])
然而,在运行时我从过程中得不到任何响应,然后回复告诉我没有当前的驱动器。
INFO - net use result:
INFO -
INFO - None
INFO - Current drives:
INFO - New connections will be remembered. There are no entries in the list.
INFO - None
也许我很笨,但不应该回复一些东西,特别是如果它没有执行命令?或者我实际上无法在此级别映射驱动器?
注意:守护程序的记录器模块以INFO -
为前缀添加每行,因此出于此问题的目的,您可以忽略它。
答案 0 :(得分:1)
默认情况下,服务在Local System
帐户下运行,无法访问网络资源。如果您希望能够从服务访问您的网络,请尝试以具有网络权限的用户身份运行该服务。 (请注意,这可能是一个安全问题!)
在Services
面板中,转到您服务的Properties
,然后点击Log On
标签。选择This account
并指定用户凭据。