如何以编程方式更改 public 关键政策?

How do I change public key policies programmatically?

为了自动部署某个服务的安装,我正在尝试更改 PowerShell 中的证书路径验证设置(任何其他编程方法也可以) ).具体来说,我需要更改 Network Retrieval 设置(自动更新、覆盖超时设置、禁止颁发者证书检索等)。

我知道如何使用 secpol.msc 手动执行此操作,但我需要自动执行此操作。

我尝试用secedit.exe导出安全配置,但要么没有包含我需要修改的信息,要么我不知道如何辨别。

有人知道如何 get/modify 这些具体设置吗?

我现在正遇到这个问题。 This page 可能是您的宝贵资源。如果您可以在工作时下载模块,那应该可以解决问题(取决于您的需要)。很遗憾,我不能,所以我仍在寻找您问题的答案。

我整天都在研究这个问题,并取得了一些进展。这些策略可在 HKEY_USERS 注册表中找到。以下代码成功更改了我的 AIA 检索设置。我仍在寻找其他设置在注册表中的位置。

set-location registry::\"HKEY_USERS\S-1-5-21-1334943887-574888862-474100395-22132\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\{D2FEBD75-F5EE-4C41-81A3-F95E12FFA66D}Machine\Software\Policies\Microsoft\SystemCertificates\ChainEngine\Config"
$path= (get-location).path

set-itemproperty -path $path -name options -value 2

终于找到了我的解决方案 - 有一个名为 LGPO.EXE 的工具,可以帮助以编程方式导入、导出和编辑证书路径验证设置。使用它仍然需要重新启动才能应用更改,但至少现在可以了。