Powershell - Filtragem OUs ao usar get-adcomputer

Eu estou tentando criar um script que gera uma lista de computadores com base em propriedades específicas que um computador pode ter. Por exemplo, estou tentando fazer uma lista de computadores Windows XP e Windows 7, lançar seus nomes em um arquivo .csv e exibir a contagem final de cada um.

Aqui esta o meu codigo ate agora

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"

Exemplo de saída:

104 Win 7
86 Win xp
190 Total

Este script funciona, no entanto, eu gostaria de torná-lo um pouco melhor, sendo capaz de dizer qual UO não é para olhar, mas eu não consigo descobrir isso.

Se alguém tiver algum insight sobre como fazer isso, ou mesmo apenas para melhorar o código acima, eu adoraria ouvi-lo.

Obrigado!

questionAnswers(2)

yourAnswerToTheQuestion