logo

В этой статье мы рассмотрим основные операции над учётными записями службы Active Directory Windows Server, которые можно выполнить, используя PowerShell: добавление, удаление, включение и отключение.

1. Добавление учётной записи

Для создания новой учётной записи пользователя в AD в PowerShell используется командлет New-ADUser. Для этого командлета существуют множество параметров. Мы рассмотрим только некоторые.

-Name - имя объекта пользователя AD

-DisplayName - выводимое имя

-GivenName - имя пользователя

-UserPrincipalName - имя учётной записи в формате учётная_запись@ДОМЕН

-Path - указывает путь к подразделению или контейнеру AD, где создаётся новый объект.

Например, "OU=Managers,DC=DOMAIN,DC=LOCAL" - для добавленного подразделения Managers, и "CN=Users,DC=DOMAIN,DC=LOCAL" - для встроенного контейнера Users.

-Description - описание объекта

-Enabled - указывает, включена ли учётная запись. Принимает значения $true и $false, или 1 и 0

-CannotChangePassword - указывает, можно ли изменить пароль учетной записи. Принимает значения $true и $false, или 1 и 0

-PasswordNeverExpires - указывает, может ли срок действия пароля учетной записи истечь. Принимает значения $true и $false, или 1 и 0

-AccountPassword - указывает пароль для учётной записи пользователя. Используется с командлетом ConvertTo-SecureString, который преобразует обычный текст или зашифрованные строки в защищенные строки

-PassThru - возвращает объект, с которым вы работаете

Ниже представлен пример использования командлета New-ADUser, взятый из предыдущей статьи "PowerShell: выполнение скриптов на удалённом компьютере".

Invoke-Command -ComputerName ip-адрес_компьютера -ScriptBlock {@(
    $org = "CN=Users,DC=DOMAIN,DC=LOCAL"
    $username = Read-Host "Введите имя"
    $password = Read-Host "Введите пароль"
    $descr = "Пользователь"
    New-AdUser -Name $username -UserPrincipalName $username"@DOMAIN.LOCAL" -Path $org -GivenName $username -DisplayName $username -Description $descr -Enabled $true -CannotChangePassword $true -PasswordNeverExpires $true -AccountPassword (ConvertTo-SecureString $password -AsPlainText -force) -passThru;
)} -Credential ДОМЕН\учётная_запись

2. Удаление учётной записи

Для удаления учётной записи пользователя из AD используется командлет Remove-ADUser.

Ниже представлен пример удаления пользователя:

Invoke-Command -ComputerName ip-адрес_компьютера -ScriptBlock {@(
    $username = Read-Host "Введите имя"
    $v = Read-Host "Вы точно хотите УДАЛИТЬ пользователя?(Y/N)"
    if ($v -ilike 'Y') {
        Get-ADUser -Identity $username | Remove-ADUser
        Write-Host "Пользователь $username удален!"
    }
    else {
        Write-Host "Завершение скрипта"
    }
)} -Credential ДОМЕН\учётная_запись

3. Включение учётной записи

Для включения учётной записи пользователя в AD используется командлет Enable-ADAccount.

Ниже представлен пример включения пользователя:

Invoke-Command -ComputerName ip-адрес_компьютера -ScriptBlock {@(
    $username = Read-Host "Введите имя"
    $v = Read-Host "Вы точно хотите включить пользователя?(Y/N)"
    if ($v -ilike 'Y') {
        Get-ADUser -Identity $username | Enable-ADAccount
        Write-Host "Пользователь $username включен!"
    }
    else {
        Write-Host "Завершение скрипта"
    }
)} -Credential ДОМЕН\учётная_запись

4. Отключение учётной записи

И наконец, для отключения учётной записи пользователя в AD используется командлет Disable-ADAccount.

Ниже представлен пример отключения пользователя:

Invoke-Command -ComputerName ip-адрес_компьютера -ScriptBlock {@(
    $username = Read-Host "Введите имя"
    $v = Read-Host "Вы точно хотите отключить пользователя?(Y/N)"
    if ($v -ilike 'Y') {
        Get-ADUser -Identity $username | Disable-ADAccount
        Write-Host "Пользователь $username отключен!"
    }
    else {
        Write-Host "Завершение скрипта"
    }
)} -Credential ДОМЕН\учётная_запись