【发布时间】:2013-06-07 00:29:08
【问题描述】:
所以目前我有一些代码可以通过 Powershell 中的 ADSI 锁定到特定的 OU,循环遍历并将它们存储到一个数组中。反过来,我循环遍历并运行测试连接。我有我的理由……
无论如何,是否有可能(仅使用内置 cmdlet,即没有 Quest 的东西)递归整个 AD 并将所有计算机对象添加到数组中?
$myArrayOfComputers = @()
$orgUnit = [ADSI]"LDAP://OU=foo,DC=foo,dc=co,dc=uk"
ForEach($child in $orgUnit.psbase.Children) {
if ($child.ObjectCategory -like '*computer*') { $myArrayOfComputers += $child.Name }
}
ForEach($i in $myArrayOfComputers) {
Test-Connection $i
}
【问题讨论】:
-
您使用的是 PowerShell 2.0 还是 PowerShell 1.0 ?
-
我会推荐 Quest 的 AD cmdlet,它们最适合我。
标签: powershell active-directory adsi