签署PowerShell脚本

问题描述:

我想签署我的PowerShell脚本,所以我可以执行它们没有问题。我有我的系统上创建的代码签名证书,并可以从PowerShell内部查看它。当我签署它时,我总是收到错误签署PowerShell脚本

PS C:\xxadmin> get-childitem cert:\CurrentUser\my -codesign 


    Directory: Microsoft.PowerShell.Security\Certificate::CurrentUser\my 


Thumbprint        Subject 
----------        ------- 
6B43052FDE320530CD77B260CC9BD046B68D2351 CN=PowerShell User 


PS C:\xxadmin> 

尝试使用以下命令进行签名。

Set-AuthenticodeSignature C:\xxadmin\iisbackup.ps1 @ (get-childitem cert:\CurrentUser\My -codesigning) [0] 

这是我得到的错误。

Unrecognized token in source text. At line:1 char:52 + Set-AuthenticodeSignature C:\xxadmin\iisbackup.ps1 <<<< @ (get-childitem cert:\CurrentUser\My -codesigning) [0] + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : UnrecognizedToken

此脚本签名后,我需要在每台机器上安装我想执行脚本的证书吗?

@必须紧挨着开头(。同为索引[0],截止)例如为:

Set-AuthenticodeSignature C:\xxadmin\iisbackup.ps1 ` 
    @(get-childitem cert:\CurrentUser\My -codesigning)[0] 

关于你的另一个问题,它取决于一种证书的你使用。如果它是自我生成的,那么是的,你需要将它复制到每台机器上。如果它是Verisign的官方证书,那么你不需要在其他机器上安装它。

+0

是的,它是一个自签名证书。 我只是将它导出并导入到机器中? – Travis 2010-09-01 20:27:05

+0

我对自签名证书不是很了解,但那是我开始的地方。 :-) – 2010-09-01 20:40:55