sergey vasin

The IT blog

Используем PowerShell для получения информации о DHCP-серверах из Active Directory – Hey, Scripting Guy! Blog

leave a comment »

Резюме: Microsoft Scripting Guy, Ed Wilson рассказывает о запросе информации о DHCP-серверах из контекста конфигурации ActiveDirectory.

Microsoft Scripting Guy, Ed Wilson на связи. Одна из замечательных вещей в Windows Server 2012 и Windows 8 – это, то, что в них доступно множество командлетов и функций. После установки Remote Server Admin Tools (RSAT) на Windows 8 становятся доступны все административные модули Windows PowerShell. Таким образом, кроме командлетов клиента DHCP на моем компьютере присутствуют и командлеты и функции для сервера DHCP.

Определяем местонахождение информации о DHCP-серверах

Итак, первое, что мне нужно сделать, это определить местонахождение информации о DHCP-серверах в Active Directory. Я знаю, что она не находится в контексте по умолчанию, поэтому возможно, что она находится в контексте конфигурации. Для ее поиска я воспользуюсь ADSI Edit. На скриншоте приведен нужный нам контейнер.

 01

Запрашиваем Active Directory об авторизованных DHCP-серверах

Теперь, когда я знаю, где находится информация о DHCP-серверах, я могу с легкостью запросить ее. Для этого я воспользуюсь командлетом Get-ADObject из модуля ActiveDirectory. Поскольку я использую Windows PowerShell 3.0, мне не обязательно предварительно его импортировать. Но, раз я точно знаю, что я буду его использовать, я могу это сделать и вручную.

Import-Module ActiveDirectory

Теперь мне нужно запросить контекст конфигурации. Для этого я использую параметр –SearchBase командлета Get-ADObject.

-SearchBase «cn=configuration,dc=iammred,dc=net»

Если я запущу командлет в таком виде, он вернет огромное количество информации. Мне определенно стоит воспользоваться фильтром. Я могу указать запрос с использование диалекта LDAP, но ведь есть параметр –Filter, который работает ничуть не хуже и кроме того более понятен.

Когда я искал контейнер, содержащий записи о DHCP-серверах, я обратил внимание на значение в столбце Class, поскольку оно пригодится для построения фильтра в моем запросе. Т.е. мне нужны объекты класса DHCPClass. Он указывается в атрибуте ObjectClass. Ниже приведена часть запроса.

-Filter «objectclass -eq ‘dhcpclass’

Также мне не интересен контейнер DHCPRoot, поскольку он не содержит имен DHCP-серверов. Поэтому я добавлю исключение в фильтр при помощи оператора –and.

 -AND Name -ne ‘dhcproot'»

Полный текст фильтра приведен ниже:

-Filter «objectclass -eq ‘dhcpclass’ -AND Name -ne ‘dhcproot'»

Вот и все. Полный текст команды (это одна строка):

Get-ADObject -SearchBase «cn=configuration,dc=iammred,dc=net» -Filter «objectclass -eq ‘dhcpclass’ -AND Name -ne ‘dhcproot'»

Когда я запускаю ее на своем компьютере, выводится следующая информация:

14:42 C:\> Get-ADObject -SearchBase «cn=configuration,dc=iammred,dc=net» -Filter «objectclass -eq ‘dhcpclass’ -AND Name -ne ‘dhcproot'»

 DistinguishedName     Name                 ObjectClass          ObjectGUID

——————     —-                 ————          ———-

CN=wds1.iammred.ne… wds1.iammred.net     dHCPClass            0afcbc79-4268-4a8…

Проанализировав вывод, я понимаю, что мне интересно только значение свойства Name. Для того, чтобы получать только его, я могу воспользоваться командлетом Select-Object.

15:14 C:\> Get-ADObject -SearchBase «cn=configuration,dc=iammred,dc=net» -Filter «objectclass -eq ‘dhcpclass’ -AND Name -ne ‘dhcproot'» | select name

 name

 —-

 wds1.iammred.net

Также я могу воспользоваться техникой, привнесенной Windows PowerShell 3.0 – автоматическим ForEach.

15:20 C:\> (Get-ADObject -SearchBase «cn=configuration,dc=iammred,dc=net» -Filter «objectclass -eq ‘dhcpclass’ -AND Name -ne ‘dhcproot'»).name

 wds1.iammred.net

Зачем нужен этот скрипт? В интернете существует множество скриптов на VBScript для нахождения авторизованных DHCP-серверов, но только один из них присутствует в Scripting Guys Script Repositury– и он обладает рейтингом в 5 звезд!

На этом все, что касается запроса Active Directory об авторизованных серверах DHCP.

 

Автор:

Ed Wilson, Microsoft Scripting Guy

Оригинал:

http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/10/use-powershell-to-query-ad-ds-for-dhcp-servers.aspx


Страницы в социальных сетях:

Twitter: https://twitter.com/vsseth
Facebook: https://fb.com/inpowershell
VKontakte: https://vk.com/inpowershell


Реклама

Written by Сергей Васин

Февраль 5, 2013 в 11:13

Опубликовано в HeyScriptingGuyBlog, PowerShell

Tagged with

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s