Powershell - фильтрация подразделений при использовании get-adcomputer

Я пытаюсь создать сценарий, который генерирует список компьютеров на основе определенных свойств, которые может иметь компьютер. Например, я пытаюсь составить список компьютеров с Windows XP и компьютеров с Windows 7, выбросить их имена в файл .csv и вывести окончательный счет каждого из них.

Вот мой код до сих пор

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"

Пример вывода:

104 Win 7
86 Win xp
190 Total

Этот сценарий работает, однако я хотел бы сделать его немного лучше, имея возможность сказать, какие OU'ы не нужно изучать, но я не могу понять это.

Если у кого-то есть понимание того, как это сделать, или даже просто улучшить вышеприведенный код, я хотел бы услышать это.

Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос