Назад | Перейти на главную страницу

Список всех клиентских сертификатов, установленных в профилях пользователей в домене

Я делаю первые шаги по обеспечению безопасности сети и обнаружил, что на некоторых машинах есть клиентские сертификаты для веб-сайтов, установленные в хранилище пользовательских клиентских сертификатов локально, а не через AD. Они поступают от стороннего центра сертификации и критически важны для бизнеса.

В качестве первого шага я пытаюсь создать список сертификатов, установленных каждым пользователем, чтобы затем я мог попытаться создать что-то более управляемое с помощью GPO или аналогичного, но, поскольку они были установлены локально, я не вижу их в моем AD или службах сертификации.

Я изучал командлеты управления сертификатами PowerShell, но даже тогда я могу перечислить только сертификаты текущего пользователя, что делает удаленное взаимодействие с учетными данными администратора домена не подходящим решением.

Как мне каталогизировать все сертификаты?

Эта ссылка указывает, что вы не можете получить доступ к хранилищу сертификатов другого пользователя.

Один из способов, который я мог бы придумать, - это написать сценарий входа в систему, который будет получать сертификаты текущего пользователя при входе в систему, например, с помощью Get-Childitem cert:\currentUser -recurse и сохраните вывод в локальный или сетевой файл. Если вы используете Export-CSV вы получите формат, который легко обработаете.

Возможный однострочный вариант:

Get-Childitem Cert:\currentUser -Recurse |´
Select @{N="Username";E={$env:username}}, Subject, Issuer, FriendlyName, NotAfter |`
Export-CSV [csvFilePath] -Append

С помощью дополнительного вычисляемого свойства вы получаете имя пользователя, вошедшего в систему, поэтому вы можете поместить данные в один файл и при этом различать сертификаты по пользователям.