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!