簽署指令碼
對指令碼進行簽名將使你的指令碼符合 PowerShell 中的所有執行策略,並確保指令碼的完整性。如果已簽名的指令碼在簽名後被修改,則無法執行。
指令碼簽名需要程式碼簽名證書。建議:
- 個人指令碼/測試(未共享):來自可信認證機構(內部或第三方)的證書或自簽名證書。
- 共享內部組織:來自可信認證機構(內部或第三方)的證書
- 共享外部組織:來自可信第三方認證機構的證書
閱讀 about_Signing @ TechNet 的更多資訊
執行政策
PowerShell 具有可配置的執行策略,可控制指令碼或配置執行所需的條件。可以為多個範圍設定執行策略; 計算機,當前使用者和當前程序。可以輕鬆繞過執行策略,但不是為了限制使用者,而是保護他們不會無意中違反簽名策略。
可用的政策是:
設定 | 描述 |
---|---|
受限 | 不允許指令碼 |
使用 AllSigned | 所有指令碼都需要簽名 |
下 RemoteSigned | 允許所有本地指令碼; 只簽名遠端指令碼 |
無限制 | 沒有要求。允許所有指令碼,但在執行從 Internet 下載的指令碼之前會發出警告 |
旁路 | 允許所有指令碼,不顯示任何警告 |
未定義 | 刪除當前範圍的當前執行策略。使用父策略。如果未定義所有策略,則將使用受限制。 |
啟動 powershell.exe
程序時,可以使用 Set-ExecutionPolicy
-cmdlet,組策略或 -ExecutionPolicy
引數修改當前執行策略。