В целях безопасности PowerShell скрипты могут выполняться только интерактивно, то есть сначала надо запустить оболочку PowerShell и уже в ней указать путь к скрипту.
Кроме того, можно указывать следующие ключи запуска:
-
-Command - выполняет указанные команды и любые другие параметры. Этот параметр тоже можно использовать для запуска скрипта, например:
Код: Выделить всё
C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe -Command ″& {C:\Scripts\start.ps1}″
Так же с помощью этого ключа можно передавать в скрипт параметры:
Код: Выделить всё
C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe -Command ″& {C:\Scripts\start.ps1 -a 1 -b 3}″;
-
-ExecutionPolicy - задает политику выполнения скриптов для текущего сеанса, может принимать значения Unrestricted, RemoteSigned, AllSigned и Restricted. Дополнительно об этом читаем здесь. Заданная политика будет действовать только в текущем сеансе и имеет приоритет над любыми ранее созданными политиками
-
-NonInteractive - отключить вывод интерактивных запросов к пользователю
-
-WindowStyle Hidden - запуск окна PowerShell в скрытом режиме, незаметно для пользователя
-
-NoProfile - предотвращает загрузку профиля, что может несколько ускорить выполнение скрипта
-
-NoExit - оставить оболочку открытой после отработки скрипта. Это может понадобиться при проверке и отладке скрипта
Например, запустим незаметно для пользователя скрипт C:\Scripts\start.ps1:
Код: Выделить всё
C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe -WindowStyle Hidden C:\Scripts\start.ps1