Windows Server 2025 zh-CN Language Pack 离线包

本文档用于说明如何在 Windows Server 2025 英文系统 中离线安装完整简体中文语言包, 并将系统 UI、区域、输入法、时区、欢迎屏幕、新用户默认配置设置为中文。

适用场景: AWS EC2、云服务器、英文 Windows Server 2025 节点初始化中文环境。
目录
  1. 适用范围
  2. 离线包目录结构
  3. 核心语言包
  4. 解压要求
  5. 推荐 ZIP 打包方式
  6. 安装方法
  7. 安装脚本职责
  8. 推荐安装脚本内容
  9. 安装后验证
  10. 错误状态示例
  11. 常用检查命令
  12. 故障处理
  13. 推荐部署方式
  14. 版本记录
  15. 最终目标

1. 适用范围

项目 要求
系统版本 Windows Server 2025
系统架构 x64
系统版本号 10.0.26100 系列
目标语言 zh-CN / 简体中文 / 中国
推荐用途 英文 Windows Server 2025 转完整中文 UI
注意: 不要把本离线包用于 Windows Server 2022、Windows Server 2019、Windows 10、Windows 11 或其他不匹配版本。 语言包、FOD 包、系统版本不匹配,可能导致 DISM、CBS、Windows Update 后续异常。

2. 离线包目录结构

标准目录结构如下:

WinSrv2025-zhCN-LanguagePack
├── repo
│   ├── Microsoft-Windows-Server-Language-Pack_x64_zh-cn.cab
│   ├── Microsoft-Windows-*-zh-CN-*.cab
│   └── Microsoft-Windows-*-und-HANS-*.cab
├── Install-zhCN-Language.ps1
├── README.md
└── README.html
路径 说明
repo\ 存放 zh-CN / und-HANS 相关 CAB 文件
Install-zhCN-Language.ps1 离线安装中文语言包并配置全局中文
README.md Markdown 版本说明文档
README.html HTML 版本说明文档

3. 核心语言包

本包中最关键的文件是:

repo\Microsoft-Windows-Server-Language-Pack_x64_zh-cn.cab

这个文件是 Windows Server 2025 的完整简体中文 Language Pack。

没有这个文件,只安装 LXP 或 Language Features,会出现下面这种状态:

zh-CN    LXP

默认的系统用户界面语言 : en-US

安装的语言: zh-CN
  类型: 部分本地化的语言,MUI 类型。
  回退语言 en-US

这种情况下,系统会出现部分中文、部分英文的问题,例如:

文件 / 操作 / 查看 / 帮助 可能是中文
Windows Defender Firewall with Advanced Security 可能仍然是英文
services.msc / eventvwr.msc / wf.msc 等 MMC 管理工具可能仍然是英文

完整安装 Microsoft-Windows-Server-Language-Pack_x64_zh-cn.cab 后,目标状态应接近:

zh-CN    LpCab

默认的系统用户界面语言 : zh-CN

安装的语言: zh-CN
  类型: 完全本地化的语言。

4. 解压要求

本离线包不要求固定解压路径。

可以解压到任意目录,例如:

C:\ISO\WinSrv2025-zhCN-LanguagePack
D:\Tools\WinSrv2025-zhCN-LanguagePack
C:\Users\Administrator\Desktop\WinSrv2025-zhCN-LanguagePack

唯一要求是:解压后的顶层目录名保持为:

WinSrv2025-zhCN-LanguagePack

并且目录内部必须包含:

repo
Install-zhCN-Language.ps1
README.md
README.html

安装脚本通过 $PSScriptRoot 自动定位自身所在目录,因此不依赖 C:\ISOD:\Tools 或其他固定路径。

5. 推荐 ZIP 打包方式

打包 ZIP 时,建议把顶层目录一起打进去。

标准 ZIP 结构应为:

WinSrv2025-zhCN-LanguagePack.zip
└── WinSrv2025-zhCN-LanguagePack
    ├── repo
    ├── Install-zhCN-Language.ps1
    ├── README.md
    └── README.html

