Основы управления Active Directory с использованием PowerShell
Модуль Active Directory для Windows PowerShell в Windows Server® 2008 R2 называется "Windows PowerShell module", который представляет собой группу командлетов. Эти командлеты можно использоваться для управления доменами Active Directory, настройки конфигурации сервисов Active Directory Lightweight Directory (AD LDS).
В Windows Server 2000, Windows Server 2003 и Windows Server 2008. Модуль Active Directory предоставляет централизированую процедуру администрирования AD.
Установка
Вы можете установить модуль Active Directory одним из этих методов:
- По-умолчанию, на Windows Server 2008 R2 при установке ролей AD DS или AD LDS
- По-умолчанию, когда вы делаете контролер домена утилитой Dcpromo.exe на Windows Server 2008 R2
- Как элемент Remote Server Administration Tools (RSAT) фичи на Windows Server 2008 R2
- Как элемент RSAT фичи на машине Windows 7
Также он автоматически устанавливается вместе с:
- Windows PowerShell
- The Microsoft .NET Framework 3.5.1, или новее версию
Для корректной работы модуля Active Directory рекомендуется поставить Windows PowerShell и версией .NET Framework не раньше 3.5.1.
Модуль Active Directory доступен в таких редакциях ОС:
- Windows Server 2008 R2 Standard
- Windows Server 2008 R2 Enterprise
- Windows Server 2008 R2 Datacenter
- Windows 7
Обратите внимание, что в этих версиях его нету:
- Windows Server 2008 R2 for Itanium-Based Systems
- Windows Web Server 2008 R2
Пример использования
PowerShell напрямую может взаимодействовать с Active Directory, читает как базу данных, извлекая оттуда информацию. Для примера покажу вам такой вот код PowerShell, в результате выполнения которого вам выедет на экран всех пользователе в домене и их суммарное количество:
$Dom = 'LDAP://DC=scribnertechmediacorp;DC=local'
$Root = New-Object DirectoryServices.DirectoryEntry $Dom
$i=0
# Create a selector and start searching from the Root of AD
$selector = New-Object DirectoryServices.DirectorySearcher
$selector.SearchRoot = $root
$selector.set_pagesize(1000)
$adobj= $selector.findall() |`
where {$_.properties.objectcategory -match "CN=Person"}
foreach ($person in $adobj){
$prop=$person.properties
$i++
Write-host "First name: $($prop.givenname) " `
"Last Name: $($prop.sn) Display Name: $($prop.cn)"
}
"Total AD Users Found: $i"
Для чтения конкретной части леса Active Directory, для примера контейнера пользователей, надо использовать новый LDAP путь, как значение переменной $Dom.:
Теперь приведу пример кода, который покажет как с PowerShell создать organizational unit EastCoast в домене:
$Dom = [ADSI]"LDAP://mercury:389/dc=scribnertechmediacorp;dc=local"
$newOU = $Dom.Create("organizationalUnit", "ou=EastCoast")
$newOU.SetInfo()
Теперь в этом OU создадим аккаунт для юзера Karen Smith:
$newOU = [ADSI]"LDAP://mercury:389/ou=eastcoast;dc=scribnertechmediacorp;dc=local"
$newUser = $newOU.Create("user", "cn=KSmith")
$newUser.Put("sAMAccountName", "KSmith")
$newUser.SetInfo()
Сторонние средства для PowerShell
Как видите, PowerShell предоставляет довольно гибкие стандартные возможности для администрирования Active Directory.
Есть такая компания Quest Software, которая известная редактором PowerGUI, и не только. Так вот, Quest Software выпустили бесплатный набор командлетов для еще более простой работы с Active Directory. Также к ним и есть документация.
Загрузить их можно тут отсюда - PowerShell Cmdlets for Active Directory.
Что бы их найти среди остальных команд, можно выполнить такой вот код:
To find them in PowerShell, type:
- get-command -pssnapin quest*
или:
- get-command *qad*
- Get-QADUser
- Set-QADUser
- New-QADUser
- New-QADGroup
- Add-QADGroupMember
- Remove-QADGroupMember
- Connect-QADService
- Disconnect-QADService
Еще есть компания Idera, которая предоставляет средства администрирования на основе PowerShell - http://www.idera.com/products/powershell/.
Ссылки:
- http://technet.microsoft.com/en-us/library/dd378937(WS.10).aspx
- http://technet.microsoft.com/en-us/library/ff730967.aspx
- http://www.computerworld.com/s/article/9066180/PowerShell_Tips_and_Tricks
- http://blogs.msdn.com/b/powershell/archive/2007/04/12/active-directory-cmdlets.aspx
- http://www.computerperformance.co.uk/powershell/powershell_active_directory.htm
- http://www.simple-talk.com/sysadmin/exchange/active-directory-management-with-powershell-in-windows-server-2008-r2/
- Очень много примеров скриптов - http://gallery.technet.microsoft.com/ScriptCenter/en-us/
- Очень хорошая книга - http://www.sapienpress.com/ad.asp. На этой странице даже можно выкачать архив скриптов к ней.
Компании из статьи
Microsoft Украина | Украинское подразделение компании Microsoft. |