0

У меня есть сценарий, который должен работать с Software Center, когда без прав администратора регистрируются в

Он. необходимо скопировать данные приложения в $ENV:USERNAME\AppData\<dir>\* (помимо всего прочего), и для его нормальной работы необходимо запустить администратор.

Проблема, которую я обнаружил, заключается в том, что когда скрипт запускается в профиле без администратора с правами администратора, переменная среды $ENV:USERNAME возвращает имя машины, а не фактическое имя пользователя.

Есть ли способ обойти это?

ответ

1

Вы можете использовать ([Security.Principal.WindowsIdentity]::GetCurrent()).Name или вы получите путь профиля из реестра:

HKEY_CURRENT_USER\Volatile Environment\APPDATA 
HKEY_CURRENT_USER\Volatile Environment\LOCALAPPDATA 
HKEY_CURRENT_USER\Volatile Environment\USERPROFILE 

Выберите свое оружие :)

+0

Потрясающие. Это работало как прелесть. Мне пришлось добавить ([Security.Principal.WindowsIdentity] :: GetCurrent()). Name.replace ("$ ENV: USERDOMAIN \", ""). но это было прекрасно. –

+0

Добро пожаловать :-). Вы можете нажать на счетчик рядом с моим ответом, чтобы принять его, если вы считаете его подходящим – sodawillow

+0

У меня недостаточно репутации, чтобы сделать это. Прошу прощения = ( –