PowerShell - Filtern von Organisationseinheiten bei Verwendung von get-adcomputer

Ich versuche, ein Skript zu erstellen, das eine Liste von Computern basierend auf bestimmten Eigenschaften generiert, die ein Computer möglicherweise hat. Zum Beispiel versuche ich, eine Liste von Windows XP- und Windows 7-Computern zu erstellen, deren Namen in eine CSV-Datei zu schreiben und die endgültige Anzahl der einzelnen Computer auszugeben.

Hier ist mein Code soweit

import-module ActiveDirectory
$computers = get-adcomputer -Filter 'ObjectClass -eq "Computer"' -properties "OperatingSystem"
$i = 0
$j = 0
Foreach ($computer in $computers) {
    if ($computer.operatingSystem -like "Windows 7*") {
        $i++
        '"{0}","{1}","{2}"' -f $computer.Name, $computer.OperatingSystem, "$computer.DistinguishedName" | Out-file -append C:\users\admin\desktop\test.txt
        }
    elseif ($computer.OperatingSystem -like "Windows XP*") {
        $j++
        '"{0}","{1}","{2}"' -f $computer.Name, $computer.OperatingSystem, "$computer.DistinguishedName" | Out-file -append C:\users\admin\desktop\test.txt
        }
    else {
        $_
        }

}
write-host "$i Win 7"
write-host "$j Win xp"
$k = $i+$j
write-host "$k Total"

Beispielausgabe:

104 Win 7
86 Win xp
190 Total

Dieses Skript funktioniert, aber ich möchte es ein bisschen besser machen, indem ich sagen kann, in welche Organisationseinheit ich nicht schauen soll, aber ich kann es nicht ganz herausfinden.

Wenn jemand einen Einblick hat, wie man das macht, oder nur um den obigen Code zu verbessern, würde ich ihn gerne hören.

Vielen Dank!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage