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

RDS环境中基于终端服务器主机为用户分配键盘语言的实现方案咨询

RDS环境中基于终端服务器主机为用户分配键盘语言的实现方案咨询

看起来你已经找对方向了——用GPO推送PowerShell脚本,基于终端服务器主机名来动态调整用户的键盘语言,这个思路完全适配你的场景(所有用户都能访问各集合,没法按用户定向GPO)。我帮你把脚本补全并梳理清楚细节:

核心实现思路

通过GPO给所有用户配置登录脚本,脚本运行时先获取当前终端服务器的主机名,判断是否属于需要分配西班牙语的服务器(比如*tsA*),再动态添加/移除用户的西班牙语键盘布局。

完整PowerShell脚本

# 获取当前终端服务器的主机名
$vmName = (Get-WmiObject -Class Win32_ComputerSystem).Name

# 目标语言代码(西班牙语-西班牙)
$lang = "es-ES"

# 获取当前用户的语言列表
$languageList = Get-WinUserLanguageList

# 判断是否是需要启用西班牙语的服务器
if ($vmName -like "*tsA*") {
    # 检查西班牙语是否已在用户语言列表中
    if (-not ($languageList | Where-Object { $_.LanguageTag -eq $lang })) {
        # 添加西班牙语到用户语言列表
        $newLang = New-WinUserLanguageList -Language $lang
        $languageList.Add($newLang[0])
        # 应用更新后的语言列表
        Set-WinUserLanguageList $languageList -Force
        Write-Host "已为当前用户添加西班牙语键盘布局"
    } else {
        Write-Host "西班牙语键盘布局已存在,无需操作"
    }
} else {
    # 非目标服务器,移除西班牙语(如果存在)
    $langToRemove = $languageList | Where-Object { $_.LanguageTag -eq $lang }
    if ($langToRemove) {
        $languageList.Remove($langToRemove)
        Set-WinUserLanguageList $languageList -Force
        Write-Host "已为当前用户移除西班牙语键盘布局"
    } else {
        Write-Host "未找到西班牙语键盘布局,无需操作"
    }
}

GPO配置步骤

  • 打开组策略管理控制台(GPMC),创建或编辑针对RDS用户的GPO
  • 导航到用户配置 > 策略 > Windows设置 > 脚本(登录/注销)
  • 双击“登录”,点击“添加”,选择PowerShell脚本,将上述脚本导入
  • 确保GPO作用域覆盖所有需要应用的RDS用户和终端服务器

注意事项

  1. 脚本权限:用户需要有修改自身语言设置的权限(默认普通用户就有这个权限,无需额外配置)
  2. 语言包:确保目标终端服务器上已安装西班牙语语言包,否则脚本无法添加对应的键盘布局
  3. 测试验证:先在测试环境中用普通用户登录tsA和其他服务器,检查键盘语言是否正确添加/移除
  4. 脚本执行时机:登录脚本会在用户每次登录时运行,确保语言设置始终和当前服务器匹配

备注:内容来源于stack exchange,提问作者Zhao Ses

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 12:14:35