2016-03-30 9 views
1

Мы разработали приложение Windows и развернуто в среде сервера терминалов/citrix.RDP «ClientName» Переменная среды имеет значение NULL, если она запущена как администратор

Мы использовали Enviornment.GetEnvironmentVariable ("CLIENTNAME") для получения имени клиента , откуда обращается RDP.

Если я запустил приложение с обычной привилегией (двойное нажатие на приложение), то я получаю правильное значение в переменной «ClientName» Env Variable.

Но когда я запускаю одно и то же приложение с правами администратора (щелкните правой кнопкой мыши и запустим как администратор), , то тогда переменная Env Variant вернет значение null.

Примечание: я написал небольшое приложение и получил все переменные окружения на виртуальной машине (RDP) с использованием «Environment.GetEnvironmentVariables()». Переменные Env «ClientName» отображаются только тогда, когда они выполняются с обычной привилегией , и та же переменная скрыта, если выполняется с правами администратора.

Кто-нибудь может сообщить нам, почему переменная Env «ClientName» скрыта от прав администратора?

С уважением, Гуру

+0

У меня тот же вопрос. Удалось ли вам найти решение? – user594643

ответ

0

Это звучит, как это может быть ваша проблема:

При удаленном подключении с Подключение к удаленному рабочему столу, то переменные окружения CLIENTNAME и имя_сеанса добавляются к каждому процесса, который начал.

Если вы установите вариант папки «окно папки запуска в отдельном процессе», а затем запустить приложение из дополнительного окна Проводника , приложение не будет видеть эту дополнительную окружающую среды переменные.

Чтобы устранить проблему:

Если ваше приложение зависит от этих переменных, удалите папку вариант «окна папки запуска в отдельном процессе».

Explorer image

MS Статья: https://support.microsoft.com/en-us/kb/2509192

 Смежные вопросы

  • Нет связанных вопросов^_^