You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过命令行查询Windows RDP的显示器位置并实现多显示器自动配置

如何通过命令行查询Windows RDP的显示器位置并实现多显示器自动配置

我完全懂你这种麻烦——每次外接显示器的HDMI线插得顺序不一样,Windows给的逻辑编号就乱了,导致RDP的多屏显示顺序搞反,还要手动打开mstsc.exe /l的图形界面看编号,再去改rdp文件,实在太折腾了。下面我给你一套纯命令行/脚本的解决方案,彻底搞定这个问题:

第一步:用PowerShell获取显示器的物理位置与对应RDP编号

Windows的WMI/CIM接口可以直接读取显示器的物理位置信息,我们可以用PowerShell把这些信息转换成RDP(mstsc.exe)使用的编号,而且自动按物理从左到右排序:

# 获取所有显示器的RDP编号、水平偏移(越小越靠左)、设备名称
Get-CimInstance Win32_DesktopMonitor | ForEach-Object {
    # 提取Win32_DesktopMonitor的索引,转换为RDP使用的1-based编号
    $monitorIndex = [int]$_.DeviceID -replace 'MonitorId=',''
    [PSCustomObject]@{
        RDP编号 = $monitorIndex + 1
        水平偏移位置 = $_.ScreenLeft
        显示器名称 = $_.Name
    }
} | Sort-Object 水平偏移位置

运行这个脚本后,你会看到按物理从左到右排列的显示器列表,对应的RDP编号就是你需要写在rdp文件selectedmonitors参数里的数字。

第二步:自动修改RDP配置文件

我们可以把上面的逻辑扩展成一个自动脚本,直接修改你的rdp文件,不用手动编辑:

# --------------------------
# 配置参数:修改成你的RDP文件路径和需要选中的显示器数量
$rdp文件路径 = "C:\Users\你的用户名\Documents\我的远程连接.rdp"
$需要选中的显示器数量 = 2  # 比如你要选物理左数前2个显示器
# --------------------------

# 获取物理从左到右排序的RDP编号
$sortedMonitors = Get-CimInstance Win32_DesktopMonitor | ForEach-Object {
    $monitorIndex = [int]$_.DeviceID -replace 'MonitorId=',''
    [PSCustomObject]@{
        RDP编号 = $monitorIndex + 1
        水平偏移位置 = $_.ScreenLeft
    }
} | Sort-Object 水平偏移位置 | Select-Object -ExpandProperty RDP编号

# 提取需要的显示器编号(比如取前N个)
$selectedMonitors = $sortedMonitors[0..($需要选中的显示器数量-1)] -join ','

# 读取并修改RDP文件内容
$rdp内容 = Get-Content $rdp文件路径 -Raw
if ($rdp内容 -match 'selectedmonitors:s:\d+(,\d+)*') {
    # 替换已存在的selectedmonitors行
    $rdp内容 = $rdp内容 -replace 'selectedmonitors:s:\d+(,\d+)*', "selectedmonitors:s:$selectedMonitors"
} else {
    # 如果没有这一行,就添加到文件末尾
    $rdp内容 += "`nselectedmonitors:s:$selectedMonitors"
}

# 保存修改后的RDP文件
$rdp内容 | Set-Content $rdp文件路径 -Encoding UTF8

Write-Host "✅ 已自动更新RDP文件的selectedmonitors参数为:$selectedMonitors"

实用调整技巧

  • 如果想排除笔记本自带屏幕,可以在Get-CimInstance后面加个过滤条件:Where-Object { $_.ScreenLeft -ne 0 }(一般笔记本屏幕的水平偏移是0,外接显示器会有正负偏移)
  • 如果需要选中特定位置的显示器(比如物理左数第2和第3个),可以把$sortedMonitors[0..($需要选中的显示器数量-1)]改成$sortedMonitors[1,2](注意索引从0开始)
  • 可以把这个脚本保存成.ps1文件,右键选择“用PowerShell运行”,或者做成桌面快捷方式,双击就自动更新配置。

备注:内容来源于stack exchange,提问作者Aaron Caba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 12:10:28