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

Intune部署PowerShell脚本删除en-US语言包失效问题咨询

失效原因分析
  • 作用域不匹配,无报错是因为执行逻辑本身正常:你使用的Get-WinUserLanguageList、Set-WinUserLanguageList是用户级配置cmdlet,仅作用于当前执行脚本的账户:
    • 用System上下文执行时,修改的是本地System账户的语言配置,完全不会影响普通登录用户的语言列表
    • 即使用用户上下文执行,Intune的PowerShell脚本默认在非交互式后台会话运行,部分用户配置接口不会加载当前用户的活动配置
    • 脚本本身在对应上下文下执行无错误,因此IntuneManagementExtension.log不会记录报错
  • 仅修改用户列表未卸载系统级语言包:你的脚本只是从当前执行账户的可用语言列表里移除了en-US,并没有真正卸载系统层面预装的en-US语言包,系统会在后续更新、用户重新登录时自动把en-US加回用户语言列表
  • 缺少系统级配置修改操作:要完全移除en-US,还需要同步修改系统默认区域、欢迎界面语言、新用户默认语言等关联配置,单独修改用户语言列表会被系统默认配置覆盖
可用解决方案

1. 调整脚本内容,同时处理系统级+全用户配置

# 加载国际设置模块
Import-Module International -ErrorAction SilentlyContinue

# 卸载系统级en-US语言包
$systemLangs = Get-WindowsCapability -Online | Where-Object Name -like "Language*en-US*"
if ($systemLangs) {
    foreach ($lang in $systemLangs) {
        Remove-WindowsCapability -Name $lang.Name -Online | Out-Null
    }
}

# 修改系统默认区域、界面语言、输入语言为en-GB
Set-WinSystemLocale en-GB
Set-WinUILanguageOverride en-GB
Set-Culture en-GB
Set-WinHomeLocation 242 # 英国对应的地理位置代码

# 强制覆盖所有现有用户的语言列表
$userProfiles = Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" | Where-Object { $_.GetValue("ProfileImagePath") -like "*\Users\*" }
foreach ($profile in $userProfiles) {
    $sid = $profile.PSChildName
    # 加载用户注册表配置单元
    if (-not (Test-Path "HKU:\$sid")) {
        reg load "HKU\$sid" "$($profile.GetValue("ProfileImagePath"))\NTUSER.DAT" | Out-Null
        Start-Sleep -Milliseconds 500
    }
    # 写入用户语言列表配置
    $langPath = "HKU:\$sid\Control Panel\International\User Profile"
    if (Test-Path $langPath) {
        Set-ItemProperty -Path $langPath -Name "Languages" -Value @("en-GB") -Force
        # 删除残留的en-US配置
        if (Test-Path "$langPath\en-US") {
            Remove-Item "$langPath\en-US" -Recurse -Force
        }
    }
    # 卸载注册表配置单元
    [gc]::Collect()
    [gc]::WaitForPendingFinalizers()
    reg unload "HKU\$sid" | Out-Null
}

# 配置新用户、欢迎界面默认使用en-GB
Copy-UserInternationalSettingsToSystem -WelcomeScreen $true -NewUser $true

2. 调整Intune部署配置

  • 部署方式选择 Endpoint管理中心 > 脚本 > Windows PowerShell脚本
  • 执行参数按以下配置:
    • 运行此脚本使用的凭据:系统
    • 强制设备检查签名:否
    • 以64位PowerShell主机运行脚本:是(32位PowerShell调用系统级语言接口会出现兼容问题)
  • 部署后通知用户重启设备一次,系统级语言包卸载和配置修改需要重启生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 09:18:03