Я сделал пакетный скрипт, который содержит различные поля% username%. Ему нужны привилегии администратора для запуска некоторых команд, но когда я делаю это, все поля% username%, для запуска которых требуется admin, меняются на имя пользователя admin, а не на пользователя, вошедшего в систему. Есть ли в любом случае, я могу изменить это, чтобы они не изменились?
1 ответ
Вы можете передать %username%
в качестве параметра в Batch Script и использовать параметр в Batch Script вместо %username%
допустим, ваш script.bat выглядит так:
echo %username%
echo my name is %username%
pause
Вы можете изменить это на это:
set SomeVar=%1
echo %SomeVar%
echo my name is %SomeVar%
pause
это установит переменную %SomeVar%
с первым аргументом (%1
), который будет передан вашему сценарию.
Сохраните скрипт где-нибудь, затем создайте ярлык на рабочем столе пользователя, не являющегося администратором.
Затем сделайте следующее (см. Скриншот ниже, извините за немецкий язык)
- Откройте свойства ярлыка
- добавить
%username%
к цели (это аргумент%1
) - нажмите на
advanced
- проверьте
run as admin
- ударил
ok
когда вы дважды щелкнете по ярлыку, а пользователь не является администратором, он запросит учетные данные и запустит скрипт с вашим аргументом