Jaa


Работа с сертификатами в 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

 

Оригинал

Перевод: Илья Лушников