Системная переменная среды, созданная во время установки, недоступна текущему пользователю до перезагрузки - PullRequest
2 голосов
/ 15 сентября 2009

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

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

При установке успешно создается переменная среды на системном уровне. Это было подтверждено просмотром диалога Environment Variables из System Properties

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

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

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

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

1 Ответ

2 голосов
/ 25 сентября 2009

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

Для этого запустите Remote Desktop, используя:

mstsc / admin

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

mstsc / console

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

...