QAD командлеты

При помощи PowerShell можно выполнять любые операции в Active Directory, но использование низкоуровневого ADSI, нельзя назвать удобным и понятным. QAD командлеты упрощают работу.
Quest AD PowerShell cmdlets (QAD cmdlets) разработаны Quest Software, скачать их можно со страницы http://www.quest.com/activeroles-server/arms.aspx. Командлеты вместо сложных конструкций реализуют простые команды , состоящие из пары «действие-объект».
Чтобы получить список всех QAD командлетов достаточно ввести:

PS> Get-QCommand

Для начала подключимся к контроллеру домена:

PS> $pw = read-host "Enter password" -AsSecureString
PS> Сonnect-QADService -service 'domain.ru' -proxy -ConnectionAccount 'domain\administrator' -ConnectionPassword $pw

Получим список пользователей и компьютеров:

PS> Get-QADUser
PS> Get-QADComputer

По сравнению с ADSI, команды выглядят очень просто, хотя дополнительных параметров в команде может быть много. При запросе будут отображены не все свойства объектов. По умолчанию — Name, Type и DN.

Свойства, которые необходимо получить в конкретном примере перечисляем после “–IncludedProperties”, все свойства объекта получить можно при помощи “–IncludeAllProperties”.
Чтобы узнать информацию по отдельному пользователю и параметру, подставляем его в вызов, Format-List требуется, чтобы вывести все полученные свойства:

PS> Get-QADUser -Name User -IncludeAllProperties | Format-List *

Список параметров объекта которые выводятся по умолчанию смотрим командой “Get-QADPSSnapinSettings -DefaultOutputPropertiesForUserObject ”. Для текущего сеанса их можно изменить:

PS> Set-QADPSSnapinSettings –DefaultOutputPropertiesForUserObject Name,LastLogon

Получаем значение любого одного из свойств:

PS> (Get-QADUSer -Name "User").AccountIsDisabled

Узнаем, отключена ли учетная запись пользователя.
Так же получаем информацию о группах, например об их членах:

PS> (Get-QADGroup "GroupName").members | Get-MemberName | 
Export-Csv "C:\GroupMembers.csv"

Хотя 1-ую строку в этом примере можно заменить командой «Get-QADGroupMember ‘domain\group‘».
Остальные запросы такие же простые. Для примера создадим новую доменную учетную запись.

PS> New-QADUser -name 'Ivanov' -ParentContainer 'OU=TestOU,DC=domain,DC=ru' -UserPassword 'Passw0rd'

Соответственно, чтобы отключить, включить или разблокировать используем — Disable-QADUser, Enable-QADUser и Unlock-QADUser. Командлеты начинающиеся на Set используются для установки и изменения параметров, их часто используют в скриптах.

PS> Get-QADUser -Department Sales | Set-QADUser -ObjectAttributes @{"Department"="Product";"Description"="Product"}

Отключим все учетные записи, пользователи которых не регистрировались в течение 2 месяцев.

PS> $date = (Get-Date).AddDay(-60)
PS> Get-QADUser -IncludedProperties LastLogon | where { $_.lastLogon -le $date } | where {-not $_.AccountIsDisabled} | Disable-QADUser

Также просто создавать и новые объекты:

PS> New-QADObject -type OrganizationUnit -ParentContainer domain -Name Product

Переместим в созданный контейнер ряд учетных записей:

PS> Get-QADUser -Department Product | Move-QADObject -To domain/Product

При установке редактора PowerGUI (powergui.org) будут запрошены QAD командлеты. Есть конечно в QAD минус. Они не являются частью ОС и не поддерживается Microsoft, для их работы необходимо обязательное присутствие соответствующего провайдера. Дополнительно можно отметить, что в Windows 2008R2 и Win7 появились ADPowershell командлеты имеющие аналогичный синтаксис — Get-ADDomain, Get-ADUser, New-ADObject и так далее (все команды — Get-Command -Module ActiveDirectory). В блоге (http://blogs.msdn.com/adpowershell) описана возможность использования ADPowershell в Windows 2003/2008. Но очевидно, что QAD командлеты более универсальны.

Теги: ,

Понравилась статья? Оставьте комментарий или подпишитесь на RSS рассылку.

Комментарии

Комментариев пока что нет

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

(required)

(required)