如何从Powershell中删除签名?

时间:2009-12-18 13:20:06

标签: powershell code-signing

所以

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

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

2 个答案:

答案 0 :(得分:1)

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

正如我确定您所知,签名涉及向脚本添加注释部分。删除此注释部分应删除签名。但是,这是你自己需要写的东西。

答案 1 :(得分:1)

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

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”。仅仅为了学习目的,我会对我如何做到这一点感兴趣。