Нахождение объектов компьютеров с определенными IP-адресами в Forefornt TMG

Предположим, в качестве proxy/firewall у вас используется Microsoft Forefront TMG 2010. Его настройки включают сотню правил и не одну сотню компьютеров. Вы добавили объект компьютера с его реальным IP-адресом, но применяемые правила работают как то не так, или не работают вообще. Вы подозреваете, что где то в списке сетевых объектов в настройках TMG присутствует еще один компьютер с таким же IP-адресом. То есть, компьютер списали/выбросили/перевезли в другой офис, но запись о нем осталась.
Можно выяснить, что это за компьютер путем просмотра логов или перевобом всех существующих объектов. Но — неэффективно и неохота. Нужное подчеркнуть.

Для этого мы можем использовать PowerShell. Причем двумя способами.

Использование COM-объектов.

Для начала создадим экзмпляр объекта «FPC.Root», что, как ясно из названия, представляет собой вершину иерархии инструментов управления (и не только) Forefront TMG.

$FPCRoot = New-Object -ComObject "FPC.Root"

Далее мы воспользуемся методом GetContainingArray этого объекта, для получения объекта массива, в который входит наш сервер. В случае версии Standard сервера Forefront TMG — массив соответствует одному этому серверу.

$array = $FPCRoot.GetContainingArray()

Затем мы получим список объектов компьтеров конфигурации этого массива (сервера).

$comps = $array.RuleElements.Computers

Теперь мы можем использовать командлет Where-Object для отбора тех записей, которые нам нужны

$comps | Where-Object -FilterScript {$_.IPAddress -eq 'some_ip_address'}

tmg-com

Использование модуля Active Directory

Forefront TMG хранит свою конфигурацию в Active Directory Lightweight Directory Services. Так что для получения требующейся нам информации мы можем воспользоваться командлетами, входящими в модуль ActiveDirectory. Без открытия дополнительных портов мы не сможем выполнить эту операцию удаленно, например, с компьютера администратора, на котором установлен RSAT, но мы можем сделать это локально на сервере TMG, поскольку модуль ActiveDirectory устанавливается на сервер при добавлении роли AD LDS.

Экземпляр службы каталогов, cодержащий конфигурацию TMG по умолчанию использует порт 2171 (2172 — для SSL). Проверить это можно командой

dsdbutil «list instances» quit

dsdbutil

Список контекстов именования можно получить следующей командой:

Get-ADRootDSE -server localhost:2171 | Select-Object -ExpandProperty namingContexts

adrootdse

Нас интересует третий — CN=FPC2
Далее нам нужно получить объект массива, в котором находятся нужные нам настройки. Получить его можно следующей командой

Get-ADObject -Server localhost:2171 -SearchBase "CN=Arrays,CN=Array-Root,CN=FPC2" `
-SearchScope OneLevel -Filter {objectClass -eq "msFPCArray"} | Format-List

Результат будет напоминать следующий:
msFPCArray

Сохраним этот объект в переменной (не забудьте убрать Format-List).

$array = Get-ADObject -Server localhost:2171 -SearchBase "CN=Arrays,CN=Array-Root,CN=FPC2" `
-SearchScope OneLevel -Filter {objectClass -eq "msFPCArray"}

Теперь нам нужно получить список компьютеров. Мы можем сделать это следующей командой

$comps = Get-ADObject -Server localhost:2171 `
-SearchBase "cn=Computers,cn=RuleElements,$($array.DistinguishedName)" `
-Filter {objectClass -eq 'msFPCComputer'} -Properties msFPCName,msFPCIPAddress

В качестве занчения параметра -SearchBase мы указываем где нужно начинать поиск, а именно в контейнере Computers, находящемся в RuleElements, который в свою очередь находится в контейнере, соответствующем найденному нами ранее объекту массива.
В параметре -Filter мы указываем, что ищем только объекты класса msFPCComputer.
В качестве значений для параметра -Properties мы указываем, что, кроме атрибутов по умолчанию, хотим получить также значения атрибутов msFPCName и msFPCIPAddress.

Теперь мы можем получить требующиеся нам объекты компьютеров.

$comps | Where-Object -FilterScript {$_.msFPCIPAddress -eq 'some_ip_address'}

tmg-lds


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

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


Реклама

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

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

Логотип WordPress.com

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

Google+ photo

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

Фотография Twitter

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

Фотография Facebook

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

Connecting to %s