推荐打包命令:

$PackageDir = "C:\ISO\WinSrv2025-zhCN-LanguagePack"
$ZipPath    = "C:\ISO\WinSrv2025-zhCN-LanguagePack.zip"

if (Test-Path $ZipPath) {
    Remove-Item $ZipPath -Force
}

Compress-Archive `
    -Path $PackageDir `
    -DestinationPath $ZipPath `
    -Force

Get-Item $ZipPath | Select-Object FullName, Length
不要使用下面这种方式打包:
Compress-Archive -Path "C:\ISO\WinSrv2025-zhCN-LanguagePack\*" ...

这种方式会导致 ZIP 解压后没有顶层目录,容易破坏标准目录结构。

6. 安装方法

6.1 假设 ZIP 在当前目录

以管理员身份打开 PowerShell,进入 ZIP 所在目录,然后执行:

$PackageName = "WinSrv2025-zhCN-LanguagePack"
$ZipPath     = ".\$PackageName.zip"
$DeployRoot  = (Get-Location).Path
$PackageDir  = Join-Path $DeployRoot $PackageName

Expand-Archive `
    -Path $ZipPath `
    -DestinationPath $DeployRoot `
    -Force

Set-Location $PackageDir

Set-ExecutionPolicy Bypass -Scope Process -Force

.\Install-zhCN-Language.ps1

默认执行完成后会自动重启系统。

6.2 不自动重启

.\Install-zhCN-Language.ps1 -NoReboot

然后手动重启:

Restart-Computer -Force

6.3 ZIP 在指定路径

例如 ZIP 位于:

D:\Tools\WinSrv2025-zhCN-LanguagePack.zip

可以这样执行:

$PackageName = "WinSrv2025-zhCN-LanguagePack"
$ZipPath     = "D:\Tools\$PackageName.zip"
$DeployRoot  = Split-Path $ZipPath -Parent
$PackageDir  = Join-Path $DeployRoot $PackageName

