Изменение политики исполнения - PullRequest
0 голосов
/ 09 декабря 2018

Мне нужно запустить несколько сценариев на разных серверах, которые, в свою очередь, остановят / запустят службы на многих других серверах.

Я создал сценарий для изменения политики на «Обход» и запускаю сценарии изатем внес изменения в нормальное состояние.

$LOGPATH = "output.txt"
$system_default_policy = Get-ExecutionPolicy
"Current execution policy $system_default_policy" | Out-File -FilePath $LOGPATH
if ($syste_default_policy -ne 'Bypass') {
    "Changing the execution policy from $system_default_policy to Bypass" | Out-File -FilePath $LOGPATH -Append
    Set-ExecutionPolicy Bypass -Force
    "Successfully changed the execution policy to Bypass" | Out-File -FilePath $LOGPATH -Append
}

### executing the commands to stop/start the services

"Re-writing the changes to default policy" | Out-File -FilePath $LOGPATH -Append
Set-ExecutionPolicy $system_default_policy -Force
"Changed the policy to " + $(Get-ExecutionPolicy) | Out-File -FilePath $LOGPATH -Append

Однако в приведенном ниже случае это представляется избыточным процессом.

  1. Если политика выполнения уже выполнена в режиме Bypass, то яЯ просто сбрасываю его в последней строке.
  2. Мне нужно запустить несколько сценариев на одном сервере, поэтому для каждого сценария я меняю его на «Обход» и возвращаю к исходному.

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

1 Ответ

0 голосов
/ 09 декабря 2018

Политика выполнения применяется только к сценариям, следовательно, она не применяется к коду, который вызывается на хосте или передается как команда.Есть несколько способов сделать это, некоторые из которых:

Invoke-Command с удаленного компьютера.

Invoke-Command -ComputerName $Computer -ScriptBlock { 
    # Code 
}

powershell.exe -Command локально

powershell.exe -Command "#code"

ОднакоОбычно самый простой способ запуска сценариев без изменения конфигурации -

powershell.exe -ExecutionPolicy Bypass -File C:\yourscript.ps1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...