Страница 1 из 1

WinServer-ActiveDirectory: Найти пользователей по фильтру OU

Добавлено: 02 май 2017, 00:16
xor
Офтопик

Для реализации описанного процесса необходимо соблюдение определенных требований:
Чтобы использовать PowerShell для управления AD, нужно соблюсти несколько требований. Я собираюсь продемонстрировать, как командлеты для AD работают на примере компьютера на Windows 7.
Чтобы использовать командлеты, контроллер домена у Вас должен быть уровня Windows Server 2008 R2, или же Вы можете скачать и установить Active Directory Management Gateway Service на наследуемых контроллерах домена (legacy DCs). Внимательно прочитайте документацию перед установкой; требуется перезагрузка КД.
На стороне клиента, скачайте и установите Remote Server Administration Tools (RSAT) либо для Windows 7, либо для Windows 8. В Windows 7, Вам необходимо будет открыть в Панели управления (Control Panel) раздел Программы (Programs) и выбрать Включить или выключить функции Windows (Turn Windows Features On or Off). Найдите Remote Server Administration Tools и раскройте раздел Role Administration Tools. Выберите подходящие пункты для AD DS and AD LDS Tools, особенно обратите внимание на то, что должен быть выбран пункт Active Directory Module for Windows PowerShell, как показано на рисунке 1. (В Windows 8 все инструменты выбраны по умолчанию). Теперь мы готовы работать.

Я вошел в систему под учетной записью с правами доменного администратора. Большинство командлетов, которые я буду показывать, позволят Вам уточнить альтернативные полномочия (credentials). В любом случае я рекомендую прочитать справку (Get-Help) и примеры, которые я буду демонстрировать ниже.
Начните сессию PowerShell и просмотрите список модулей:
PS C:\> Get-Module -listavailable
импортируйте модуль AD:
PS C:\> Import-Module ActiveDirectory
В результате импорта создается новый PSDrive, но мы не будем использовать его. Однако, Вы можете посмотреть, какие команды имеются в импортированном модуле.
PS C:\> get-command -module ActiveDirectory
Прелесть этих команд в том, что если я могу использовать команду для одного объекта AD, то ее можно использовать для 10, 100 и даже 1000. Посмотрим, как некоторые из этих командлетов работают.
Иногда надо найти пользователей по фильтру расположения их в OrganizationUnit.
Эта команда выведет пользователей из определенного OU, и отсортирует их по последнему логину в домен.
Get-ADUser -Filter * -properties SamAccountName,LastLogonDate,DistinguishedName | Where-object { $_.DistinguishedName -like "*OU=Supervaysery,OU=Office CF,OU=MSK*" } | sort -property LastLogonDate | ft SamAccountName,LastLogonDate

Код: Выделить всё

SamAccountName                                              LastLogonDate
--------------                                              -------------
s.lisitsin
m.sukacheva                                                 10/19/2015 12:44:19 PM
an.egorov                                                   1/8/2016 11:12:09 AM
o.zhizhko                                                   5/11/2016 8:34:51 PM
i.antonnikov                                                10/2/2016 1:56:14 AM
n.kornilova                                                 12/22/2016 2:09:09 PM
s.kovzel                                                    1/18/2017 2:30:17 PM
n.nosova                                                    3/31/2017 10:11:57 AM
s.sorokina                                                  4/3/2017 10:12:58 AM
a.korolkova                                                 4/7/2017 12:48:36 PM
s.lebedev                                                   4/7/2017 1:48:53 PM
o.chifileva                                                 4/7/2017 6:50:00 PM
m.arutyunyan                                                4/13/2017 11:37:28 AM
o.belich                                                    4/15/2017 12:10:33 AM
y.zabolotskih                                               4/15/2017 9:17:48 PM
s.vitushkin                                                 4/16/2017 9:53:49 AM
v.ashitko                                                   4/17/2017 2:10:55 PM
d.grigoriev                                                 4/18/2017 10:47:20 AM
a.saenko                                                    4/20/2017 2:39:26 PM
a.kolotilov                                                 4/22/2017 11:37:45 AM
o.eroshina                                                  4/22/2017 1:51:52 PM
e.reshetnikov                                               4/23/2017 8:02:57 PM
n.krylov                                                    4/24/2017 12:03:42 PM
e.ermakova                                                  4/24/2017 11:05:06 PM
s.shevelo                                                   4/25/2017 1:05:59 AM
s.kostorev                                                  4/25/2017 3:40:03 PM
a.bykova                                                    4/26/2017 5:57:02 PM
n.apryatkina                                                4/27/2017 4:41:03 PM
s.tishkun                                                   4/27/2017 6:55:29 PM
a.pronina                                                   4/28/2017 5:36:52 PM
r.baryshnikov                                               5/1/2017 12:44:12 PM