对脚本进行签名意味着在脚本中编写注释的数字签名块。签名中包含有关作者身份的编码信息,还封装了有关脚本自身的编码信息。因此,对脚本的任何更改都将使签名无效。
脚本签名是通过 Scripting.Signer 对象的 SignFile 方法以编程方式实现的。
<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>
注意 若要对脚本进行签名,必须拥有有效的证书。向管理员咨询有关证书策略事宜,或与商业证书颁发机构联系。
安全和 Windows 脚本宿主 | 验证脚本 | 签名验证策略 | WinTrust | 对脚本进行签名