Python打包exe注册系统服务不支持网络盘符映射

Python打包成exe后注册为Windows系统服务会导致映射网络盘符失败,无论是通过os.popen、os.system调用批处理命令还是使用Python代码实现。即使代码在普通环境下运行正常,作为系统服务运行时仍会报错,表明系统服务不支持此类操作。
摘要由CSDN通过智能技术生成

经过最近几天的踩坑,验证出python打包出exe再注册成系统服务去执行会失败,失败的原因就是系统服务不允许exe里面有映射网络盘符的动作,无论是用os.popen还是os.system去调用批处理命令"net use \\ip psw /u:user"都会失败,但是只要不注册成系统服务去执行就没问题(单纯执行exe是没问题的)。

后来怀疑是批处理命令net use和系统服务不兼容,所以用纯python代码和库写了如下的代码并打包exe,exe执行没问题,但是如果注册成系统服务执行依然会报错,查看log发现映射模块报错。

结论:Windows系统服务不支持映射网络盘符。

import os,time
import win32wnet

username = 'administrator'
password = 'xxx'
host = '10.129.38.220'
#password = 'aN4#eF0$dF'
#host = '10.129.38.12'
unc = ''.join(['\\\\', host])
print(unc)

def wnet_connect(host, username, password):
    try:
        aa = win32wnet.WNetAddConnection2(0, None, unc, None, username, password)
        print(aa)
        fs = open("navy.log", "a");
        fs.write(str(aa) + '\n');
        fs.close()
    except Exc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值