Вызовите скрипт powershell из другого скрипта powershell как локальный администратор - PullRequest
0 голосов
/ 12 октября 2018

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

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

start powershell -verb runas -ArgumentList {Invoke-Expression -Command "C:\Script.ps1"}

Ответы [ 2 ]

0 голосов
/ 14 октября 2018

Если вы хотите остаться нативным PowerShell, используйте командлет start-process, и вы можете указать путь к файлу (процесс для запуска) в качестве powershell.exe и параметры -ArgumentList в качестве условий для вашего нового сеанса.В моем примере ниже я настраиваю ExecutionPolicy, поэтому вам не нужно полагаться на политику системного уровня, NoProfile сделает ваш сценарий более устойчивым, не загружая в систему какой-либо настроенный профиль.

$Cred = (Get-Credential)
$ScriptLocation = "C:\Temp\TestScript.ps1"
Start-Process -FilePath "powershell.exe" -ArgumentList "-NoProfile -ExecutionPolicy Bypass -File $ScriptLocation" -Credential $Cred

Вы можете видеть в сценарии получение объекта учетных данных (который вы, вероятно, захотите предоставить, чтобы сценарий просто запускался), затем указание местоположения сценария и его выполнение.

КакУпомянутое vonPryz, вы всегда можете устранить неполадки, добавив -NoExit в свой список аргументов, чтобы окно оставалось открытым после выполнения сценария, но имейте в виду, что если местоположение сценария не существует, вы все равно увидите, что узел powershell появляется и закрывается справапрочь.

Вы также можете добавить -WindowStyle Hidden в свой список аргументов, чтобы скрыть любое окно от появления вообще.

0 голосов
/ 12 октября 2018

Оказалось, проблема политики выполнения.Это было устройство, которое было нестандартным в нашей среде и не поддерживало этот объект групповой политики.

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