Expand-Archive `
    -Path $ZipPath `
    -DestinationPath $DeployRoot `
    -Force

Set-Location $PackageDir

Set-ExecutionPolicy Bypass -Scope Process -Force

.\Install-zhCN-Language.ps1

7. Install-zhCN-Language.ps1 应该做什么

步骤 说明
安装完整语言包 通过 DISM 安装 Microsoft-Windows-Server-Language-Pack_x64_zh-cn.cab
安装语言能力包 安装 Basic、Handwriting、OCR、Speech、TextToSpeech、Hans Fonts
设置用户语言 设置当前用户语言列表为 zh-CN
设置 UI 语言 设置当前用户和系统首选 UI 语言为 zh-CN
设置区域 设置 Culture、System Locale、Home Location 为中国
设置时区 设置为 China Standard Time
设置 DISM 国际化 执行 dism /Online /Set-AllIntl:zh-CN
复制到系统账户 复制当前用户国际化配置到欢迎屏幕、系统账户、新用户默认配置
重启系统 默认自动重启,可通过 -NoReboot 跳过

8. 推荐安装脚本内容

Install-zhCN-Language.ps1 推荐使用下面的逻辑:

param(
    [switch]$NoReboot
)

$ErrorActionPreference = "Stop"

$Lang  = "zh-CN"
$GeoId = 45
$Repo  = Join-Path $PSScriptRoot "repo"

if (-not (Test-Path $Repo)) {
    throw "找不到 repo 目录: $Repo"
}

Write-Host "使用语言包源目录: $Repo" -ForegroundColor Cyan

$LpCab = Get-ChildItem $Repo -Filter "Microsoft-Windows-Server-Language-Pack_x64_zh-cn.cab" |
    Select-Object -First 1

if (-not $LpCab) {
    throw "找不到 Microsoft-Windows-Server-Language-Pack_x64_zh-cn.cab"
}

Write-Host "安装完整中文语言包: $($LpCab.FullName)" -ForegroundColor Cyan
dism /Online /Add-Package /PackagePath:"$($LpCab.FullName)"

$Caps = @(
    "Language.Basic~~~zh-CN~0.0.1.0",
    "Language.Handwriting~~~zh-CN~0.0.1.0",
    "Language.OCR~~~zh-CN~0.0.1.0",
    "Language.Speech~~~zh-CN~0.0.1.0",
    "Language.TextToSpeech~~~zh-CN~0.0.1.0",
    "Language.Fonts.Hans~~~und-HANS~0.0.1.0"
)

foreach ($Cap in $Caps) {
    $State = (Get-WindowsCapability -Online -Name $Cap).State

    if ($State -ne "Installed") {
        Write-Host "安装 Capability: $Cap" -ForegroundColor Yellow
        dism /Online /Add-Capability /CapabilityName:$Cap /Source:"$Repo" /LimitAccess
    } else {
        Write-Host "已安装: $Cap" -ForegroundColor Green
    }
}

$LanguageList = New-WinUserLanguageList -Language $Lang
Set-WinUserLanguageList -LanguageList $LanguageList -Force

Set-WinUILanguageOverride -Language $Lang
Set-Culture -CultureInfo $Lang
Set-WinSystemLocale -SystemLocale $Lang
Set-WinHomeLocation -GeoId $GeoId
Set-TimeZone -Id "China Standard Time"

if (Get-Command Set-SystemPreferredUILanguage -ErrorAction SilentlyContinue) {
    Set-SystemPreferredUILanguage -Language $Lang
}

dism /Online /Set-AllIntl:zh-CN
dism /Online /Set-TimeZone:"China Standard Time"

Copy-UserInternationalSettingsToSystem -WelcomeScreen $true -NewUser $true

Write-Host ""
Write-Host "安装和中文全局配置完成。" -ForegroundColor Green
Write-Host "当前语言状态:" -ForegroundColor Cyan

Get-InstalledLanguage
dism /online /Get-Intl

if (-not $NoReboot) {
    Write-Host "10 秒后自动重启..." -ForegroundColor Yellow
    Start-Sleep -Seconds 10
    Restart-Computer -Force
} else {
    Write-Host "已跳过自动重启,请手动重启系统。" -ForegroundColor Yellow
}

9. 安装后验证

重启后执行:

Get-InstalledLanguage
dism /online /Get-Intl

目标结果应类似:

Language Language Packs  Language Features
-------- --------------  -----------------
zh-CN    LpCab           BasicTyping, Handwriting, Speech, TextToSpeech, OCR

以及:

默认的系统用户界面语言 : zh-CN
系统区域设置 : zh-CN

安装的语言: zh-CN
  类型: 完全本地化的语言。

10. 错误状态示例

如果看到:

zh-CN    LXP

或者:

默认的系统用户界面语言 : en-US

安装的语言: zh-CN
  类型: 部分本地化的语言,MUI 类型。
  回退语言 en-US
说明完整中文 Language Pack CAB 没有安装成功。

这种情况下,不要继续反复执行 Set-WinUILanguageOverrideSet-CultureCopy-UserInternationalSettingsToSystem

需要先确认主语言包是否存在并安装成功:

Get-ChildItem .\repo -Filter "Microsoft-Windows-Server-Language-Pack_x64_zh-cn.cab"
dism /Online /Add-Package /PackagePath:".\repo\Microsoft-Windows-Server-Language-Pack_x64_zh-cn.cab"

11. 常用检查命令

11.1 查看已安装语言

Get-InstalledLanguage

11.2 查看系统国际化配置

dism /online /Get-Intl

11.3 查看语言能力包状态

Get-WindowsCapability -Online |
    Where-Object { $_.Name -match "zh-CN|HANS" } |
    Select-Object Name, State

11.4 查看当前用户语言设置

Get-WinUILanguageOverride
Get-WinUserLanguageList
Get-Culture
Get-WinSystemLocale

if (Get-Command Get-SystemPreferredUILanguage -ErrorAction SilentlyContinue) {
    Get-SystemPreferredUILanguage
}

11.5 查看中文相关 Package

Get-WindowsPackage -Online |
    Where-Object {
        $_.PackageName -match "zh-cn" -and
        $_.PackageName -match "Language"
    } |
    Select-Object PackageName, PackageState

12. 故障处理

12.1 仍然显示英文

先检查:

Get-InstalledLanguage
dism /online /Get-Intl

重点看是否为:

zh-CN    LpCab
默认的系统用户界面语言 : zh-CN

如果仍然是:

zh-CN    LXP
默认的系统用户界面语言 : en-US

说明完整语言包没有装成功。

12.2 DISM 报源文件找不到

检查目录结构:

Get-ChildItem .\repo

必须存在:

Microsoft-Windows-Server-Language-Pack_x64_zh-cn.cab

并且脚本应在 WinSrv2025-zhCN-LanguagePack 目录内执行:

Get-Location

12.3 Add-Capability 失败

确认 repo 目录里包含 zh-CN / und-HANS 相关 CAB:

Get-ChildItem .\repo -Filter "*.cab" |
    Where-Object {
        $_.Name -match "zh-cn|zh-CN|und-HANS"
    } |
    Select-Object Name, Length

12.4 组件安装卡住

查看 Windows 组件安装进程:

Get-Process TiWorker,TrustedInstaller -ErrorAction SilentlyContinue |
    Select-Object ProcessName,Id,CPU,StartTime

查看 DISM / CBS 日志:

Get-Content C:\Windows\Logs\DISM\dism.log -Tail 80
Get-Content C:\Windows\Logs\CBS\CBS.log -Tail 80

如果 TiWorker CPU 仍在增长,说明系统组件安装仍在执行,等待即可。

12.5 检查是否需要重启

$Paths = @(
    "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending",
    "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired"
)

foreach ($Path in $Paths) {
    if (Test-Path $Path) {
        Write-Host "需要重启: $Path" -ForegroundColor Yellow
    }
}

$PendingRename = Get-ItemProperty `
    "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" `
    -Name PendingFileRenameOperations `
    -ErrorAction SilentlyContinue

