powershell - 如何从 Powershell 中删除签名?

标签 powershell code-signing

所以

$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/

相关文章:

xcode - 如何获得 Xcode 的 root 访问权限以禁用代码签名

java - 如何签署跨平台 Java 应用程序

macos - Electron :代码设计削弱了我在 macOS 上的应用程序的一些功能

macos - gpg "failed to write commit object"

PowerShell 命令行参数和 '--'

powershell - 查找针对 .NET Core 3.1 的正在运行的进程

powershell - 如何写主机来控制台所有已移动的文件名

unit-testing - dotnet test 仅测试解决方案上的项目

internet-explorer - Internet Explorer 何时/为何阻止安装(签名的)ActiveX 控件?

powershell - 消除日志行中的重复字段