Как запустить скрипт в режиме администратора с командами на выполнение - PullRequest
0 голосов
/ 07 августа 2020

Я хотел бы из сценария powershell запустить другой экземпляр PowerShell в режиме администратора и, если возможно, указать ему какой-то код, который будет выполняться в этой же командной строке.

Вот конкретный случай ( Я использую шоколадный для управления пакетами под windows):

Start-Process powershell -Verb runAs -ArgumentList "choco outdated"

Этот код работает, но, к сожалению, окно PowerShell закрывается сразу после выполнения кода . Таким образом, "невозможно" увидеть устаревшие пакеты.

Есть ли у вас решение для:

  • заморозить скрипт после команды?
  • или добавить больше строка кода поставить Start-Sleep -Seconds 10?
  • или другое решение?

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 07 августа 2020

Вы можете использовать аргумент «NoExit»: О PowerShell.exe

PowerShell[.exe]
    [-PSConsoleFile <file> | -Version <version>]
    [-NoLogo]
    [-NoExit]
    [-Sta]
    [-Mta]
    [-NoProfile]
    [-NonInteractive]
    [-InputFormat {Text | XML}]
    [-OutputFormat {Text | XML}]
    [-WindowStyle <style>]
    [-EncodedCommand <Base64EncodedCommand>]
    [-ConfigurationName <string>]
    [-File - | <filePath> <args>]
    [-ExecutionPolicy <ExecutionPolicy>]
    [-Command - | { <script-block> [-args <arg-array>] }
                | { <string> [<CommandParameters>] } ]

PowerShell[.exe] -Help | -? | /?

Обязательно укажите аргументы в параметре «-ArgumentList» в правильном порядке.

Start-Process powershell -Verb runAs -ArgumentList "-noexit", "-noprofile", "-command choco outdated"
0 голосов
/ 07 августа 2020

Вот один из способов заставить его подождать.

Start-Process powershell -Verb runAs -ArgumentList "choco outdated`n`rpause"
...