应该为Windows服务设置哪些核心环境variables?

使用像srvany或nssm这样的服务pipe理器将普通程序作为服务运行时,可以使用registry来设置程序的环境: http : //support.microsoft.com/kb/197178 。 当你这样做的时候,你需要设置所有的环境variables,而不仅仅是你想改变的环境variables。 微软的文章说:“确保包含所有核心条目,如PATH,TEMP,OS等。” 什么是包含在“等等”,是否有一个明确的参考资料?

没有具体的清单,您需要设置哪些环境variables。 答案就是您的应用程序/服务将使用的所有环境variables。 这根据应用而变化。 特定的应用程序可能只使用TEMP ,或者根本不需要任何环境variables。 或者它可能会使用_NT_SYMBOL_PATH并会崩溃,如果没有find该环境variables! 没有知道你的应用程序是无法知道的。

如果你在命令行键入set ,你会得到一个你当前环境variables的列表,这是一个很好的列表。

编辑:如果你想查看当前Windows服务正在使用什么环境variables作为示例,请在Powershell 3中input以下内容:

 $(Get-Process svchost)[0].StartInfo.EnvironmentVariables