我看到this link有一个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
有什么想法吗?
答案 0 :(得分:1)
如果您想使用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:
驱动器
答案 1 :(得分:0)
在这里找到一个例子: http://www.powershellcommunity.org/Forums/tabid/54/aft/1323/Default.aspx 如果它有帮助。