使用ISO与PowerShell安装Windows语言包后显示语言无可用选项
问题根因
- 德语、西班牙语语言体验包仅处于
Staged(系统暂存)状态,未对当前登录用户完成注册安装;同时安装脚本未将已部署的语言写入系统用户语言列表,是「Windows显示语言」列表无新增条目的核心原因。 - 语音功能可正常识别四种语言,是因为通过DISM安装的Speech、TextToSpeech等cab格式语言功能包为系统级部署,不依赖用户态的语言体验包注册流程,因此不受影响。
- 法语、日语语言体验包显示为
Installed状态,是因为这两个包在部署过程中被系统自动触发了当前登录账号(TS6FC\admcortes)的注册流程,包本身安装完成,但同样未被加入系统可选显示语言列表。
修复操作
所有操作均需使用管理员权限执行:
- 打开PowerShell,执行命令为当前用户注册暂存的德语、西班牙语语言体验包:
Add-AppxPackage -RegisterByFamilyName -MainPackage Microsoft.LanguageExperiencePackde-DE_8wekyb3d8bbwe Add-AppxPackage -RegisterByFamilyName -MainPackage Microsoft.LanguageExperiencePackes-ES_8wekyb3d8bbwe
- 执行命令将四种已安装语言写入系统用户语言列表:
$targetLanguages = @("de-DE","es-ES","fr-FR","ja-JP") $currentLangList = Get-WinUserLanguageList foreach ($lang in $targetLanguages) { if ($currentLangList.LanguageTag -notcontains $lang) { $currentLangList.Add($lang) } } Set-WinUserLanguageList $currentLangList -Force
- 重启设备后,再次打开「Windows显示语言」列表即可看到四个新增的可选语言。
原脚本优化点
dism /online /Add-ProvisionedAppxPackage命令仅会将应用包写入系统暂存区,新用户首次登录时会自动完成安装,但不会为已存在的用户账号自动注册,因此脚本部署完语言体验包后,需要补充用户注册、更新系统语言列表的命令,避免出现包处于Staged状态、语言列表不显示的问题。- 四个语言的安装逻辑完全一致,可通过遍历语言代码数组的方式实现循环安装,减少脚本冗余,降低路径拼写错误概率。
- 建议在每个DISM命令后增加返回码判断,任意安装包部署失败时立即终止脚本,避免后续步骤执行完成后才发现基础语言包安装异常。
内容的提问来源于stack exchange,提问作者david
相关产品推荐
相关产品推荐

