簽署指令碼

使用 Set-AuthenticodeSignature-cmdlet 和程式碼簽名證書籤署指令碼。

#Get the first available personal code-signing certificate for the logged on user
$cert = @(Get-ChildItem -Path Cert:\CurrentUser\My -CodeSigningCert)[0]
    
#Sign script using certificate
Set-AuthenticodeSignature -Certificate $cert -FilePath c:\MyScript.ps1

你還可以使用以下方法從 .pfx 檔案中讀取證書:

$cert = Get-PfxCertificate -FilePath "C:\MyCodeSigningCert.pfx"

該指令碼將在有效期到期之前有效。如果在簽名期間使用時間戳伺服器,則證書過期後指令碼將繼續有效。新增證書的信任鏈(包括根許可權)以幫助大多數計算機信任用於簽署指令碼的證書也很有用。

Set-AuthenticodeSignature -Certificate $cert -FilePath c:\MyScript.ps1 -IncludeChain All -TimeStampServer "http://timestamp.verisign.com/scripts/timstamp.dll"

建議使用來自 Verisign,Comodo,Thawte 等受信任證書提供商的時間戳伺服器。