簽署指令碼

對指令碼進行簽名將使你的指令碼符合 PowerShell 中的所有執行策略,並確保指令碼的完整性。如果已簽名的指令碼在簽名後被修改,則無法執行。

指令碼簽名需要程式碼簽名證書。建議:

  • 個人指令碼/測試(未共享):來自可信認證機構(內部或第三方)的證書自簽名證書。
  • 共享內部組織:來自可信認證機構(內部或第三方)的證書
  • 共享外部組織:來自可信第三方認證機構的證書

閱讀 about_Signing @ TechNet 的更多資訊

執行政策

PowerShell 具有可配置的執行策略,可控制指令碼或配置執行所需的條件。可以為多個範圍設定執行策略; 計算機,當前使用者和當前程序。可以輕鬆繞過執行策略,但不是為了限制使用者,而是保護他們不會無意中違反簽名策略。

可用的政策是:

設定 描述
受限 不允許指令碼
使用 AllSigned 所有指令碼都需要簽名
下 RemoteSigned 允許所有本地指令碼; 只簽名遠端指令碼
無限制 沒有要求。允許所有指令碼,但在執行從 Internet 下載的指令碼之前會發出警告
旁路 允許所有指令碼,不顯示任何警告
未定義 刪除當前範圍的當前執行策略。使用父策略。如果未定義所有策略,則將使用受限制。

啟動 powershell.exe 程序時,可以使用 Set-ExecutionPolicy-cmdlet,組策略或 -ExecutionPolicy 引數修改當前執行策略。

閱讀 about_Execution_Policies @ TechNet 的更多資訊