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

使用PowerShell批量修改RDP文件中的默认用户名

批量修改RDP文件中的用户名解决方案

我来帮你搞定这个RDP快捷方式批量修改的问题!你遇到的PowerShell脚本不生效,大概率是RDP文件的编码问题或者匹配字符串的格式不对导致的,下面给你一步步的解决办法:

问题根源分析

RDP快捷方式文件默认采用UTF-16 LE(Unicode)编码,如果用PowerShell默认的编码读取/写入,会导致内容乱码,替换操作自然无法生效;另外,RDP文件里的用户名是以username:s:完整用户名的格式存储的,要是只匹配邮箱部分,可能也会匹配不到。

正确的PowerShell脚本

直接用下面的脚本,它会处理编码问题并准确替换用户名:

# 目标RDP文件夹路径
$targetDir = "C:\RDP LINKS\"

# 递归遍历所有.rdp文件并批量修改
Get-ChildItem -Path $targetDir -Filter "*.rdp" -Recurse | ForEach-Object {
    # 以UTF-16编码读取RDP文件内容
    $rdpContent = Get-Content $_.FullName -Encoding Unicode
    
    # 精准替换用户名(匹配RDP文件里的键值格式)
    $updatedContent = $rdpContent -replace 'username:s:administrator@testdomain.local', 'username:s:administrator@test2domain.local'
    
    # 以UTF-16编码写回文件
    Set-Content $_.FullName -Value $updatedContent -Encoding Unicode
    
    # 输出修改提示
    Write-Host "已成功修改: $($_.FullName)"
}

关键细节说明

  1. 编码指定:脚本里用-Encoding Unicode来读取和写入,完全匹配RDP文件的默认编码,避免乱码导致替换失效。
  2. 精准匹配:严格按照RDP的键值格式username:s:旧用户名来匹配,确保只修改用户名项,不会误改其他内容。
  3. 递归遍历:-Recurse参数会处理目标目录下所有子文件夹里的RDP文件,不用你一个个文件夹去操作。

验证与排错

如果运行脚本后还是没生效,可以按下面步骤排查:

  • 检查原RDP文件的用户名格式:运行下面的命令查看某个RDP文件里的用户名项,确认格式是否和脚本里的匹配:
    Get-Content "C:\RDP LINKS\测试文件夹\示例.rdp" -Encoding Unicode | Select-String "username:"
    
  • 权限问题:确保PowerShell是以管理员身份运行的,或者你有修改这些RDP文件的权限。
  • 只读文件:如果有只读属性的RDP文件,可以在Set-Content后面加上-Force参数强制覆盖。

内容的提问来源于stack exchange,提问作者user3127554

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:29:28