创建PowerShell脚本数字签名认证

对于使用PowerShell脚本的用户都知道,第一次在使用PowerShell的时候,我们通常都会去设置PowerShell的ExecutionPolicy。这是为什么呢?因为PowerShell提供了比较安全的脚本运行执行机制,默认情况下初于对脚本的安全执行,它并不像VBS脚本那样可以双击运行。这也就是为什么当你设置运行机制的时候,PowerShell提供了多种安全选项。

甚至你会看到有些脚本内部包含一些数字签名认证,今天我们就要谈下如何在Powershell脚本中设置数字签名认证。

这里我们要用到一个命令,它就是makecert.exe,它也属于Visual studio的一部分,你可以从其中得到这个工具。在我的环境中它位于:“C:\Program Files (x86)\Windows Kits\8.1\bin\x64\makecert.exe”路径下,在这里我们切换到对应的路径,然后运行这个工具来建立一个本地证书的授权,如下图所示我们需要运行如下命令:

之后,它会跳出一个提示框,要求你建立私钥,如下:

接着我们继续,创建我们的数字签名然后把它存储储存在我们的本地证书库里中。如下图所示,键入相关命令以及继续输入私钥:

当数字签名证书创建完毕后,我们打开PowerShell,用CERT:适配器查看下我们创建的新证书,输入命令“dir Cert:\CurrentUser\My -CodeSigningCert” 输出如下,已经产生成功了:

我们用如下命令筛选出我们所需要的证书,然后将它保存为变量$cert

最后我们用Set-AuthenticodeSignature来给我们指定的PowerShell设置数字签名认证:

PS C:\Users\Administrator> Set-AuthenticodeSignature -PSPath "C:\GetProcess.ps1" -Certificate $cert


    Directory: C:\


SignerCertificate                         Status                                 Path
-----------------                         ------                                 ----
B88C3F608862012BB370E70D4426D0AEE9D342CD  Valid                                  GetProcess.ps1


好了,运行成功后,我们一起来看下,是否真正签名成功,我们用记事本打开我们指定的PowerShell脚本:

好了,如上,签名已经成功附加在脚本文件内了。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值