Мне нужно запустить несколько сценариев на разных серверах, которые, в свою очередь, остановят / запустят службы на многих других серверах.
Я создал сценарий для изменения политики на «Обход» и запускаю сценарии изатем внес изменения в нормальное состояние.
$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
Однако в приведенном ниже случае это представляется избыточным процессом.
- Если политика выполнения уже выполнена в режиме Bypass, то яЯ просто сбрасываю его в последней строке.
- Мне нужно запустить несколько сценариев на одном сервере, поэтому для каждого сценария я меняю его на «Обход» и возвращаю к исходному.
Есть ли другой способ, при котором я буду запускать этот сценарий только один раз (для изменения политики выполнения) перед выполнением сценариев, а затем после завершения всех сценариев изменить его на исходное значение.