Лучший отвечающий
Работа с группами AD из вне домена на powershell

Вопрос
-
Приветствую.
Столкнулся давеча с powershell, до этого как-то не приходилось. Есть много странных вопросов, буду благодарен за советы. (:
ПК находится вне домена, авторизуюсь на лету.
Get-ADGroup -Filter * -SearchBase "OU=TOPou,DC=dc,DC=corp,DC=ru" -SearchScope OneLevel -AuthType Negotiate -Credential "domain\user" -Server "dc.corp.ru" PS C:\Users\Andrey>
По моей логике такая конструкция должна показать группы, являющиеся непосредственными чайлдами для TOPou. Однако она возвращает ничего.
Однако следующая конструкция работает:
Get-ADGroup -Filter * -AuthType Negotiate -Credential "domain\user" -Server "dc.corp.ru"
По совету гугла попробовал Quest AD Cmdlets, так работает, данные есть:
$pass = ConvertTo-SecureString -String "password" -AsPlainText -Force Connect-QADService -Service "dc.corp.ru" -ConnectionAccount "domain\user" -ConnectionPassword $pass Get-QADGroup -SizeLimit 0 -DontUseDefaultIncludedProperties -IncludedProperties members, name -ShowProgress:$false
Однако попытка пойти дальше заканчивается ничем:
$pass = ConvertTo-SecureString -String "password" -AsPlainText -Force Connect-QADService -Service "dc.corp.ru" -ConnectionAccount "domain\user" -ConnectionPassword $pass Get-QADGroup -SizeLimit 0 -SearchRoot 'OU=TOPou,DC=dc,DC=corp,DC=ru' -SearchScope OneLevel PS C:\Users\Andrey> D:\Documents\Dropbox\Dev\PowerShell\ADGroupWorks.ps1 DefaultNamingContext Type -------------------- ---- DC=dc,DC=corp,DC=ru ActiveDirectory PS C:\Users\Andrey>
И еще вопрос: я пользуюсь PowerShell ISE в Windows 8. Можно как-то сделать так, чтобы при каждом первом обращении к Quest AD Cmdlets не приходилось делать Add-PSSnapin Quest.ActiveRoles.ADManagement? Добавить его перманентно через Import-Module или еще как - нельзя?
15 марта 2013 г. 8:24
Ответы
-
Вообще ничего не выводится.
Так нечего выводить, группы расположены уровнем ниже OU=Макро-регион Дальний Восток и OU=Макро-регион Сибирь , а не в OU=MTSUsers. Если параметр -SearchScope не указан, то значение по умолчанию стоит Subtree.
Основной запрос (типа "Base") выполняет поиск только по текущему пути или в текущем объекте. Одноуровневый запрос (типа "OneLevel") выполняет поиск в непосредственных дочерних элементах этого пути или объекта. Запрос по поддереву(типа "Subtree") выполняет поиск по текущему пути или в текущем объекте и во всех дочерних элементах этого пути или объекта.
- Помечено в качестве ответа somepad 15 марта 2013 г. 9:32
15 марта 2013 г. 9:29Отвечающий
Все ответы
-
1)
One-level. A one-level search is restricted to the immediate children of a base object, but excludes the base object itself. This setting can perform a targeted search for immediate child objects of a parent object. For example, consider a parent object P1 and its immediate children: C1, C2, and C3. A one-level search evaluates C1, C2, and C3 against the search criteria, but does not evaluate P1. Use a one-level search to enumerate all children of an object. An IADsContainer enumeration translates to a one-level search.
Поэтому, вероятней всего групп в OU=TOPou нет,а вот ниже могут быть. Для начала попробовать убрать -SearchScope OneLevel .
2)
Создайте профиль для ISE по пути - $Home\[My ]Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1 и добавьте туда Add-PSSnapin Quest.ActiveRoles.ADManagement
15 марта 2013 г. 8:36Отвечающий -
1. Но они там есть. Я вижу их через ADExplorer.
2. Спасибо.
15 марта 2013 г. 8:43 -
1. Но они там есть. Я вижу их через ADExplorer.
2. Спасибо.
1. Да бы не быть голословным, приложите результат вывода с сервера:
- Get-ADGroup -Filter * -SearchBase "OU=TOPou,DC=dc,DC=corp,DC=ru"
- Скрин ADExplorer
15 марта 2013 г. 8:56Отвечающий -
Порядок сортировки эксплорера и ps разный.
Начало вывода ps такое:
PS C:\Users\Andrey> Get-ADGroup -Filter * -SearchBase "OU=MTSUsers,DC=dc,DC=corp,DC=ru" -AuthType Negotiate -Credential "domain\user" -Server "dc.corp.ru" DistinguishedName : CN=G Макро-регион Дальний Восток,OU=Макро-регион Дальний Восток,OU=MTSUsers,DC=dc,DC=corp,DC=ru GroupCategory : Security GroupScope : Global Name : G Макро-регион Дальний Восток ObjectClass : group ObjectGUID : b57fc6a9-0962-4719-a3d1-f6d64ae40cb8 SamAccountName : G Макро-регион Дальний Восток SID : S-1-5-21-685724207-866877060-2473498247-39837 DistinguishedName : CN=G Макро-регион Сибирь,OU=Макро-регион Сибирь,OU=MTSUsers,DC=dc,DC=corp,DC=ru GroupCategory : Security GroupScope : Global Name : G Макро-регион Сибирь ObjectClass : group ObjectGUID : fe489fa3-4be2-4c85-867d-9cd0784ce9ad SamAccountName : G Макро-регион Сибирь SID : S-1-5-21-685724207-866877060-2473498247-39838
Картинку форум приаттачить не дает, т.к. учетная запись не проверена.
15 марта 2013 г. 9:16 -
А если добавить параметр -SearchScope OneLevel, то эти группы не выводятся? Тогда все правильно, т.к. групп в OU=MTSUsers нет,они находятся уровнями ниже OU=Макро-регион Дальний Восток,OU=MTSUsers и OU=Макро-регион Сибирь,OU=MTSUsers. Параметр -SearchScope OneLevel ищет только в OU=MTSUsers.
- Изменено KazunEditor 15 марта 2013 г. 9:25
15 марта 2013 г. 9:22Отвечающий -
-
Вообще ничего не выводится.
Так нечего выводить, группы расположены уровнем ниже OU=Макро-регион Дальний Восток и OU=Макро-регион Сибирь , а не в OU=MTSUsers. Если параметр -SearchScope не указан, то значение по умолчанию стоит Subtree.
Основной запрос (типа "Base") выполняет поиск только по текущему пути или в текущем объекте. Одноуровневый запрос (типа "OneLevel") выполняет поиск в непосредственных дочерних элементах этого пути или объекта. Запрос по поддереву(типа "Subtree") выполняет поиск по текущему пути или в текущем объекте и во всех дочерних элементах этого пути или объекта.
- Помечено в качестве ответа somepad 15 марта 2013 г. 9:32
15 марта 2013 г. 9:29Отвечающий -
Да, я как раз только что заметил этот момент. Спасибо.
Вопросов больше нет.
15 марта 2013 г. 9:32