Windows 10 Surface Pro 5中PowerShell命令$monitor.CurrentHorizontalResolution无返回值
在Surface Pro 5 Windows 10中
$monitor.CurrentHorizontalResolution无输出无报错的原因及解决办法 我来帮你拆解这个问题——在Surface Pro 5的Windows 10环境里运行$monitor.CurrentHorizontalResolution既没结果也没报错,通常是下面这几种情况导致的,对应的解决办法也给你整理好了:
原因1:$monitor变量未正确获取显示器对象
你可能只是凭空定义了$monitor变量,但没有通过正确的PowerShell命令获取到系统的显示器实例。Win32_DesktopMonitor类需要你主动调用获取,否则变量里是空的或者无效对象,自然不会有输出也不会报错。
解决办法:
先执行正确的命令获取显示器对象,再访问分辨率属性:
# 用CIM命令(推荐,WMI的替代方案)获取显示器实例 $monitor = Get-CimInstance -ClassName Win32_DesktopMonitor # 查看所有显示器的横向分辨率 $monitor | Select-Object CurrentHorizontalResolution, DeviceID
如果你的Surface Pro 5只有一个屏幕,也可以直接取第一个实例:
$monitor = (Get-CimInstance -ClassName Win32_DesktopMonitor)[0] $monitor.CurrentHorizontalResolution
原因2:Win32_DesktopMonitor类对平板设备兼容性有限
Surface Pro 5本质是平板二合一设备,Win32_DesktopMonitor这个WMI类更适配传统台式显示器,对于平板的集成显示屏,可能无法正确读取分辨率这类属性,导致返回空值但不报错。
解决办法:
换用更适合移动/集成显示设备的WMI类来获取分辨率,比如Win32_VideoController:
# 获取视频控制器实例,读取当前分辨率 $videoController = Get-CimInstance -ClassName Win32_VideoController $videoController | Select-Object CurrentHorizontalResolution, CurrentVerticalResolution, Name
另外,你也可以通过读取系统显示设置的方式来获取,比如调用Windows API相关的PowerShell命令:
# 通过System.Windows.Forms获取屏幕分辨率(需要加载对应的程序集) Add-Type -AssemblyName System.Windows.Forms [System.Windows.Forms.Screen]::PrimaryScreen.Bounds.Width
原因3:PowerShell权限不足(少见但可能)
虽然这种情况通常会抛出权限错误,但极少数情况下,非管理员权限的PowerShell可能无法访问某些硬件相关的WMI属性,导致返回空值。
解决办法:
右键点击PowerShell,选择「以管理员身份运行」,然后重新执行获取显示器对象和读取分辨率的命令,看是否能正常返回结果。
内容的提问来源于stack exchange,提问作者user310291
相关产品推荐
相关产品推荐

