在 Windows PowerShell 中以數位方式簽署指令碼

已完成

當您在生產環境中使用 Windows PowerShell 指令碼時,應該會有核准程序,以確認這些指令碼已經過測試。 核准程序會根據組織大小和機構層級而有所不同,但應該有一些核准程序。

正式化生產環境中所用腳本核准程式的其中一種方式,就是以數位方式簽署腳本並使用 AllSigned 腳本執行原則。 當您實作此原則時,任何修改過的指令碼都必須以新的數位簽章來更新。 這可防止系統管理員或其他人員隨機變更指令碼。 例如,如果您的組織有一組已核准的指令碼來管理 Active Directory Domain Services (AD DS) 使用者,此設定會防止技術服務人員故意或意外修改指令碼。

若要將數位簽章新增至指令碼,您必須擁有將執行指令碼的所有電腦信任的程式碼簽署憑證。 您可以從公用憑證授權單位取得受信任的程式碼簽署憑證。 您也可以從電腦信任的內部憑證授權單位取得程式碼簽署憑證。

您可以使用 Set-AuthenticodeSignature Cmdlet 來新增數字簽名,如下列程式代碼所示:

$cert =  Get-ChildItem -Path "Cert:\CurrentUser\My" -CodeSigningCert
Set-AuthenticodeSignature -FilePath "C:\Scripts\MyScript.ps1" -Certificate $cert