You know sometimes you just need to know what resolution all your computers are running.
get-adcomputer -Filter {operatingsystem -like "Windows 7*"} -Properties operatingsystem | ForEach-Object {
$temp = "" | select computername, ScreenHeight, ScreenWidth, pcon $temp.pcon = Test-Connection $_.name -Count 1 -Quiet $temp.computername = $_.name if($temp.pcon){ $resolution = Get-WmiObject -ComputerName $_.name -Class Win32_DesktopMonitor $temp.ScreenHeight = $resolution.ScreenHeight $temp.ScreenWidth = $resolution.ScreenWidth } $temp $temp | export-csv C:\temp\monitoraudit.csv -Append } |
Check out the filter on the first line, that can be anything. We just needed Windows 7 machines.
It's a pretty easy foreach-object;
- sets up a temp object in my favorite manner,
- pings the machine to make sure it's up,
- pulls the info we need from WMI
- then bangs it out to the console and a CSV.
Hitting up each machine with a WMI query gets us fast results but it's not exactly complete. You could rejig this so that it ran as part of a login script or schedule it to run daily.
Why do we need this info? Well that's for next time when we'll do something useful with this data set we've created.
Why do we need this info? Well that's for next time when we'll do something useful with this data set we've created.