Я делаю первые шаги по обеспечению безопасности сети и обнаружил, что на некоторых машинах есть клиентские сертификаты для веб-сайтов, установленные в хранилище пользовательских клиентских сертификатов локально, а не через 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
С помощью дополнительного вычисляемого свойства вы получаете имя пользователя, вошедшего в систему, поэтому вы можете поместить данные в один файл и при этом различать сертификаты по пользователям.