3

所以与

$filestosign = (dir -recurse-include *.ps1)
Set-AuthenticodeSignature $filestosign $signingcert

我可以在一个文件夹中签署我所有的 ps1 文件。但是有没有一种快速的方法可以再次撤消此操作?

4

2 回答 2

3

我玩了一下,得出了这个解决方案:签名附加在文件的末尾。我搜索字符串“SIG # Begin signature block”以了解我不再需要的行号,显示其余部分并将其写回:

function remove-signature ($signedFile = "D:\ps10\test.ps1")
{
$filecontent = Get-Content $signedFile
$filecontent[0..(((Get-Content $signedFile | select-string "SIG # Begin signature block").LineNumber)-2)] | Set-Content $signedFile
}

认为这应该有效。我的第一个想法是找到一种方法来选择两个字符串之间的区域: "SIG # Begin" 和 "SIG # End" 。只是为了学习的目的,我会对我怎么能做到这一点感兴趣。

于 2009-12-19T19:34:07.870 回答
1

我怀疑这不是您希望的答案,但我很确定没有“Remove-AuthicodeSignauture”cmdlet 可以提供帮助。

我相信您知道,签名涉及在脚本中添加注释部分。删除此评论部分应删除签名。但是,这是您需要自己编写的内容。

于 2009-12-18T13:36:05.590 回答