Возможности командлета Get-ADObject PowerShell

Опубликовано: 16 Марта, 2023
Возможности командлета Get-ADObject PowerShell

PowerShell предлагает несколько командлетов, которые можно использовать для выполнения почти всех операций Active Directory, которые вы обычно выполняете с помощью таких инструментов, как Пользователи и компьютеры Active Directory и Сайты и службы Active Directory. Доступно множество командлетов Active Directory PowerShell, которые поддерживают предопределенные параметры, которые можно использовать для запроса определенной информации в Active Directory. Например, командлет Get-ADUser PowerShell разработан специально для получения информации о пользователе из Active Directory, а также поддерживает предопределенные параметры, такие как параметр «-AccountExpiring», который можно использовать для возврата учетных записей, срок действия которых истекает в Active Directory, и « -AccountExpired», который можно использовать, если вы хотите получить учетные записи, срок действия которых уже истек в домене AD. Get-ADObject PowerShell — это мощный командлет, который можно использовать для поиска любой информации об объектах в Active Directory. Хотя он не предоставляет никаких предопределенных параметров, он предоставляет мощный способ изучения информации в Active Directory. В этой статье приводятся некоторые полезные примеры командлета Get-ADObject PowerShell и рассказывается, как использование командлета Get-ADObject PowerShell может помочь сократить время, необходимое для поиска информации в Active Directory.

Get-ADObject: 3 общих параметра

Get-ADObject поддерживает три общих параметра: «-Identity», «-Filter» и «-LDAPFilter». Параметр «-Identity» можно использовать для получения информации о конкретном объекте Active Directory, таком как сайт Active Directory. Вам необходимо указать различающееся имя объекта или GUID с параметром «-Identity», как показано в приведенной ниже команде:

Get-ADObject –Identity “CN=Server1” –Server “TechGenixDC1.TechGenix.com” | Export-CSV C:TempServerInfo.CSV -NoType

Приведенная выше команда перечисляет все свойства объекта, указанные после параметра «-Identity». Поскольку вы указали имя объекта, командлет Get-ADObject знает, что ему необходимо получить все свойства определенного объекта из базы данных Active Directory.

Параметр «-Filter» можно использовать для поиска определенных объектов. Строка, которую вы используете после параметра «-Filter», должна быть выражением PowerShell. Выражение PowerShell использует «-like», «-eq», «-not», «-and» и так далее. Например, при поиске только удаленных объектов в Active Directory с использованием параметра «-Filter» вы выполните эту команду PowerShell:

Get-ADObject –Filter IsDeleted –eq $True | Export-CSV C:TempDeletedObjectsOnly.CSV –NoType

Приведенная выше команда извлекает все удаленные объекты в Active Directory, включая учетные записи пользователей и компьютеров, и сохраняет результат в файле C:TempDeletedObjectsOnly.CSV. Допустим, вы хотите получить учетные записи, которые были удалены, но еще не были переработаны. Вы можете использовать приведенную ниже команду с двумя выражениями PowerShell, чтобы получить необходимую информацию:

Get-ADObject –Filter IsDeleted –eq $True –and –not (IsRecycled –eq $True) | Export-CSV C:TempDeletedObjectsAndNotRecycled.CSV –NoType

Параметр «-LDAPFilter» очень похож на параметр «-Filter», за исключением того, что вам потребуется использовать атрибут схемы Active Directory для получения необходимой информации. Например, при поиске всех сайтов Active Directory в Active Directory вам потребуется использовать атрибут схемы «ObjectClass». Приведенная ниже команда PowerShell выводит список всех объектов Active Directory, для которых ObjectClass имеет значение «Site».

Get-ADObject –LDAPFilter “(ObjectClass=Site)” –SearchBase “CN=Configuration,DC=TechGenix,DC=Com” | Export-CSV C:TempAllADSites.CSV –NoType

Приведенная выше команда извлекает все сайты Active Directory со всеми свойствами, связанными с каждым Active Directory, и сохраняет информацию в файле C:TempAllADSites.CSV. Если вы хотите вернуть список организационных единиц, созданных в Active Directory, вам нужно будет указать «ObjectCategory» как «OrganizationalUnit», как это указано в команде PowerShell ниже:

Get-ADObject –LDAPFilter “(ObjectCategory=OrganizationalUnit)” –SearchBase “DC=TechGenix,DC=Com” | Export-CSV C:TempAllOUs.CSV –NoType

«-LDAPFilter» может быть довольно сложным и требует навыков работы со строками LDAP, прежде чем кто-то сможет получить необходимую информацию с помощью Get-ADObject. Например, приведенная ниже команда PowerShell перечисляет только объекты компьютеров, для которых основной группой является группа безопасности «Контроллеры домена».

Get-ADObject –LDAPFilter “(&ObjectCategory=Computer)(PrimaryGroupID=515)” –SearchBase “DC=TechGenix,DC=Com” | Export-CSV C:TempAllCompsWithPrimaryID515.CSV –NoType

Точно так же, если вам нужно получить только глобальные группы из Active Directory, вы будете использовать эту команду:

Get-ADObject –LDAPFilter “(GroupType:1.2.840.113556.1.4.803:=2)” –SearchBase “DC=TechGenix,DC=Com” | Export-CSV C:TempAllGlobalGroups.CSV –NoType

Каждый объект Active Directory связан с ObjectClass и ObjectCategory. Как только вы узнаете ObjectClass или ObjectCategory для объекта, будет намного проще получить необходимую информацию, используя «-LDAPFilter» командлета Get-ADObject PowerShell. Точно так же Active Directory поддерживает системные атрибуты для каждого объекта, которые определяют состояние объекта. Например, для удаленного объекта свойство «IsDeleted» всегда будет иметь значение «$ True».

Возьмите его на спину

Хотя командлет Get-ADObject PowerShell не предоставляет никаких конкретных параметров для поиска определенной информации, он предоставляет параметры «-Filter» и «-LDAPFilter», которые позволяют получать любую информацию из Active Directory. Посмотрите, работает ли это для вас.