我正在python中编写测试应用程序并测试某些特定场景,我需要在Windows SYSTEM帐户中启动我的python子进程。 我可以通过从我的python脚本创建exe然后在创建Windows服务时使用它来完成此操作。但是这个选项对我不好,因为将来如果我在python脚本中改变了什么,那么我必须每次都重新生成exe。
如果有人对如何做到这一点有更好的了解,请告诉我。
比什努
答案 0 :(得分:2)
这允许您将服务与其执行的python代码分离,从而允许您避免重复安装服务。
如果您不想在服务中运行,那么您可以使用CreateProcessAsUser
或类似的API。
答案 1 :(得分:0)
您也可以使用Windows任务计划程序,它可以在SYSTEM帐户下运行脚本,并且界面很简单(如果您不经常测试:-))
答案 2 :(得分:0)
要运行具有系统帐户权限的文件,您可以使用psexec
。下载这个:
Sysinternals
然后你可以使用:
os.system
或
subprocess.call
执行:
PSEXEC -i -s -d CMD "path\to\yourfile"
答案 3 :(得分:0)
只是碰到了这个-我知道,有点晚了,但是无论如何。我遇到了类似的情况,并使用NSSM(Non_Sucking Service Manager)解决了该问题。基本上,该程序使您可以将任何可执行文件作为服务启动,这是我对Python可执行文件所做的,并提供了我正在测试的Python脚本作为参数。
因此我可以运行该服务并根据需要编辑脚本。对脚本进行任何更改后,我只需要重新启动服务即可。
生产环境的一个要点:尽量不要依赖像NSSM这样的第三方软件。您也可以使用标准的SC
命令(see this answer)或PowerShell(see this MS doc)来实现。