Лучший отвечающий
PowerShell - Get AD OU structure

Вопрос
-
Добрый вечер!
Подскажите пожалуйста, как можно выгрузить из AD структуру организационных подразделений?
Цель - получить эдакую схемку всех OU, с вложенностью
22 сентября 2011 г. 17:40
Ответы
-
можно выгрузить в SQL
но придётся познакомиться с типом данных hierarchyid
для удобного перебора данных.
и linked server типа
EXEC master.dbo.sp_addlinkedserver @server = N'ADSI', @srvproduct=N'Active Directory Services 2.5', @provider=N'ADSDSOObject', @datasrc=N'adsdatasource'
а если попроще, то есть dsquery.exe ou
http://technet.microsoft.com/ru-ru/library/cc770509(WS.10).aspx
или Get-ADOrganizationalUnit в PowerShell
http://technet.microsoft.com/en-us/library/ee617236.aspx
- Изменено Alex 2 22 сентября 2011 г. 18:19
- Предложено в качестве ответа Dmitry DavydovModerator 25 сентября 2011 г. 14:02
- Помечено в качестве ответа KazunEditor 26 сентября 2011 г. 7:35
22 сентября 2011 г. 18:12 -
http://blogs.flaphead.dns2go.com/archive/2010/09/10/powershell-to-import-ous-from-a-csv.aspx
Скрипт одного из MVP по PowerShell - Richard Siddaway
Function DisplayOU { param($strLDAP) $item = [ADSI]"$strLDAP" $disp = $item.distinguishedName.ToString() $n = 0 for ($i=0; $i -le ($disp.length-1); $i++) { if ($disp[$i] -eq ","){$n++} } $strSpace = " " * $n "$strSpace $disp" $item.psbase.Children | where {$_.objectCategory -like "*Organizational-Unit*"} | foreach { $strLDAP = "LDAP://" + $_.distinguishedName.Tostring() DisplayOU $strLDAP } } $dom = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain() $root = $dom.GetDirectoryEntry() $strLDAP = "LDAP://" + $root.distinguishedName.ToString() "Report created " + (Get-Date).ToString() "OU structure" DisplayOU $strLDAP
- Изменено KazunEditor 22 сентября 2011 г. 19:29
- Предложено в качестве ответа Dmitry DavydovModerator 25 сентября 2011 г. 14:02
- Помечено в качестве ответа KazunEditor 26 сентября 2011 г. 7:35
22 сентября 2011 г. 19:19Отвечающий
Все ответы
-
можно выгрузить в SQL
но придётся познакомиться с типом данных hierarchyid
для удобного перебора данных.
и linked server типа
EXEC master.dbo.sp_addlinkedserver @server = N'ADSI', @srvproduct=N'Active Directory Services 2.5', @provider=N'ADSDSOObject', @datasrc=N'adsdatasource'
а если попроще, то есть dsquery.exe ou
http://technet.microsoft.com/ru-ru/library/cc770509(WS.10).aspx
или Get-ADOrganizationalUnit в PowerShell
http://technet.microsoft.com/en-us/library/ee617236.aspx
- Изменено Alex 2 22 сентября 2011 г. 18:19
- Предложено в качестве ответа Dmitry DavydovModerator 25 сентября 2011 г. 14:02
- Помечено в качестве ответа KazunEditor 26 сентября 2011 г. 7:35
22 сентября 2011 г. 18:12 -
http://blogs.flaphead.dns2go.com/archive/2010/09/10/powershell-to-import-ous-from-a-csv.aspx
Скрипт одного из MVP по PowerShell - Richard Siddaway
Function DisplayOU { param($strLDAP) $item = [ADSI]"$strLDAP" $disp = $item.distinguishedName.ToString() $n = 0 for ($i=0; $i -le ($disp.length-1); $i++) { if ($disp[$i] -eq ","){$n++} } $strSpace = " " * $n "$strSpace $disp" $item.psbase.Children | where {$_.objectCategory -like "*Organizational-Unit*"} | foreach { $strLDAP = "LDAP://" + $_.distinguishedName.Tostring() DisplayOU $strLDAP } } $dom = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain() $root = $dom.GetDirectoryEntry() $strLDAP = "LDAP://" + $root.distinguishedName.ToString() "Report created " + (Get-Date).ToString() "OU structure" DisplayOU $strLDAP
- Изменено KazunEditor 22 сентября 2011 г. 19:29
- Предложено в качестве ответа Dmitry DavydovModerator 25 сентября 2011 г. 14:02
- Помечено в качестве ответа KazunEditor 26 сентября 2011 г. 7:35
22 сентября 2011 г. 19:19Отвечающий -
Всем спасибо за ответы11 октября 2011 г. 16:23