如何修改或获取`az network bastion rdp`生成的RDP文件路径?
自动获取Azure Bastion生成的RDP文件路径并修改配置
方法1:捕获命令输出提取动态路径
az network bastion rdp运行时会输出包含RDP文件路径的日志,可在PowerShell中捕获输出并通过正则提取路径:
# 执行az命令并捕获所有输出(含错误流) $azOutput = az network bastion rdp --name <堡垒机名称> --resource-group <资源组名> --target-resource-id <VM资源ID> 2>&1 # 用正则匹配提取RDP文件路径 $rdpPath = [regex]::Match($azOutput, 'Launching RDP with file: (.*\.rdp)').Groups[1].Value if ($rdpPath) { # 插入你的RDP配置修改逻辑,比如调整多显示器设置 (Get-Content $rdpPath) -replace 'use multimon:i:0', 'use multimon:i:1' | Set-Content $rdpPath -Force } else { Write-Error "未成功提取RDP文件路径" }
注:2>&1用于捕获命令的错误流输出,因为部分版本的Azure CLI会将路径信息输出到错误流而非标准输出。
方法2:指定自定义路径生成RDP文件(推荐)
使用--no-launch参数让命令只生成RDP文件不自动启动连接,同时通过--rdp-file指定固定路径,彻底避开动态路径问题:
# 自定义本地RDP文件路径 $customRdpPath = ".\workstation-conn.rdp" # 生成指定路径的RDP文件 az network bastion rdp --name <堡垒机名称> --resource-group <资源组名> --target-resource-id <VM资源ID> --no-launch --rdp-file $customRdpPath # 修改多显示器配置 (Get-Content $customRdpPath) -replace 'use multimon:i:0', 'use multimon:i:1' | Set-Content $customRdpPath -Force # 手动启动RDP连接 mstsc.exe $customRdpPath
你可以根据居家/办公场景,在脚本中加入条件判断自动切换多显示器配置参数。
内容的提问来源于stack exchange,提问作者Bauza23
相关产品推荐
相关产品推荐

