запустить другой скрипт Power Shell в режиме повышенных прав как администратор - PullRequest
0 голосов
/ 27 мая 2018

В настоящее время я вошел в систему как администратор и запустил код power1.ps1 для вызова другого сценария power2.ps1 в режиме повышенных прав.

$ command = "C: \ script \ Power2.ps1"

Invoke-Expression $ command

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

Код в Power2.ps1

If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator"))

{   
$arguments = "& '" + $myinvocation.mycommand.definition + "'"
Start-Process powershell -Verb runAs -ArgumentList $arguments
Break
}

Write-Host "Admin Privilege Code Here"

Есть ли способ, которым я могу полностью автоматизировать процесс?Я не смогу отключить доступ к UAC.

1 Ответ

0 голосов
/ 27 мая 2018

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

Однако вы можете попробовать следующее:

  • Создайте вспомогательное запланированное задание , которое вызывает ваш сценарий Power2.ps1 и настроено на выполнение с повышенными правами .

    • В пользовательском интерфейсе планировщика заданий (taskschd.msc) это означает: необходимо проверить Run with highest privilege (вкладка General), а также Allow task to be run on demand (вкладка Settings).
  • Используйте Start-ScheduledTask для вызова этой задачи по требованию .

    • Start-ScheduledTask выполняется асинхронно однако для синхронного вызова требуется больше работы - см. эту статью .

Примечание:

  • Этот подход рискованно , поскольку вы фактически обходите UAC для любых операций, выполняемых запланированным заданием.

  • Подход ограничен конкретная учетная запись пользователя , которая является членом группы Administrators .

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