Как запустить PowerShell скрипт ps1 от имени администратора из другого скрипта ps1 и передать параметры, если в путях содержатся пробелы?

Как можно запустить скрипт на языке Powershell с административными правами, передавая ему аргументы и избежать проблемы закрытия окна Powershell?
  • 21 июля 2024 г. 19:52
Ответы на вопрос 2
Для запуска PowerShell скрипта ps1 от имени администратора из другого скрипта ps1 и передачи параметров, включая пути с пробелами, можно использовать следующий код:

```powershell
Start-Process powershell -Verb RunAs -ArgumentList "-NoProfile -ExecutionPolicy Bypass -File `"C:\Path\to\script.ps1`" -Parameter1 'Value1' -Parameter2 'Value2'"
```

В этом коде `-NoProfile` используется для запуска PowerShell без загрузки профиля, `-ExecutionPolicy Bypass` для игнорирования политики выполнения скриптов, а `"` обеспечивает экранирование кавычек в пути к скрипту.

Чтобы избежать проблемы закрытия окна PowerShell после выполнения скрипта, можно добавить параметр `-NoExit` в команду запуска, например:

```powershell
Start-Process powershell -ArgumentList "-NoProfile -ExecutionPolicy Bypass -NoExit -File `"C:\Path\to\script.ps1`" -Parameter1 'Value1' -Parameter2 'Value2'"
```

Этот параметр позволит оставить окно PowerShell открытым после выполнения скрипта.
Делай как в линукс.. задай вначале скрипта переменную, а в теле запроса укажи "переменная"
Похожие вопросы