對腳本進行簽名意味著在腳本中編寫注釋的數(shù)字簽名塊。簽名中包含有關作者身份的編碼信息,還封裝了有關腳本自身的編碼信息。因此,對腳本的任何更改都將使簽名無效。
腳本簽名是通過 Scripting.Signer 對象的 SignFile 方法以編程方式實現(xiàn)的。
<job> <runtime> <named name="file" helpstring="the file to sign" required="true" type="string"/> <named name="cert" helpstring="the name of the signing certificate" required="true" type="string"/> <named name="store" helpstring="the name of the certificate store" required="false" type="string"/> </runtime> <script language="JScript"> var Signer, File, Cert, Store; if (!(WScript.Arguments.Named.Exists("cert") && WScript.Arguments.Named.Exists("file"))) { WScript.Arguments.ShowUsage(); WScript.Quit(); } Signer = new ActiveXObject("Scripting.Signer"); File = WScript.Arguments.Named("file"); Cert = WScript.Arguments.Named("cert"); if (WScript.Arguments.Named.Exists("store")) { Store = WScript.Arguments.Named("store"); } else { Store = ""; } Signer.SignFile(File, Cert, Store); </script> </job>
注意 若要對腳本進行簽名,必須擁有有效的證書。向管理員咨詢有關證書策略事宜,或與商業(yè)證書頒發(fā)機構聯(lián)系。
安全和 Windows 腳本宿主 | 驗證腳本 | 簽名驗證策略 | WinTrust | 對腳本進行簽名