none
Работа с группами AD из вне домена на powershell RRS feed

  • Вопрос

  • Приветствую.

    Столкнулся давеча с 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
    Отвечающий
  • Вообще ничего не выводится.
    • Изменено somepad 15 марта 2013 г. 9:24
    15 марта 2013 г. 9:24
  • Вообще ничего не выводится.

    Так нечего выводить, группы расположены уровнем ниже OU=Макро-регион Дальний Восток и OU=Макро-регион Сибирь , а не в OU=MTSUsers. Если параметр -SearchScope не указан, то значение по умолчанию стоит Subtree.

    Основной запрос (типа "Base") выполняет поиск только по текущему пути или в текущем объекте. Одноуровневый запрос (типа "OneLevel") выполняет поиск в непосредственных дочерних элементах этого пути или объекта. Запрос по поддереву(типа "Subtree") выполняет поиск по текущему пути или в текущем объекте и во всех дочерних элементах этого пути или объекта.

    • Помечено в качестве ответа somepad 15 марта 2013 г. 9:32
    15 марта 2013 г. 9:29
    Отвечающий
  • Да, я как раз только что заметил этот момент. Спасибо.

    Вопросов больше нет.

    15 марта 2013 г. 9:32