Ste*_*eve 6 .net windows windows-services batch-file
我有一个启动Windows服务的批处理作业
sc serverName start serviceName
Run Code Online (Sandbox Code Playgroud)
我想在启动服务时为该服务设置一个环境变量,类似于您将其用于子流程的方式。如何使用Windows服务做到这一点?
为了澄清起见,我不想设置任何全局环境变量,而只为该特定进程设置一个。而且我无权访问实际的服务代码。
我不知道你使用哪种语言,但假设你使用的是 C# 并且派生自你的类ServiceBase具有该方法
protected override void OnStart(string[] args)
Run Code Online (Sandbox Code Playgroud)
包含字符串数组中的参数。所以开始你的服务
sc serverName start serviceName param1 param2
Run Code Online (Sandbox Code Playgroud)
会做这项工作。
改编自服务器故障上的这个答案:
将多字符串“Environment”值添加到服务的注册表项中的注册表项中HKLM\SYSTEM\CurrentControlSet\Services\SERVICE_NAME。每个字符串值应该是名称=值对,其中名称是您希望服务具有的环境变量名称,值是环境变量的值。
例如,如果您希望您的服务使用不同的TEMP环境TMP变量,
。
重新启动服务以获取新的环境变量。