Служба Win, работающая под учетной записью LocalService, не может получить доступ к переменным среды

Я ищу доказательство или опровержение моей теории. У нас есть служба Windows, которая работает под учетной записью LocalSystem. служба звонит msbuild и строит csproj Файл (проект Visual Studio), в котором используется переменная среды. Но он падает, так как не может распознать или найти эту переменную среды.

Есть ли способ, как я могу проверить или убедиться, что служба win, работающая под LocalSystem, имеет доступ к переменным среды?

2 ответа

Решение

Если переменные среды меняются, и вы запускаете службу (как LocalSystem) в Windows Server 2003, XP или 2000, то вы можете столкнуться с необходимостью перезагрузить компьютер, чтобы диспетчер служб перечитал среда. Смотрите эту статью KB для получения дополнительной информации.

Для Windows Server 2003 доступно исправление, которое решит эту проблему.

Программы, работающие как SYSTEM (LocalSystem, NT_AUTHORITY\SYSTEM), будут иметь среду, созданную из переменных, указанных в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment и в HKEY_USERS\.DEFAULT\Environment, Убедитесь, что переменные, которые вы хотите "увидеть", определены в одном из этих мест, и они будут доступны.

Другие вопросы по тегам