Как я могу установить ACL ЦС программно?

При запуске консоли ЦС (certsrv.msc), я могу щелкнуть правой кнопкой мыши свой ЦС, выбрать Характеристики а затем я могу изменить ACL моего ЦС в Безопасность вкладка Когда я изменяю его, изменения применяются к объекту AD по адресу:

CN=MY-CA,CN=Enrollment Services,CN=Public Key Services,CN=Services,CN=Configuration,DC=contoso,DC=com

Когда я просматриваю его в редакторе ADSI, измененные записи ACL не наследуются, а применяются напрямую (как и ожидалось). Но когда я изменяю ACL этого объекта программно, например:

Import-Module ActiveDirectory
$path="AD:CN=MY-CA,CN=Enrollment Services,CN=Public Key Services,CN=Services,CN=Configuration,DC=contoso,DC=com"
$acl = Get-Acl -Path $path
$acl.AddAccessRule(...)
Set-Acl -Path $path -AclObject $acl

Затем я вижу эти изменения в редакторе ADSI, но не вижу этих изменений, когда просматриваю ACL моего ЦС через консоль ЦС.

Итак, я делаю что-то не так? Должен ли я программно изменять и другие объекты?


Что я пробовал:

  • После изменения я заставил AD синхронизироваться с: repadmin /syncall /Aed
  • Я перезапустил службу ЦС certsvc

Но это не похоже на проблему «синхронизации»…

Active Directory центр сертификации PowerShell Windows Server 2019 Ad-Certificate-Services

2 ответа
2

Эти ACL несколько отличаются. ACL для объекта AD влияет только на запись AD, и они не распространяются на CA.

ACL, которые вы видите в консоли CA Management, хранятся в конфигурации CA в реестре.

Я не уверен, есть ли простой способ редактировать разрешения в CA с помощью PowerShell изначально (без сторонних инструментов). Тем не менее, я бы рекомендовал использовать PKI PowerShell модуль для упрощения задачи. Модуль содержит несколько команд, связанных с ACL:

ps я автор этого модуля PSPKI

Каждая команда имеет встроенную и интерактивную справку с полезными примерами использования каждой команды.

Склеп32

Благодаря указателям Crypt32 и некоторым дополнительным источникам1я придумал кроме того необходимые изменения, которые необходимо внести в реестр ЦС:

защита стека

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *