我正在尝试创建一个脚本,该脚本根据计算机可能具有的特定属性生成计算机列表。例如,我正在尝试列出 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 来使它变得更好,但我无法弄清楚。
如果有人对如何做到这一点有任何见解,或者只是为了使上面的代码更好,我很想听听。
谢谢!