модуль Active Directory для Windows PowerShell сьогодні є одним із основних засобів адміністрування домену, управління об'єктами в Active Directory, отримання різної інформації про комп'ютери, користувачів, групи. Будь-системний адміністратор Windows повинен вміти користуватися не тільки графічними оснащеннями AD (найчастіше це ADUC - Active Directory Users & Computer), але і Командлети цього модуля PowerShell для виконання повсякденних завдань адміністрування Active Directory. У цій статті ми розглянемо, як встановити модуль RSAT-AD-PowerShell, його базовий функціонал і популярні командлети, які повинні бути корисними при управлінні і роботі з AD.
зміст:
- Установка модуля Active Directory для PowerShell в Windows Server
- Установка модуля RSAT-AD-PowerShell в Windows 10
- Командлети модуля AD для PowerShell
- Використання модуля RSAT-AD-PowerShell для адміністрування AD
Установка модуля Active Directory для PowerShell в Windows Server
Модуль Active Directory для Windows PowerShell вже вбудований в операційні системи Windows Server (починаючи з Windows Server 2008 R2), але за замовчуванням не активований.
У Windows Server 2016 ви можете включити модуль AD для PoSh в Windows Server 2016 з панелі управління Server Manager (Add Roles and Features -> Features -> Remote Server Administration tools -> Role Administration Tools -> AD DS and AD LDS Tools -> Active Directory module for Windows PowerShell).
Також ви можете встановити модуль з командного рядка за допомогою PowerShell команди:
Install-WindowsFeature -Name "RSAT-AD-PowerShell" -IncludeAllSubFeature
Ви можете встановити модуль RSAT-AD-PowerShell не тільки на контролері домену. Підійде будь-який пересічний сервер або навіть робоча станція. На контролерах домену AD модуль встановлюється автоматично при розгортанні ролі ADDS (при підвищенні сервера до DC).
Взаємодія модуля з AD виконується через служба Active Directory Web Services, яка повинна бути встановлена на котролері домену (взаємодія по порту TCP 9389).
Установка модуля RSAT-AD-PowerShell в Windows 10
Ви можете встановити модуль RSAT-AD-PowerShell не тільки на серверах, а й на робочих станціях. Цей модуль входить до складу пакета RSAT (Remote Server Administration Tools), який можна завантажити і встановити вручну в Window 7, Windows 8.1. Після установки RSAT модуль AD дл PowerShell ставиться з панелі управління (Control Panel -> Programs and Features -> Turn Windows features on or off -> Remote Server Administration Tools-> Role Administration Tools -> AD DS and AD LDS Tools).
У Windows 10 1809 і вище пакет RSAT вже вбудований в дистрибутив (як Features on Demand), тому для установки модуля можна скористатися командою:
Add-WindowsCapability -online -Name "Rsat.ActiveDirectory.DS-LDS.Tools ~~~~ 0.0.1.0"
Командлети модуля AD для PowerShell
У модулі Active Directory для Windows PowerShell є велика командлетів для взаємодії з AD. У кожній новій версії RSAT їх кількість збільшується (в Windows Server 2016 є 147 командлетів для AD).
Перед використанням командлетів модуля, його потрібно імпортувати в сесію PowerShell (в Windows Server 2012 R2 / Windows 8.1 модуль імпортується автоматично):
Import-Module ActiveDirectory
$ Rs = New-PSSession -ComputerName DC_or_Comp_with_ADPosh
Import-Module -PSsession $ rs -Name ActiveDirectory
Ви можете вивести повний список доступних командлетів за допомогою команди:
Get-Command -module activedirectory
Загальна кількість команд в модулі:
Get-Command -module activedirectory | measure-object
Більшість командлетів модуля RSAT-AD-PowerShell починаються із префікса Get-, Set-або New-.
- командлети класу Get- використовуються для отримання різної інформації з AD (Get-ADUser - властивості користувачів, Get-ADComputer - параметри комп'ютерів, Get-ADGroupMember - склад груп і т.д.). Для їх виконання не потрібно бути адміністратором домену, будь-який користувач домену може виконувати скрипти PowerShell для отримання значень більшості атрибутів об'єктів AD (окрім захищених, як в прикладі з LAPS).
- командлети класу Set- служать для зміни параметрів об'єктів в AD, наприклад, ви можете змінити властивості користувача (Set-ADUser), комп'ютера (Set-ADComputer), додати користувача до групи і т.д. Для виконання цих операцій у вашому профілі повинні бути права на об'єкти, які ви хочете змінити (див. Статтю Делегування прав адміністратора в AD).
- Команди, що починаються з New- дозволяють створити об'єкти AD (створити користувача - New-ADUser, групу - New-ADGroup).
- командлети Remove- служать для видалення об'єктів AD.
Отримати довідку про будь-якому Командлети можна так:
get-help New-ADComputer
Приклади використання командлетів Active Directory можна вивести так:
(Get-help Set-ADUser) .examples
У PowerShell ISE при наборі параметрів командлетів модуля зручно використовувати спливаючі підказки.
Використання модуля RSAT-AD-PowerShell для адміністрування AD
Розглянемо кілька типових задач адміністратора, які можна виконати за допомогою команд модуля AD для PowerShell.
Корисні приклади використання різних командлетів модуля AD для PowerShell вже описані на сайті. Дотримуйтесь посиланнях за текстом за докладними інструкціями.New-ADUser: Створення користувача в AD
Для створення нового користувача в AD можна використовувати командлет New-ADUser. Створити користувача можна командою:
New-ADUser -Name "Andrey Petrov" -GivenName "Andrey" -Surname "Petrov" -SamAccountName "apetrov" -UserPrincipalName "[email protected]" -Path "OU = Users, OU = Ufa, DC = winitpro, DC = loc "-AccountPassword (Read-Host -AsSecureString" Input Password ") -Enabled $ true
Більш докладно про команду New-ADUser (в тому числі приклад масового створення облікових записів в домені) читайте в статті .
Get-ADComputer: Отримати інформацію про комп'ютерах домену
Щоб вивести інформацію про комп'ютери в певному OU (ім'я комп'ютера і дата останньої реєстрації в мережі) використовуйте командлет Get-ADComputer:
Get-ADComputer -SearchBase 'OU = Russia, DC = winitpro, DC = ru' -Filter * -Properties * | FT Name, LastLogonDate -Autosize
Add-AdGroupMember: Додати користувача до групи AD
Щоб додати користувачів в існуючу групу безпеки в домені AD, виконайте команду:
Add-AdGroupMember -Identity MskSales -Members apterov, divanov
Вивести список користувачів в групі AD і вивантажити його в файл:
Get-ADGroupMember MskSales -recursive | ft samaccountname | Out-File c: \ script \ export_users.csv
Більш докладно про управління групами AD з PowerShell.
Set-ADAccountPassword: Скидання пароля користувача в AD
Щоб скинути пароль користувача в AD з PowerShell, виконайте:
Set-ADAccountPassword apterov -Reset -NewPassword (ConvertTo-SecureString -AsPlainText "P @ ssw0rd1" -Force -Verbose) -PassThru
Блокування / розблокування користувача
Відключити обліковий запис:
Disable-ADAccount apterov
Включити обліковий запис:
Enable-ADAccount apterov
Розблокувати акаунт після блокування пральний політикою:
Unlock-ADAccount apterov
Search-ADAccount: Пошук неактивних комп'ютерів в домені
Щоб знайти і заблокувати в домені все комп'ютери, які не реєструвалися в мережі більше 100 днів, скористайтеся Командлети Search-ADAccount:
$ Timespan = New-Timespan -Days 100
Search-ADAccount -AccountInactive -ComputersOnly -TimeSpan $ timespan | Disable-ADAccount
New-ADOrganizationalUnit: Створити структуру OU в AD
Щоб швидко створити типову структури Organizational Unit в AD, можна скористатися скриптом PowerShell. Припустимо, нам потрібно створити кілька OU ті міста, в яких створити типові контейнери. Вручну через графічну консоль ADUC таку структуру створювати досить довго, а модуль AD для PowerShell дозволяє розв'язати таке завдання за кілька секунд (не рахуючи час на написання скрипта):
$ Fqdn = Get-ADDomain
$ Fulldomain = $ fqdn.DNSRoot
$ Domain = $ fulldomain.split ( ".")
$ Dom = $ domain [0]
$ Ext = $ domain [1]
$ Sites = ( "SPB", "MSK", "Sochi")
$ Services = ( "Users", "Admins", "Computers", "Servers", "Contacts")
$ FirstOU = "Russia"
New-ADOrganizationalUnit -Name $ FirstOU -Description $ FirstOU -Path "DC = $ Dom, DC = $ EXT" -ProtectedFromAccidentalDeletion $ false
foreach ($ S in $ Sites)
New-ADOrganizationalUnit -Name $ S -Description "$ S" -Path "OU = $ FirstOU, DC = $ Dom, DC = $ EXT" -ProtectedFromAccidentalDeletion $ false
foreach ($ Serv in $ Services)
New-ADOrganizationalUnit -Name $ Serv -Description "$ S $ Serv" -Path "OU = $ S, OU = $ FirstOU, DC = $ Dom, DC = $ EXT" -ProtectedFromAccidentalDeletion $ false
Після виконання скрипта у нас в AD з'явилася така структура OU.
Для перенесення об'єктів між контейнерами AD можна використовувати командлет Move-ADObject:
$ TargetOU = "OU = Buhgalteriya, OU = Computers, DC = corp, DC = winitpro, DC = ru"
Get-ADComputer -Filter 'Name -like "BuhPC *"' | Move-ADObject -TargetPath $ TargetOU
Get-ADReplicationFailure: Перевірка реплікації в AD
За допомогою командлета Get-ADReplicationFailure можна перевірити стан реплікації між контролерами домена AD:
Get-ADReplicationFailure -Target DC01, DC02
Отримати інформацію про всі DC в домені за допомогою командлета Get-AdDomainController:
Get-ADDomainController -filter * | select hostname, IPv4Address, IsGlobalCatalog, IsReadOnly, OperatingSystem | format-table -auto
Отже, в цій статті ми розглянули базові можливості і особливості використання модуля AD для PowerShell для адміністрування AD. Сподіваюся, ця стаття підштовхне вас до подальшого дослідження можливостей цього модуля і автоматизації більшості задач управління AD.