Powershell - filtrowanie jednostek organizacyjnych podczas korzystania z get-adcomputera

Próbuję utworzyć skrypt generujący listę komputerów na podstawie określonych właściwości, które może mieć komputer. Na przykład próbuję utworzyć listę komputerów z systemem Windows XP i komputerów z systemem Windows 7, wyrzucić ich nazwy w pliku .csv i wyprowadzić ostateczną liczbę każdego z nich.

Oto mój kod do tej pory

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"

Przykładowe wyjście:

104 Win 7
86 Win xp
190 Total

Ten skrypt działa, ale chciałbym zrobić to trochę lepiej, będąc w stanie powiedzieć, do której jednostki OU nie należy zaglądać, ale nie mogę tego zrozumieć.

Jeśli ktoś ma wgląd w to, jak to zrobić, a nawet po prostu uczynić powyższy kod lepszym, chciałbym to usłyszeć.

Dziękuję Ci!

questionAnswers(2)

yourAnswerToTheQuestion