修改WindowsValidateAdminCodeSignatures
中包含的值HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
会对请求提升权限的任何交互式应用程序强制执行 PKI 签名检查;我认为它很好,但我想继续使用一些软件(我信任)但被这个注册表值阻止(如果启用),只有在启用这个值的组合中有一些例外。
它可以为这个值创建异常,如果是,如何?
修改WindowsValidateAdminCodeSignatures
中包含的值HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
会对请求提升权限的任何交互式应用程序强制执行 PKI 签名检查;我认为它很好,但我想继续使用一些软件(我信任)但被这个注册表值阻止(如果启用),只有在启用这个值的组合中有一些例外。
它可以为这个值创建异常,如果是,如何?
如果要求只是.exe必须签名,您可以自己对软件进行签名:
创建代码签名证书,例如使用 PowerShell
New-SelfSignedCertificate
或其他工具。(除了extendedKeyUsage不同外,它几乎就像一个TLS证书。)将证书(不带私钥)导出到 .crt 文件并将其导入回“受信任的发布者”部分。
使用
Set-AuthenticodeSignature
(或 signtool.exe,如果有的话)对您要允许的每个 .exe 进行签名。(您可能希望从受保护的计算机之外的另一台计算机上执行此操作。或者,您可以将证书的私钥存储在 TPM 或 Yubikey 中,它具有 PIN 保护。)
我在这里找到了一个简单的解决方案:GitHub ─ bypassUAC
命令很简单,只需要命令提示符:
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" "
~\path\executable.exe""