所以与
$filestosign = (dir -recurse-include *.ps1)
Set-AuthenticodeSignature $filestosign $signingcert
我可以在一个文件夹中签署我所有的 ps1 文件。但是有没有一种快速的方法可以再次撤消此操作?
所以与
$filestosign = (dir -recurse-include *.ps1)
Set-AuthenticodeSignature $filestosign $signingcert
我可以在一个文件夹中签署我所有的 ps1 文件。但是有没有一种快速的方法可以再次撤消此操作?
我玩了一下,得出了这个解决方案:签名附加在文件的末尾。我搜索字符串“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" 。只是为了学习的目的,我会对我怎么能做到这一点感兴趣。
我怀疑这不是您希望的答案,但我很确定没有“Remove-AuthicodeSignauture”cmdlet 可以提供帮助。
我相信您知道,签名涉及在脚本中添加注释部分。删除此评论部分应删除签名。但是,这是您需要自己编写的内容。