有没有办法通过 WMI 或 Powershell 询问每个域成员桌面的分辨率是多少?我需要知道,但无法访问每个域成员。为了加分,如何汇总结果并仅显示每个分辨率的一个唯一结果?也就是说,
- 答:1920x1080
- 屏幕分辨率:1920x1080
- 图像尺寸: 1200x800
它只会读
- 1920x1080
- 1200x800
答案1
实际上,你可以直接拉取它们的屏幕分辨率。对于我自己和虚拟机来说,wmic 路径 Win32_VideoController 获取 VideoModeDescription运行良好。(我运行的是 64 位,VM 是 32 位)
此解决方案和其他解决方案均可用这里。
编辑:误解了他们的民意调查的意思
另外:两种方法的结合,为用户提供他们的屏幕分辨率作为默认条目,但允许他们在提交之前选择更改它。
$screenres = wmic path Win32_VideoController get VideoModeDescription | findstr colors
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') | Out-Null
$computer = [Microsoft.VisualBasic.Interaction]::InputBox("Hello, please enter your screen resolution. Thanks.", "Screen Resolution", "$screenres")
它将保存为 $computer。如果您愿意,可以将其回显到中立网络共享上的日志中,或者无论您想以何种方式收集它。
如果某些方法不起作用,您需要替代解决方案,或者需要详细说明,请告诉我。感谢您的阅读!
答案2
看起来你需要这样的东西:
获取 AD 中所有 PC 的完整描述
Get-ADcomputer -Filer * | Get-WmiObject -Class Win32_VideoController
并且只有当前决议的列表
Get-ADcomputer -Filer * | (Get-WmiObject -Class Win32_VideoController).VideoModeDescription
更新 所以这会起作用
$computerlist = Get-ADComputer -Filter * | Select -Expand Name
Get-WmiObject -Class Win32_VideoController -ComputerName $Computerlist