if ($PendingRename.PendingFileRenameOperations) {
    Write-Host "存在 PendingFileRenameOperations,需要重启。" -ForegroundColor Yellow
}

13. 推荐部署方式

建议将本离线包保存到内部文件服务器、对象存储或运维工具目录,例如:

\\fileserver\software\Windows\Server2025\LanguagePack\WinSrv2025-zhCN-LanguagePack.zip

或:

https://internal-download.example.com/Windows/Server2025/WinSrv2025-zhCN-LanguagePack.zip

以后新 Windows Server 2025 节点部署完成后,下载、解压、执行:

$PackageName = "WinSrv2025-zhCN-LanguagePack"
$ZipPath     = ".\$PackageName.zip"
$DeployRoot  = (Get-Location).Path
$PackageDir  = Join-Path $DeployRoot $PackageName

Expand-Archive -Path $ZipPath -DestinationPath $DeployRoot -Force

Set-Location $PackageDir

Set-ExecutionPolicy Bypass -Scope Process -Force

.\Install-zhCN-Language.ps1

14. 版本记录

版本 说明
v1.0 初始版本,支持 Windows Server 2025 x64 zh-CN 离线语言包安装与全局中文配置
v1.1 调整安装说明,不依赖固定路径,只要求解压后目录名为 WinSrv2025-zhCN-LanguagePack

15. 最终目标

执行完成并重启后,系统应满足:

当前用户 UI 语言:zh-CN
系统首选 UI 语言:zh-CN
系统区域设置:zh-CN
用户区域格式:zh-CN
非 Unicode 程序语言:zh-CN
国家或地区:中国
时区:China Standard Time
欢迎屏幕:中文
新用户默认配置:中文
传统 MMC 管理工具尽可能中文化

Generated for Windows Server 2025 zh-CN Language Pack offline deployment.