Як подивитися ou користувача в ad
PowerShell: системне адміністрування та програмування
Все про PowerShell у Windows та на Linux. Системне адміністрування Windows
Get-ADUser: пошук відомостей про користувачів та фільтр користувачів за їх властивостями в Active Directory
Get-ADUser — це один із базових командлетів PowerShell, який можна використовувати для отримання інформації про користувачів домену Active Directory та їх властивості. Ви можете використовувати Get-ADUser, щоб переглянути значення будь-якого атрибуту об'єкта користувача AD, відобразити список користувачів у домені з необхідними атрибутами та експортувати їх до CSV, а також використовувати різні критерії та фільтри для вибору користувачів домену.
Командлет Get-ADUser доступний починаючи з PowerShell 2.0 і є частиною спеціального модуля Active Directory для Windows PowerShell (представленого у Windows Server 2008 R2). Командлети RSAT-AD-PowerShell дозволяють виконувати різні операції з об'єктами AD.
Примітка. Раніше для отримання інформації про атрибути облікових записів користувачів AD доводилося використовувати різні інструменти: консоль ADUC (включаючи запити AD), сценарії vbs, dsquery і так далі. Всі ці інструменти легко замінити командлетом Get-ADUser.
Розглянемо приклад, в якому ми розповімо, як отримати інформацію про останню зміну пароля користувача та дату закінчення терміну дії пароля за допомогою командлета Get-ADUser PowerShell.
Як знайти користувача AD та вивести список властивостей за допомогою Get-ADUser
Щоб використати командлет Get-ADUser необхідно встановити модуль Active Directory для Windows PowerShell, в яких системах він вже присутній і як його встановити, якщо він ще не встановлений, дивіться у статті "Як встановити та використовувати модуль Active Directory PowerShell". На робочих станціях цей модуль можна встановити наступною командою:
Add-WindowsCapability -online -Name "Rsat.ActiveDirectory.DS-LDS.Tools"
Щоб використовувати командлет Get-ADUser, вам не потрібно запускати його під обліковим записом з адміністратором домену або з делегованими дозволами. Будь-який авторизований користувач домену AD може запускати команди PowerShell для отримання значень більшості атрибутів об'єкта AD (крім конфіденційних, наприклад, пов'язаних зі зміною пароля). Якщо потрібно запустити команду Get-ADUser з іншого облікового запису, використовуйте параметр -Credential.
Щоб відобразити список усіх облікових записів домену, виконайте цю команду:
Важливо: Не рекомендується запускати цю команду в доменах з великою кількістю облікових записів, оскільки контролер домену, який надає інформацію, може бути перевантажений.
Щоб виконати запит AD на конкретному контролері домену, використовуйте опцію -Server. Щоб вивести інформацію щодо певного користувача, вкажіть його ім'я після опції -Identity:
Get-ADUser -Server ds.hackware.ru -Identity MiAl
Щоб змінити атрибути користувача, використовуйте командлет Set-ADUser.
За промовчанням командлет Get-ADUser повертає лише 10 основних атрибутів користувача (з більш ніж 120 властивостей облікового запису користувача): DistinguishedName, SamAccountName, Name, SID, UserPrincipalName, ObjectClass, статус облікового запису (Enabled: True/False відповідно до атрибуту UserAccountControl AD) і так далее. У цьому випадку висновок командлета не містить інформації про час останньої зміни пароля користувача.
Щоб відобразити докладну інформацію про всі доступні атрибути користувача, виконайте цю команду:
Get-ADUser -Identity MiAl -Properties *
Командлет Get-ADUser з опцією «-Properties *» відображає список всіх атрибутів AD та їх значень.
Тепер ми перейдемо до форматування виводу Get-ADUser, щоб відображати необхідні атрибути користувача. Ви можете відображати кілька атрибутів користувача:
- PasswordExpired (Термін дії пароля минув)
- PasswordLastSet (Востаннє встановлено пароль)
- PasswordNeverExpires (Пароль ніколи не спливає)
- LastLogonTimestamp (Тимчасова позначка останнього входу)
Щоб показати лише вибрані атрибути користувача, виконайте:
Get-ADUser MiAl -Properties PasswordExpired,PasswordLastSet,PasswordNeverExpires,lastlogontimestamp
Тепер у даних користувача є інформація про статус облікового запису (Чи закінчився термін дії пароля: True/False), дату останньої зміни пароля і часу останнього входу користувача в домен. Щоб відобразити цю інформацію у більш зручному табличному вигляді та видалити всі непотрібні атрибути, використовуйте Select-Object -Property або Format-Table:
Get-ADUser -Filter * -Properties PasswordExpired,PasswordLastSet,PasswordNeverExpires | Format-Table Name,PasswordExpired,PasswordLastSet,PasswordNeverExpires
Get-ADUser: пошук у кількох підрозділах за допомогою SearchBase
Щоб відображати користувачів лише з певного контейнера домену (організаційного підрозділу), використовуйте опцію -SearchBase:
Get-ADUser -SearchBase 'OU=London,DC=hackware,DC=loc' -filter * -Properties PasswordExpired,PasswordLastSet,PasswordNeverExpires | Format-Table Name,PasswordExpired,PasswordLastSet,PasswordNeverExpires
Якщо вам потрібно вибрати користувачів із кількох підрозділів одночасно, використовуйте наступний скрипт PowerShell:
$OUs = "OU=NY,DC=woshub,DC=com","OU=LA,DC=woshub,DC=com","OU=MA,DC=woshub,DC=com" $OUs | ForEach-Object
Робота з email адресами користувачів у Active Directory за допомогою PowerShell
Адреса електронної пошти користувача — це один з атрибутів об'єкта користувача Active Directory. Щоб перерахувати адреси електронної пошти користувачів, необхідно додати поле EmailAddress до значення опції -Properties командлета Get-ADUser.
Get-ADUser -Filter * -Properties EmailAddress -SearchBase 'OU=Paris,OU-Fr,DC=hackware,DC=ru'| Select-Object Name,EmailAddress
Щоб скласти список активних облікових записів користувачів з адресами електронної пошти, виконайте:
Get-ADUser -Filter <(mail -ne "null") -and (Enabled -eq "true")>-Properties Surname,GivenName,mail | Select-Object Name,Surname,GivenName,mail | Format-Table
Щоб отримати список користувачів Active Directory без електронної пошти:
Get-ADUser -Filter * -Properties EmailAddress | Where-Object -Property EmailAddress -eq $null
Наступний приклад дозволяє експортувати адресну книгу електронної пошти компанії з AD у файл CSV, який можна імпортувати в поштові клієнти, такі як Outlook або Mozilla Thunderbird:
Get-ADUser -Filter <(mail -ne "null") -and (Enabled -eq "true")>-Properties Surname,GivenName,mail | Select-Object Name,Surname,GivenName,mail | Export-Csv -NoTypeInformation -Encoding utf8 -delimiter "," $env:temp\adress_list.csv
Get-ADUser: експорт користувачів AD до CSV/TXT
Отриманий список користувачів домену з атрибутами можна експортувати до текстового файлу:
Get-ADUser -Filter * -Properties PasswordExpired,PasswordLastSet,PasswordNeverExpires | Format-Table Name,PasswordExpired,PasswordLastSet,PasswordNeverExpires > C:\temp\users.txt
Або ви можете експортувати список користувачів AD у файл CSV (який пізніше буде зручно імпортований до Excel):
Get-ADUser -filter * -Properties PasswordExpired,PasswordLastSet,PasswordNeverExpires | Where-Object | Sort-Object PasswordLastSet | Select-Object Name,PasswordExpired,PasswordLastSet,PasswordNeverExpires | Export-csv - path c:\tmp\user-passwords-expires.csv -Append -Encoding UTF8
Використання Get-ADUser з фільтрацією за атрибутами
Використовуючи опцію -Filter, можна фільтрувати список облікових записів користувачів за одним або декількома атрибутами. Як аргументи цього параметра можна вказати значення певних атрибутів користувачів Active Directory. Якщо ви використовуєте параметр -Filter, командлет Get-ADUser буде перераховувати лише користувачів, які відповідають критеріям фільтра.
Наприклад, я хочу перерахувати активні (Enabled) облікові записи користувачів, ім'я яких містить «Dmitry» (у наведеному нижче прикладі використовується кілька фільтрів; ви можете комбінувати умови, використовуючи стандартні логічні оператори порівняння PowerShell):
Get-AdUser -Filter "(Name -like '*Dmitry*') -and (Enabled -eq 'True')" -Properties * | Select-Object name,enabled
Крім того, ви можете відсортувати отриманий список користувачів за певним атрибутом користувача (стовпцем) за допомогою командлета Sort-Object. Ви також можете використовувати командлет Where-Object для одночасного вказівки кількох критеріїв фільтрації.
Get-ADUser -Filter * -properties PasswordExpired,PasswordLastSet,PasswordNeverExpires -SearchBase 'OU=NY,DC=hackware,DC=ua'| Where-Object | Sort-Object PasswordLastSet | Select-Object Name,PasswordExpired,PasswordLastSet,PasswordNeverExpires
Таким чином, можна скласти таблицю з будь-якими необхідними атрибутами користувачів Active Directory.
Приклади використання Get-ADUser
Покажемо ще кілька корисних прикладів команд для запитів користувачів Active Directory за допомогою різних фільтрів. Ви можете об'єднати їх, щоб отримати необхідний список об'єктів AD:
Відобразити користувачів AD, ім'я яких починається з Joe:
Ви можете використовувати PowerShell для розрахунку загальної кількості облікових записів користувачів Active Directory:
Get-ADUser-Filter | Measure-Object
Виведення списку користувачів та їх властивостей, розміщених у певному організаційному підрозділі (контейнері) у цьому випадку це OU=Finance,OU=UserAccounts,DC=FABRIKAM,DC=COM:
Get-ADUser -Filter * -SearchBase "OU=Finance,OU=UserAccounts,DC=FABRIKAM,DC=COM"
Знайти вимкнені облікові записи користувачів Active Directory:
Get-ADUser-Filter | Select-Object SamAccountName,Name,Surname,GivenName | Format-Table
Ви можете перевірити дату створення облікового запису користувача Active Directory за допомогою команди:
Get-ADUser -Filter * -Properties Name,WhenCreated | Select name,whenCreated
Ви можете отримати список нещодавно доданих користувачів Active Directory, створених за останні 24 години:
$lastday = ((Get-Date).AddDays(-1)) Get-ADUser -filter
Вивести список облікових записів із простроченим паролем (ви можете налаштувати параметри закінчення терміну дії пароля в політиці паролів домену):
Get-ADUser -Filter -Properties name,passwordExpired | Where-Object | Select-Object name,passwordexpired
Командлети Get-ADUser та Add-ADGroupMember можна використовувати для створення динамічних груп користувачів AD (залежно від міста, посади, відділу та іншого).
Завдання: для списку облікових записів, які зберігаються в текстовому файлі (по одному обліковому запису в рядку), вам необхідно отримати назву компанії користувача з AD та зберегти її у файл CSV (ви можете легко імпортувати цей файл до Excel).
Import-Csv c:\ps\users_list.csv | ForEach
Користувачі, які не змінювали свої паролі протягом останніх 90 днів:
$90_Days = (Get-Date).adddays(-90) Get-ADUser -Filter
Щоб отримати фотографію користувача з Active Directory та зберегти її у файлі jpg, виконайте такі команди:
$usr = Get-ADUser sjoe -Properties thumbnailPhoto $usr.thumbnailPhoto | Set-Content sjoe.jpg -Encoding byte
Щоб отримати список груп AD, членом яких є обліковий запис користувача:
Get-AdUser MiAl -Properties memberof | Select-Object memberof -ExpandProperty memberof
Перелічити користувачів із OU, які є членами певної групи безпеки домену:
Get-ADUser -SearchBase 'OU=Rome,OU=Italy,DC=hackware,DC=ru' -Filter * -Properties memberof | Where-Object
Перерахувати комп'ютери домену, на яких користувачеві дозволено вхід.
Get-ADUser MiAl -Properties LogonWorkstations | Format-List Name,LogonWorkstations
Щоб шукати комп'ютери та фільтрувати комп'ютери за їх властивостями в Active Directory, можна використовувати інший командлет – Get-ADComputer.
Аудит користувачів AD за допомогою Powershell
Домен Active Directory може містити сотні і навіть тисячі облікових записів і для керування всіма цими обліковими записами адміністратору потрібна значна кількість часу. Навіть якщо у нас вже всі облікові записи рознесені по групах, до всіх груп застосовані політики та налаштовані права доступу, все одно можуть виникнути ситуації, коли з тих чи інших причин нам необхідно знайти повну інформацію про користувача.
Для вирішення цих завдань нам може допомогти PowerShell, інструмент, який також дозволяє легко проводити аудит облікових записів користувачів Active Directory. Для цього ми будемо використовувати один з найпопулярніших командлетів Active Directory PowerShell — Get-ADUser. За допомогою цього командлета ми можемо отримати як вказаний об'єкт користувача, так і виконати налаштований пошук для отримання декількох об'єктів.
У вас є кілька варіантів, як ідентифікувати користувача: можна використовувати Distinguished Name (DN), Globally Unified Identifier (GUID), ідентифікатор безпеки (SID) або ім'я облікового запису Security Account Manager (SAM). Про те, як можна використовувати ці варіанти на практиці, ми поговоримо трохи далі, а поки що нам потрібно підготувати нашу інфраструктуру PowerShell для роботи з Active Directory.
Для початку роботи з AD нам необхідно встановити модуль Active Directory. Зробити це можна двома способами. Насамперед, можна встановити Remote Server Administration Tools (RSAT). Зробити це можна наступним чином: натиснути Start, далі Settings, потім вибрати Apps і Optional Features, після цього додати компонент за допомогою Add і у списку, що відкрився, вибрати RSAT: Active Directory Domain Services and Lightweight Directory Services Tools option. Щоб завершити встановлення, натисніть Install.
Другий спосіб встановлення RSAT ще простіше. Ми можемо скористатися функціоналом PowerShell для установки безпосередньо з вузла Windows Update.
Add-WindowsCapability –online –Name «Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0»
Приступимо до пошуків
Для пошуку даних про користувачів AD ми будемо використовувати параметр -Identity. Відкриємо модуль Active Directory Module для Windows Powershell як Адміністратора.
Спочатку шукаємо користувача за його атрибутом sAMAccountName
В результаті виконання команди ми отримали значення основних полів AD для даного користувача. Але ми можемо пошукати користувача за іншими параметрами. Наприклад, припустимо, що нам відомо лише значення поля objectGUID (або GUID). У такому разі команда матиме такий вигляд:
Ще один досить поширений випадок, коли нам відомо лише значення SID і необхідно дізнатися, хто ховається під цим значенням. У такому випадку ми також використовуємо GetADUser із зазначенням SID:
Коли об'єктів занадто багато
Представлена вище команда Get-ADUser зручна при роботі в невеликих середовищах завдяки простоті використання. Але якщо у вашому домені десятки тисяч об'єктів, Get-ADUser може створити помітне навантаження на домен контролер, з яким ви взаємодієте при виконанні даного командлета. Справа в тому, що Get-ADUser витягує всі об'єкти користувача у вашому підключеному домені AD.
Щоб уникнути подібної ситуації, нам необхідно відфільтрувати всю базу користувачів і виконати пошук конкретних користувачів на основі деяких властивостей. Для вирішення цієї задачі призначено параметр '-filter', що вказує рядок запиту, який витягує об'єкти AD. У цьому рядку використається синтаксис PowerShell Expression Language (EL). Синтаксис PEL забезпечує розширену підтримку перетворення типів для типів значень, одержуваних параметром Filter. Синтаксис використовує подання по порядку, що означає, що оператор розміщується між операндом та значенням.Давайте розглянемо кілька прикладів, щоб отримати найкращу виставу.
Для початку пошукаємо всі облікові записи, які мають статус Enabled:
Тут після параметра filter ми у фігурних дужках вказуємо той логічний вираз, яким повинна здійснюватися фільтрація. У цьому випадку ми отримаємо всі активні облікові записи в домені. Якщо ми, наприклад, хотіли б отримати список усіх користувачів, у яких заповнено поле E-Mail, наш запит мав би такий вигляд:
Get-ADUser -Filter -Properties Name,GivenName,mail| ft Name,GivenName,mail
Результати роботи команди ми передаємо на вхід команді ft (Format Table), яка переводить висновок у більш читаний вигляд.
Таким чином, ви можете використовувати -Filter для пошуку інших полів об'єктів Active Directory.
Ще один приклад - це пошук конкретного користувача за заданим шаблоном. Тут ми знайдемо всі записи, де входження такого шаблону використовується в імені чи прізвищі користувача.
Get-ADUser -Filter -Properties * | ft Name,EmailAddress
Давайте ще скоротимо навантаження на нашу інфраструктуру AD, обмеживши пошук тільки за певними Organizational Unit (OU). Для цього скористаємося параметром -SearchBase.
Get-ADUser -SearchBase 'OU="Test Users",DC=domain,DC=local' -filter * -Properties Name,EmailAddress | ft Name,EmailAddress
У цьому прикладі ми виводимо імена та поштові адреси користувачів, обмежуючи область дії запиту лише OU “Test Users”.
За промовчанням GetADUser повертає десять основних полів, які ми вже бачили раніше, однак ми можемо змінити виведення цієї команди, вказавши за допомогою ключа Properties ті поля, які нас цікавлять. Наприклад, якщо нам необхідно дізнатися, коли користувачі востаннє змінювали свої паролі, це можна зробити за допомогою наступної команди:
Get-ADUser -filter * -Properties Name,PasswordLastSet | ft Name,PasswordLastSet
Ще один корисний приклад використання -Properties - це отримання списку користувачів з часом створення їх облікових записів.
Get-ADUser -filter * -Properties Name,whencreated | ft Name,WhenCreated
Висновок
У цій статті ми розглянули корисні на практиці приклади роботи з Active Directory за допомогою PowerShell. У наступній статті ми поговоримо про те, як PowerShell може допомогти в аналізі журналів подій.
Також хочу запросити вас на безкоштовний урок: "Написання скриптів на PowerShell та їх використання", який відбудеться вже у понеділок.
Windows admin blog
Корисні команди cmd, powershell, адміністрування, фічі та вирішення проблем на win/winserver
AD: дізнатися в яких групах складається користувач / пряме та опосередковане членство
У цій статті йтиметься про те, як вивести список груп, в яких складається користувач. Звичайно, це можна зробити з GUI, але не завжди такий висновок задовольняє цілі.
Також, через GUI ви не визначите ПОВНИЙ список членства (т.з. непряме членство), коли одні групи можуть бути вкладені в інші.
Якщо група, в якій складається користувач, є вкладеною групою іншої групи, користувач наділяється повноваженнями, заданими кінцевій групі, хоча і не є її членом безпосередньо. Цю групу ви не побачите на вкладці користувача «Член груп» (Member of)
Розглянемо у межах цієї статті такі інструменти:
- whoami /groups - Членство в групах поточного користувача
- dsget user — покаже пряме та опосередковане членство
- Get-ADUser (Powershell)
1) Whoami/groups
Якщо нам необхідно дізнатися, в яких групах є поточний користувач , під яким ми залогінені, можна скористатися командою:
Щоправда висновок не дуже зручний для сприйняття. Буде відображено всі групи з прямим та непрямим членством.
2) Утиліта dsget
Вивести список груп, в яких складається користувач:
(У цьому прикладі виводимо список груп, в яких складається користувач Peter Parker, що знаходиться в OU "IT department\Support team")
dsget user "CN = Peter Parker, OU = Support team, OU = IT department, DC = Contoso, DC = com" -memberof
Наступна команда відобразить розширений список груп, у т.ч. в яких побічно складається користувач (ключ -expand)
dsget user "CN = Peter Parker, OU = Support team, OU = IT department, DC = Contoso, DC = com" -expand
Утиліта dsget доступна лише на контролерах домену
3) Get-ADUser
Для виконання командлета Get-ADUser потрібно встановити Powershell модуль Active-Directory.
Щоб вивести список груп необхідного користувача у зручному форматі, необхідно виконати наступний конвеєр команд у powershell:
Get-ADUser username -properties memberof | select memberof -expandproperty memberof
Примітка: дана команда виведе пряме членство (по суті вміст закладки користувача «Член груп» (Member of)
Використання Get-ADUser для отримання різної інформації про користувачів домену AD
Не секрет, що з першої версії PowerShell Microsoft намагається зробити з нього основний інструмент адміністрування Windows. І багато в чому це виходить! Сьогодні на простих прикладах ми покажемо можливості PowerShell, які можна використовувати для отримання різної інформації про користувачів Active Directory та їх атрибути.
Примітка. Раніше для отримання інформації про атрибути облікових записів користувачів AD доводилося використовувати різні інструменти: консоль ADUC (у тому числі збережені запити AD), скрипти vbs, утиліту dsquery і т.п. Вибір інструменту зазвичай ґрунтувався на поставленій задачі та здібностях адміністратора у програмуванні.
У PowerShell 2.0 з'явився спеціальний модуль для роботи з Active Directory Active Directory Module для Windows PowerShell (представлений у Windows Server 2008 R2), командлети якого дозволяють виконувати різні маніпуляції з об'єктами каталогу AD. Для отримання інформації про користувачів домену Active Directory та їх властивості призначений командлет Get-ADUser. За допомогою командлета Get-ADUser можна отримати значення будь-якого атрибуту існуючого облікового запису користувача AD.Крім того, можна вказувати різні критерії вибірки та формувати списки користувачів домену та їх атрибутів.
У цьому прикладі ми покажемо, як за допомогою командлета PowerShell Get-ADUser отримати інформацію, коли останній раз змінювався пароля користувача і коли закінчується термін його дії.
Запускаємо вікно Powershll з правами адміністратора та імпортуємо модуль Active Directory командою:
Import-Module activedirectory
Порада. У Windows Server 2012 і вище цей пункт можна пропустити, оскільки модуль PowerShell Active Directory підключено за замовчуванням.
У клієнтських ОС (в тій же Windows 10) для роботи команди Get-AdUser потрібно встановити відповідну версію RSAT і включити в панелі керування компонент Active Directory Module для Windows PowerShell (Remote Server Administration Tools -> Role Administration Tools -> AD DS and AD LDS Tools -> AD DS Tools).
Повний список всіх аргументів командлета Get-ADUser можна отримати так:
Щоб вивести список усіх облікових записів домену, виконаємо команду:
Важливо. Не рекомендується виконувати цю команду в доменах з великою кількістю облікових записів, т.к. можливе навантаження контролера домену, що надає дані.
Формат списку, що повертається, не дуже зручний для використання, виводиться лише деякі основні 10 з понад 120 атрибутів і властивостей облікових записів користувачів (DN, SamAccountName, Name, SID, UPN і т.д) крім того, ми бачимо, що інформація про час останньої зміни пароля відсутня.
Щоб вивести повну інформацію про всі доступні атрибути користувача tuser, виконаємо команду:
Get-ADUser -identity tuser -properties *
Отже, ми бачимо повний список атрибутів користувача AD та їх значень, асоційованих з обліковим записом користувача. Далі ми перейдемо до форматування виведення командлету Get-ADUser, щоб відображалися потрібні нам поля. Нас цікавлять атрибути:
- PasswordExpired
- PasswordLastSet
- PasswordNeverExpires
Get-ADUser tuser -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires
Тепер у даних користувача є інформація про дату зміни пароля та час, коли термін пароля закінчиться. Представимо інформацію у більш зручному табличному вигляді:
Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires
Щоб вивести дані користувачів із певної OU, скористаємося параметром SearchBase:
Get-ADUser -SearchBase 'OU=Moscow,DC=winitpro,DC=loc' -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires
Результат виконання команди можна вивантажити до текстового файлу:
Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires > C:\temp\users.txt
Або CSV, який надалі буде зручно експортувати в Excel (додатково за допомогою sort-object відсортуємо таблицю по стовпцю PasswordLastSet, а також додамо умову where – ім'я користувача має містити рядок «Dmitry»):
Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | де | sort-object PasswordLastSet | select-object Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires | Export-csv -path c:\temp\user-password-expires-2015.csv
Таким чином, можна побудувати таблицю з будь-якими атрибутами користувачів Active Directory.
Порада. Для отримання даних про комп'ютери Active Directory використовується командлет Get-ADComputer.
Для отримання списку облікових записів користувачів AD за певною ознакою використовується параметр Filter. Як аргументи цього параметра можна вказати значення певних атрибутів користувачів Active Directory, в результаті командлет Get-ADUser буде застосований для користувачів, які підпадають під критерії фільтра.
Далі наведемо ще кілька корисних варіантів запитів про користувачів Active Directory за допомогою різних фільтрів. Ви можете комбінувати їх для отримання необхідного списку користувачів AD:
Виведення користувачів AD, ім'я яких починається з Roman:
Щоб підрахувати загальну кількість усіх облікових записів у Active Directory:
Get-ADUser-Filter | Measure-Object
Список усіх активних (не заблокованих) облікових записів AD:
Get-ADUser-Filter | Select-Object SamAccountName,Name,Surname,GivenName | Format-Table
Список облікових записів зі строком дії пароля, що минув.
Get-ADUser -filter -properties passwordExpired | where
Список активних облікових записів з поштовими адресами:
Get-ADUser -Filter <(mail -ne "null") -and (Enabled -eq "true")>-Properties Surname,GivenName,mail | Select-Object Name,Surname,GivenName,mail | Format-Table
Завдання: для списку облікових записів, які зберігаються в текстовому файлі (по одному обліку в рядку), потрібно отримати телефон користувача в AD і вивантажити інформацію в текстовий csv файл (можна легко імпортувати в Esxel).
Import-Csv c:\ps\usernsme_list.csv | ForEach
Наступний приклад дозволяє вивантажити адресну книгу підприємства у вигляді CSV файлу, який надалі можна імпортувати в Outlook або Mozilla Thunderbird:
Get-ADUser -Filter <(mail -ne "null") -and (Enabled -eq "true")>-Properties Surname,GivenName,mail | Select-Object Name,Surname,GivenName,mail | Export-Csv -NoTypeInformation -Encoding utf8 -delimiter "," $env:temp\mail_list.csv
Користувачі, які не змінювали свій пароль протягом останніх 90 днів:
$90_Days = (Get-Date).adddays(-90) Get-ADUser -filter
Щоб отримати фотографію користувача з Active Directory і зберегти її в jpg файл:
$user = Get-ADUser winadmin -Properties thumbnailPhoto $user.thumbnailPhoto | Set-Content winadmin.jpg -Encoding byte
Список груп, в яких складається обліковий запис користувача
Get-AdUser winadmin -Properties memberof | Select memberof -expandproperty memberof
(Всього переглядів: 29 791, переглядів сьогодні: 30)
IT-аутсорсинг – це надійно та вигідно.
Професійна підтримка ПК, підтримка IT-системи загалом – це те, що потрібно задуматися вже сьогодні. Довірте це фахівцям. Успіхів!
Спробуйте наші послуги обслуговування та отримайте третій місяць обслуговування у подарунок!
Як керувати OU в Active Directory
Організаційна одиниця або, як зазначено у російській версії Windows server, підрозділ (Organizational Unit) — це субконтейнер у Active Directory, до якого можна розміщувати користувачів, групи, комп'ютери та інші об'єкти AD. Підрозділи (OU) керуються адміністраторами домену. Ви також можете налаштувати делегування керування над підрозділом за допомогою майстра делегування керування. OU можуть бути вкладеними, і до них можна застосовувати групові політики.
Створення підрозділу (OU)
OU можна створити за допомогою Active Directory Administrative Center (ADAC), Active Directory Users and Computers (ADUC), командного рядка та PowerShell.
Створення підрозділу за допомогою Active Directory Administrative Center
Давайте створимо підрозділ за допомогою ADAC:
Запустіть службу Active Directory Administrative Center (dsac.exe). Перейдіть до режиму перегляду дерева і розгорніть домен або підрозділ, в якому ви хочете розмістити нове.
Клацніть правою кнопкою миші на OU або домен, виберіть «New. », а потім виберіть Organizational Unit.
З'явиться вікно створення підрозділу:
Введіть ім'я OU і натисніть OK, щоб створити.
Створення підрозділу за допомогою командного рядка
Щоб створити OU за допомогою cmd, запустіть dsadd.exe з наступними параметрами:
Цей рядок створить TestOU в домені з описом "TestOU".
Створення підрозділу за допомогою Windows PowerShell
Для створення нового підрозділу за допомогою PowerShell потрібно використовувати команду New-ADOrganizationalUnit. Запустіть PowerShell від імені адміністратора та введіть наступне:
Import-Module ActiveDirectoryNew-ADOrganizationalUnit "TestOU" -Description "TestOU"
Цей рядок створить TestOU в домені з описом "TestOU".
Видалення підрозділу AD
Стандартні підрозділи захищені від випадкового видалення. Щоб видалити його, нам потрібно зняти прапорець Protected from Accidental Deletion у властивостях.
Видалення підрозділу за допомогою Active Directory Administrative Center
Відкрийте Active Directory Administrative Center (Dsac.exe).
Перейдіть до режиму перегляду дерева, розгорніть свій домен і знайдіть OU, яке ви хочете видалити. Клацніть правою кнопкою миші OU та виберіть “Delete”.
З'явиться вікно підтвердження видалення:
Натисніть Yes для підтвердження. Якщо OU містить дочірні об'єкти, натисніть знову.
Видалення підрозділу за допомогою командного рядка
Для видалення OU за допомогою командного рядка необхідно використовувати інструмент dsrm.exe у cmd, запущеному від імені адміністратора, з наступним синтаксисом:
Цей рядок повністю видалить OU з будь-якими об'єктами всередині.
Видалення підрозділу за допомогою Windows PowerShell
Для видалення підрозділу нам потрібно використати команду New-ADOrganizationalUnit у PowerShell запущеному від імені адміністратора:
Import-Module ActiveDirectory
Remove-ADObject -Identity "OU=TestOU,DC=office,DC=local" -Recursive -Confirm:$False
Цей рядок повністю видалить OU TestOU з усіма об'єктами, що існують в ній.
Зміна підрозділу AD
Іноді потрібно змінити OU. Ось як це зробити трьома різними способами.
Зміна підрозділу за допомогою Active Directory Administrative Center
Відкрийте службу Active Directory Administrative Center (dsac.exe). Перейдіть до режиму перегляду дерева і знайдіть OU, яку потрібно змінити.
Клацніть правою кнопкою миші на ньому і виберіть "Properties:Змініть властивості, які вам потрібні. Наприклад, ви можете змінити опис або додати менеджера.
Зніміть прапорець із параметра "Захищений від випадкового видалення" та натисніть OK.
Зміна підрозділу за допомогою командного рядка
Для того, щоб змінити OU, необхідно використовувати dsmod.exe в cmd від імені адміністратора. Але в цьому випадку ви можете змінити лише опис.
Тут ми призначаємо " New Description для TestOU.
Зміна підрозділу за допомогою Windows PowerShell
Команда Set-ADOrganizationalUnit використовується для зміни OU. Вона дуже потужна, на відміну від dsmod.exeВи можете легко змінити безліч параметрів OU, таких як DistinguishedName, LinkedGroupPolicyObjects або ManagedBy.
Import-Module ActiveDirectory
Set-ADOrganizationalUnit -Identity "OU=TestOU,DC=office,DC=local" -ManagedBy "CN=User,CN=Users,DC=office,DC=local"
