Системная переменная среды, созданная во время установки, недоступна текущему пользователю до перезагрузки

StackOverflow https://stackoverflow.com/questions/1427892

Вопрос

У меня есть MSI-пакет, сгенерированный wix, который создает системную переменную среды, заполнив Environment table .

<Environment Id="CreateEnvVar" Name="DATADIR" Action="set"
        System="yes" Part="all" Value="[DATA_DIR]" />

При установке успешно создается переменная среды на системном уровне. Это было проверено путем просмотра диалогового окна Переменные среды из Свойства системы

Однако, вошедший в данный момент пользователь не имеет доступа к вновь созданным переменным окружения, пока машина не будет перезагружена (я предполагаю, что выход из системы затем снова будет работать. Просто еще не пробовал). Выполнение только что установленного приложения завершается сбоем, поскольку у него нет доступа к переменной DATADIR .

Кроме того, при открытии командной строки после завершения установки переменная DATADIR не отображается при выполнении команды set .

Я понимаю, что процесс, запущенный до выполнения MSI, не получит новые переменные. Однако почему процесс не запускается после добавления переменных окружения, чтобы получить новые?

К вашему сведению, я устанавливаю на Windows Server 2003 и вошел через удаленный рабочий стол с пользователем из группы Администраторы .

Это было полезно?

Решение

Вы устанавливаете через удаленный рабочий стол? Если это так, убедитесь, что вы используете сеанс консоли администратора.

Для этого запустите удаленный рабочий стол, используя:

  

mstsc / admin

Или, если вы используете последнюю версию RDP, она теперь:

  

mstsc / console

Попробуйте установить его из этого сеанса (или локально) и сообщите мне результат.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top