如何在Windows系统账号下启动Python进程
我正在用Python写一个测试应用程序,为了测试某个特定的场景,我需要在Windows的SYSTEM账户下启动我的Python子进程。
我可以通过把我的Python脚本转换成exe文件,然后在创建Windows服务时使用这个exe来实现。但是这个方法对我来说不太好,因为如果将来我对Python脚本做了任何修改,我就得每次都重新生成exe文件。
如果有人有更好的办法来做到这一点,请告诉我。
Bishnu
4 个回答
0
要以系统账户的权限运行一个文件,你可以使用 psexec
工具。首先,下载这个工具:
然后你可以使用:
os.system
或者
subprocess.call
接着执行:
PSEXEC -i -s -d CMD "path\to\yourfile"
0
你也可以使用Windows任务计划程序,它可以在SYSTEM账户下运行一个脚本,而且它的界面很简单(如果你不经常测试的话 :-))
2
- 创建一个可以永久运行的服务。
- 为这个服务设置一个可以进行进程间通信的通道。
- 从你的桌面Python代码中,向这个服务发送消息,通过那个通信通道。这些消息会告诉服务需要执行什么操作。
- 服务接收到消息后,就会执行相应的操作,也就是运行发送方请求的Python代码。
这样做可以让服务和它执行的Python代码分开,这样你就不需要每次都重新安装服务了。
如果你不想以服务的方式运行,可以使用 CreateProcessAsUser
或类似的API。