Я сделал пакетный скрипт, который содержит различные поля% username%. Ему нужны привилегии администратора для запуска некоторых команд, но когда я делаю это, все поля% username%, для запуска которых требуется admin, меняются на имя пользователя admin, а не на пользователя, вошедшего в систему. Есть ли в любом случае, я могу изменить это, чтобы они не изменились?

1 ответ1

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), который будет передан вашему сценарию.

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

Затем сделайте следующее (см. Скриншот ниже, извините за немецкий язык)

  1. Откройте свойства ярлыка
  2. добавить %username% к цели (это аргумент %1)
  3. нажмите на advanced
  4. проверьте run as admin
  5. ударил ok

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .