Я ищу подтверждение или опровержение своей теории. У нас есть служба Windows, которая работает под учетной записью LocalSystem. служба звонит msbuild
и строит csproj
(Проект Visual Studio), в котором используется переменная среды. Но его падение, поскольку он не может распознать или найти эту переменную среды.
Есть ли способ проверить или убедиться, что служба win, работающая под LocalSystem, имеет доступ к переменным среды?
Программы, работающие как SYSTEM (LocalSystem, NT_AUTHORITY \ SYSTEM), будут иметь среду, созданную из переменных, указанных в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
и в HKEY_USERS\.DEFAULT\Environment
. Убедитесь, что переменные, которые вы хотите «видеть», определены в одном из этих мест и будут доступны.
Если переменные среды меняются и вы запускаете службу (как LocalSystem) в Windows Server 2003, XP или 2000, то вы можете столкнуться с ситуацией, когда вам нужно перезагрузить компьютер, чтобы диспетчер служб повторно прочитал Окружающая среда. Видеть эта статья в базе знаний для получения дополнительной информации.
Доступно исправление для Windows Server 2003, которая решит эту проблему.