Как избежать запроса UAC при запуске сценария powershell

Я запускаю скрипт powershell через Дженкинса. Он имеет один командлет, который требует повышенного разрешения. поэтому я пишу эти командлеты, как показано ниже

start-process powershell.exe -verb runas -argumentlist "net localgroups administrators domain\user /add" 

Но это побуждает UAC, где я должен вручную нажать Да. затем он движется дальше. Я хочу поднять командлет, не давая подсказки UAC, и продолжать работу....

Учетная запись, используемая для запуска сценария, имеет права администратора на этом компьютере.

2 ответа

Помимо отключения UAC - что, очевидно, должно быть последним средством - вы можете достичь своей цели с помощью создания "запланированной" задачи, которая настроена для запуска с повышенными правами и запуска этой задачи из Jenkins.
Сложность здесь, вероятно, будет заключаться в том, как передавать информацию и извлекать информацию из задачи - возможно, вы сможете достичь этого с помощью некоторых файлов с хорошо известными путями.
Смотрите здесь о том, как настроить такую ​​задачу, а здесь о том, как ее вызвать.

Так как сейчас у меня нет какой-либо установки Jenkins, я не смог ее протестировать.

Проблема в переключателе:

      -verb runas

Это указывает Windows, что вам нужен ваш код для запуска от имени администратора.

Удалите это, и Windows перестанет запрашивать у пользователя права администратора.


Ваш следующий вопрос может быть таким:

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

К сожалению, это запрещено в защищенных операционных системах.

  • если я стандартный пользователь
  • Я просто не могу просто решить стать администратором

Мне действительно нужно предоставить эти права.

Восьмилетний ребенок или пользователь корпоративного рабочего стола не может просто стать администратором, потому что они написали:

      start-process explorer.exe -verb runas

Им понадобится я или кто-то из ИТ-специалистов, чтобы пройти через 6 зданий и ввести свои учетные данные администратора, потому что у меня действительно есть права администратора.

Представьте себе жизнь до UAC

Каждый разработчик, жалующийся на UAC, который ненавидит UAC, хочет вернуться к более раннему UAC. Давайте представим это.

  • Это 2002 год, вы используете Windows XP SP3
  • Нет UAC, так что вы всегда обычный пользователь

И вы хотите запустить какой-то код от имени администратора.

Вы не можете этого сделать; вы стандартный пользователь.

Единственное решение:

  • Быстрое переключение пользователей
  • и попросите администратора войти в систему
  • пусть они запустят ваш скрипт
  • затем они выходят из системы
  • и вы быстро переключаетесь обратно на свою учетную запись

UAC намного лучше; поскольку они могут просто ввести свои учетные данные в диалоговом окне UAC:

Но мне просто не нужна подсказка UAC

Вы могли бы сказать:

Меня это не волнует. Мне просто не нужны подсказки UAC. Я хочу, чтобы он работал, как в Windows XP

Если вам не нужны подсказки UAC и вы хотите, чтобы он вел себя так же, как в Windows XP: тогда вы абсолютно можете это сделать. Вы можете полностью отключить UAC.

  • Стандартные пользователи всегда будут стандартными пользователями, без возможности повышения
  • Администраторы всегда будут пользователями с правами администратора, без необходимости повышения

И это ваше предпочтение, и вы можете это сделать.

Многие другие пользователи не хотят выполнять свою повседневную работу в качестве администратора. Но поскольку вы запускаете свой скрипт только на своем компьютере: все в порядке.

Другие вопросы по тегам