[英]Execution policy modification
我需要在不同的服務器上運行一些腳本,這些腳本將依次停止/啟動許多其他服務器上的服務。
我創建了一個腳本,將策略更改為“繞過”並運行腳本,然后將更改恢復為正常。
$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
但是,在以下情況下,這似乎是多余的過程。
還有其他方法可以在執行腳本之前僅運行一次此腳本(以更改執行策略),然后在運行所有腳本后最后將其更改為原始值。
執行策略僅適用於腳本,因此不適用於在主機上調用或作為命令傳遞的代碼。 有多種方法可以做到這一點,其中包括:
從遠程計算機Invoke-Command
。
Invoke-Command -ComputerName $Computer -ScriptBlock {
# Code
}
powershell.exe -Command
本地命令
powershell.exe -Command "#code"
但是,通常最簡單的運行腳本而不更改配置的方法是
powershell.exe -ExecutionPolicy Bypass -File C:\yourscript.ps1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.