воскресенье, 7 октября 2018 г.

PoSH - разница между Get-ADDomainController и Get-ADComputer

Мы имеем два похожих коммандлета: Get-ADDomainController и Get-ADComputer.
Кроме названий, которые selfexplained, есть также различие в синтаксисе и выводимых свойствах (properties).

9 стандартных свойств Get-ADComputer включают Name и DNSHostName (по сути, FQDN).
7 стандартных свойств Get-ADDomainController включают Name, Domain, Forest, IPv4Address.
Сразу видно, что из всего лишь семи свойств большая часть полезны, в отличие от менее полезных девяти (ИМХО). Для FQDN вместо DNSHostName используется название HostName (не знаю, почему).

Насчет полезности, Get-ADDomainController имеет очень нужное свойство IPv4Address. 
В Get-ADComputer мы можем его получить, но только в расширенных свойствах, для чего нужно объявить его в -Properties. Несложно, но зачем? Сравните, насколько короче строка в первом случае.
Get-ADDomainController -Domain domainname -Discover
Get-ADComputer -Identity computername -Server domainname/dcname -Properties Name,IPv4Address

Обратите внимание на две особенности: для одинаковой цели в первом случае используется имя параметра -Domain, а во втором -Server. Интересно также, что -Server принимает как domainname, так и dcname (имя контроллера домена). Все это поначалу немного путает, не так ли? 

В общем, как мне кажется, коммандлет Get-ADDomainController более продуман и логичен. Видимо, для своих старались :)

Не забудем, также, что для Get-ADComputer мы не обязаны применять параметр -Identity, можно использовать -Filter, главное, чтобы один из них присутствовал. Напомню, что -Identity применяется для указания одной сущности (компьютера), а -Filter для набора сущностей. 

И да, пока не забыл, в Get-ADComputer компьютер (-Identity computername) должен быть членом домена, указанного в параметре -Server (domainname/dcname), иначе будет ошибка. Что, впрочем, естественно. 


Несколько примеров для Get-ADComputer.

Get-ADComputer -Filter * # минимальная команда, которая дает список всех компьютеров текущего домена.

Get-ADComputer -Filter {OperatingSystem -Like "*Server*"} # выбираются все серверы текущего домена (того, где залогинен компьютер, с которого вы работаете).

Get-ADComputer -Filter * -Server domainname/dcname # благодаря параметру -Server можно получить список всех компьютеров нужного домена; нужно лишь указать имя домена или DC - домен контроллера требуемого домена.

Get-ADComputer -Filter {OperatingSystem -Like "*Server*"} -Server domainname/dcname # сочетание фильтра и имени DC/домена дает возможность получить список северов любого домена.

Get-ADComputer -Identity computername -Server domainname/dcname -Properties Name,IPv4Address # здесь указывается имя нужных компьютера и домена, нужно лишь следить за их правильным сочетанием.

Несколько примеров для Get-ADDomainController.

Get-ADDomainController # в отличие от предыдущего командлета команда работает без параметров и выдает сразу 24 свойства для одного из контроллеров текущего домена.

Get-ADDomainController -Domain domainname -Discover # так мы получаем свойства одного из DCs указанного домена. 

Get-ADDomainController -Filter * # способ получить все DCs - домен контроллеры текущего домена.

Get-ADDomainController -Filter * -Server dcname способ получить все DCs любого домена по имени сервера этого домена.

Get-ADDomainController -Filter * -Server domainname # это способ получить все DCs любого домена по имени домена (неважно, что параметр называется -Server - это работает).

Обратите внимание, что работают сочетания параметров  -Domain / -Discover или -Filter / -Server. 
Конечно, для вывода на экран удобнее использовать скобки, Format-Table (FT) или Select-Object (Select). 

Если достаточно показать только одно свойство - скобки ИМХО удобнее:
(Get-ADComputer -Filter *).Name 
В случае необходимости показа нескольких свойств - FT или Select:
Get-ADComputer -Filter * | FT Name,IPv4Address
Get-ADComputer -Filter * | Select Name
Select лучше работает, если вывод направляется не на экран, а в файл или пайп.

Надеюсь, что на сегодня информации достаточно.














Комментариев нет:

Отправить комментарий