在 LocalService 帐户下运行的 Win 服务无法访问环境变量

在 LocalService 帐户下运行的 Win 服务无法访问环境变量

我正在寻找证据来证明或反驳我的理论。我们有在 LocalSystem 帐户下运行的 Windows 服务。该服务正在调用msbuild并构建csproj(Visual Studio 项目)文件,该文件使用环境变量。但由于无法识别或找到该环境变量,因此失败。

有什么方法可以测试或确保在 LocalSystem 下运行的 win 服务可以访问环境变量?

答案1

如果您的环境变量正在发生变化,并且您正在 Windows Server 2003、XP 或 2000 中运行服务(作为 LocalSystem),那么您可能会遇到需要重新启动计算机以便服务管理器重新读取环境的情况。请参阅此知识库文章了解更多信息。

有可用的修补程序适用于 Windows Server 2003,可以解决此问题。

答案2

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment以 SYSTEM (LocalSystem、NT_AUTHORITY\SYSTEM) 身份运行的程序将具有由和 处指定的变量构建的环境HKEY_USERS\.DEFAULT\Environment。确保您希望它“看到”的变量在其中一个位置定义,并且可以访问它们。

相关内容