Почему «GC:» не будет работать на PowerShell - PullRequest
1 голос
/ 22 июня 2011

Я видел эту ссылку , в которой есть пример кода VB для привязки к серверу глобального каталога с помощью «GC:», а затем получить его дочерние элементы, которые будут давать корень GC для поиска в GC.

Set gc = GetObject("GC:")
For each child in gc
    Set entpr = child
WScript.Echo entpr.Name
Next

Я пытался, и это работает.

Однако, когда я пытался преобразовать это в powershell:

$gcRoot = New-Object DirectoryServices.DirectoryEntry("GC:")
$gcRoot.Children | foreach { 
                    $root = $_
                    Write-Host "GC root child: " + $root.Name
                 }

Это не работает вообще.$ gcRoot ничего не получает.Если я попытался повторить это на консоли, я получил это:

[DBG]: PS <dir>$gcRoot
The following exception occurred while retrieving member "PSComputerName": "Not implemented" At :line:0 char:0

Есть идеи?

Ответы [ 2 ]

1 голос
/ 23 июня 2011

Если вы хотите использовать ADSI, вы можете использовать это (Powershell V1.0):

# Access to the RootDSE
$dn1 = New-Object System.DirectoryServices.DirectoryEntry ("GC://192.168.183.138/RootDse","administrateur@societe.fr","test.2011")
$dn1

# Access 
$dn2 = New-Object System.DirectoryServices.DirectoryEntry ("GC://192.168.183.138/dc=societe,dc=fr","administrateur@societe.fr","test.2011")
foreach ($child in $dn2.Children)
{
  $child
}

Вы также можете установить AD Quest Cmdlets .

Если вы используете PowerShell V2.0 (на W2K8R2), вы можете использовать модуль Active-Directory, который предоставляет набор CmdLets и диск AD:

0 голосов
/ 23 июня 2011

Нашел пример здесь: http://www.powershellcommunity.org/Forums/tabid/54/aft/1323/Default.aspx, если это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...