0

そのため、現時点では、Powershell で ADSI を介して特定の OU にロックダウンし、ループして配列に格納できるコードがあります。次に、これをループして Test-Connection を実行します。私には理由があります...

とにかく、(組み込みのコマンドレットのみを使用して、つまり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
}
4

2 に答える 2

1

PowerShell V2.0 では、次のことを試すことができます。

Import-module ActiveDirectory
$computers = Get-ADComputer *

PowerShell V1.0では、次を試すことができます:

# dom.fr is the DNS root name of the domain
$dn = New-Object System.DirectoryServices.DirectoryEntry ("LDAP://dom.fr:389/dc=dom,dc=fr","administrator@dom.fr","admin")

# Look for computers
$Rech = new-object System.DirectoryServices.DirectorySearcher($dn)
$Rech.filter = "((objectClass=computer))"
$Rech.SearchScope = "subtree"
$Rech.PropertiesToLoad.Add("sAMAccountName");  
$Rech.PropertiesToLoad.Add("lastLogon");  
$Rech.PropertiesToLoad.Add("distinguishedname");

$computers = $Rech.findall()
于 2013-06-07T03:48:01.410 に答える