Работа с сертификатами в Active Directory PowerShell
AD Powershell использует .NET класс X509Certificate для представления сертификата. Давайте посмотрим, как можно управлять сертификатами пользователя.
Обновление пользовательских сертификатов
Создаем объект X509Certificate (или X509Certificate2) с помощью файла сертификата.
PS C:\> $cert1 = New-Object System.Security.Cryptography.X509Certificates.X509Certificate "C:\Certs\Test1.cer"
PS C:\> $cert2 = New-Object System.Security.Cryptography.X509Certificates.X509Certificate "C:\Certs\Test2.cer"
Затем назначаем сертификат учетной записи пользователя во время ее создания.
PS C:\> $certs = $cert1,$cert2 #create certificate array
PS C:\> New-ADUser -Name TestUser1 -SamAccountName TestUser1 -Certificates $certs
Назаметку: Параметр Certificates обновляет атрибут LDAP userCertificate.
Также можно назначить сертификаты существующей учетной записи пользователя.
PS C:\> Set-ADUser TestUser1 -Certificates @{Replace=$cert1,$cert2}
Просмотр пользовательских сертификатов
Можно выбрать сертификаты для существующего пользователя.
PS C:\> $user1 = Get-ADUser TestUser1 -Properties "Certificates"
И затем просмотреть основные параметры сертификатов:
PS C:\> $user1.Certificates | fl * -f
Handle : 456139856
Issuer : OU=EFS File Encryption Certificate, L=EFS, CN=Administrator
Subject : OU=EFS File Encryption Certificate, L=EFS, CN=Administrator
...
Класс X509Certificate2 используется для получения большей информации о сертификатах.
PS C:\> $user1.Certificates | foreach {New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 $_} | fl * -f
...
FriendlyName :
IssuerName : System.Security.Cryptography.X509Certificates.X500DistinguishedName
NotAfter : 2/24/2109 8:35:26 AM
NotBefore : 3/20/2009 9:35:26 AM
HasPrivateKey : False
PrivateKey :
PublicKey : System.Security.Cryptography.X509Certificates.PublicKey
RawData : {48, 130, 3, 139...}
SerialNumber : …
SubjectName : System.Security.Cryptography.X509Certificates.X500DistinguishedName
SignatureAlgorithm : System.Security.Cryptography.Oid
Thumbprint : …
Version : 3
Handle : 456139856
Issuer : OU=EFS File Encryption Certificate, L=EFS, CN=Administrator
Subject : OU=EFS File Encryption Certificate, L=EFS, CN=Administrator
Также можно назначить существующие сертификаты новому пользователю.
PS C:\> $user1 = Get-ADUser TestUser1 -Properties "Certificates"
PS C:\> New-ADUser -Name TestUser2 -SamAccountName TestUser2 -Certificates $user1.Certificates
На заметку: Сертификаты также могут быть применены для учетных записей компьютеров и служб, управление ими производится аналогично.
Надеюсь, это поможет.
Cheers!
Ashish
--
Ашлиш Шарма (Ashish Sharma) [MSFT]
Developer – Active Directory Powershell Team
Перевод: Илья Лушников