所以
$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"。仅出于学习目的,我很想知道我是怎么做到的。
关于powershell - 如何从 Powershell 中删除签名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1928158/