コンピューターが持つ可能性のある特定のプロパティに基づいてコンピューターのリストを生成するスクリプトを作成しようとしています。たとえば、WindowsXPコンピューターとWindows7コンピューターのリストを作成し、それらの名前を.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を調べないかを指定できるようにすることで、少し改善したいと思いますが、完全には理解できません。
誰かがこれを行う方法について何か洞察を持っているなら、あるいは単に上記のコードをもっと良くするためにさえ、私はそれを聞いてみたいです。
ありがとうございました!