Windows 11 Enterprise LTSC 转为 IoT Enterprise LTSC

Windows 11 Enterprise LTSC 转换为 IoT Enterprise LTSC

本文基于 Windows 11 Enterprise LTSC 2024(版本 24H2,build 26100)编写。

示例参数根据实际场景调整。

1. 概述

微软官方未提供 Windows 11 IoT Enterprise LTSC 中文版独立镜像。该版本可通过修改 Windows 11 Enterprise LTSC 官方镜像实现版本转换。

许可说明:微软将 IoT Enterprise LTSC 限定用于固定功能专用设备,不得替代桌面版用于通用计算;标准 Enterprise LTSC 授权不能用于激活或合法化 IoT Enterprise LTSC 安装,两者分属不同产品家族,许可条款不同。操作前需确保授权。

2. 版本差异

特性 Windows 11 Enterprise LTSC Windows 11 IoT Enterprise LTSC
硬件要求 强制 Windows 11 硬件要求(TPM 2.0、安全启动、UEFI、4GB 内存) 不强制上述要求,可安装于不支持 TPM 2.0 与安全启动的硬件
支持周期 5 年(服务至 2029) 10 年(服务至 2034 年 10 月)
激活方式 仅 KMS / MAK 批量激活,不支持数字许可证 支持 KMS / MAK 批量激活;支持数字许可证(HWID)永久激活
设备加密 启用 禁用
保留存储 启用(约预留 7GB) 禁用
RDP 多会话 不支持 支持 2 个并发 RDP 会话
可移除包 不具备相同的可移除包制造特性 支持 36 个可移除包
Microsoft Edge 预装为默认浏览器 预装为默认浏览器
Microsoft Store 默认不含 默认不含;均可通过 wsreset -i 恢复

可移除包差异

对比项 不具备该特性 (Enterprise LTSC) 支持 36 个可移除包 (IoT Enterprise LTSC)
移除深度 仅能常规"禁用"组件 支持底层组件存储区的"物理彻底擦除"
磁盘占用 禁用后文件依然存在,占用系统空间 彻底擦除,显著减少系统体积
安全性 存在禁用组件的潜在安全风险 彻底删除,零风险,攻击面降至最低
适用场景 通用办公、普通企业环境 ATM、医疗仪器、工控机、数字标牌等固定用途设备

3. 前置准备

3.1 所需工具

  • Windows 11 Enterprise LTSC 官方 ISO 镜像
  • DISM 命令行工具(Windows 内置,需以管理员身份运行)
  • PowerShell(Windows 内置)
  • ISO 编辑工具(UltraISO 或 PowerISO,用于重新封装镜像)
  • (可选)wimlib-imagex:第三方 WIM 命令行工具(下载地址 https://wimlib.net/),用于修改 WIM 元数据(见附录 A.9)

3.2 官方镜像

文件名:zh-cn_windows_11_enterprise_ltsc_2024_x64_dvd_cff9cd2d.iso |

文件名为微软简体中文企业版 LTSC 2024 官方镜像。完整性校验须以实际下载来源公布的校验值为准:从微软批量许可服务中心(VLSC)下载时以该页面列出的官方哈希比对,从其他来源获取时向来源方索取其官方校验值,确认一致后再使用。

4. 转换流程(自动化脚本方式)

4.1 准备工作目录

将 ISO 镜像全部内容解压至工作目录(如 x:\1),并创建用于脚本参数传入的挂载目录(如 D:\Mount):

复制代码
mkdir x:\1

先确认目标索引:

复制代码
dism /get-wiminfo /wimfile:x:\1\sources\install.wim

确认承载 EnterpriseS 的索引号(简体中文 Enterprise LTSC 2024 镜像通常为索引 1)。

注意:脚本中的挂载目录(MountDir)已改为参数化配置,不再硬编码为固定路径。用户可通过命令行参数指定任意可用目录,也可不传参使用默认临时目录。

4.2 转换脚本(支持 ESD 检测,全参数化)

将以下 PowerShell 脚本保存为 convert_to_iot_ltsc.ps1,置于 ISO 解压后的 sources 目录下,以管理员身份运行。脚本自动检测镜像格式(ESD/WIM):若 install.esd 存在且可导出,则先执行 ESD→WIM 转换;随后完成挂载、版本转换、密钥注入、卸载提交及 EI.CFG 修改。

本例为 .wim 格式,非 .esd 格式。

所有关键路径与配置项均通过命令行参数传入,未传参时使用内置默认值,无需修改脚本即可适配不同环境。

参数说明
参数 类型 默认值 说明
WimFile string install.wim WIM 镜像文件名或路径
EsdFile string install.esd ESD 镜像文件名或路径
WimIndex int 1 镜像索引号
TargetEdition string IoTEnterpriseS 目标版本标识
ProductKey string CGK42-GYN6Y-VD22B-BX98W-J8JXD IoT Enterprise LTSC 产品密钥
MountDir string %TEMP%\LTSC-IoT-Mount 镜像挂载目录
完整脚本
powershell 复制代码
# ============================================================
# Windows 11 Enterprise LTSC -> IoT Enterprise LTSC 全自动转换脚本
# 要求:以管理员身份运行,脚本所在目录下需存在 install.wim 或 install.esd 以及 EI.CFG
# ============================================================
#Requires -RunAsAdministrator

# -- 参数区 --
param(
    [string]$WimFile,
    [string]$EsdFile,
    [int]$WimIndex = 1,
    [string]$TargetEdition = "IoTEnterpriseS",
    [string]$ProductKey    = "CGK42-GYN6Y-VD22B-BX98W-J8JXD",
    [string]$MountDir
)

# -- 默认值 --
if (-not $WimFile) { $WimFile = "install.wim" }
if (-not $EsdFile) { $EsdFile = "install.esd" }
if (-not $MountDir) { $MountDir = Join-Path $env:TEMP "LTSC-IoT-Mount" }

# -- 辅助函数 --
function Write-Step {
    param([string]$Msg)
    Write-Host "`n[步骤] $Msg" -ForegroundColor Cyan
}

function Write-Err {
    param([string]$Msg)
    Write-Host "[错误] $Msg" -ForegroundColor Red
    pause
    exit 1
}

function Test-Admin {
    $id = [Security.Principal.WindowsIdentity]::GetCurrent()
    $p  = New-Object Security.Principal.WindowsPrincipal($id)
    if (-not $p.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
        Write-Err "请以管理员身份运行本脚本。"
    }
}

# 1. 前置检查
Test-Admin

if (Test-Path $EsdFile) {
    Write-Step "检测到 install.esd,正在转换为 install.wim..."

    if (Test-Path $WimFile) {
        Remove-Item $WimFile -Force -ErrorAction SilentlyContinue
    }

    dism /Export-Image `
        /SourceImageFile:$EsdFile `
        /SourceIndex:$WimIndex `
        /DestinationImageFile:$WimFile `
        /Compress:max `
        /CheckIntegrity

    if ($LASTEXITCODE -ne 0) {
        Write-Err "ESD 转 WIM 失败。零售镜像的 install.esd 通常加密,DISM 无法直接导出,需先使用社区解密工具处理后重试。"
    }

    Write-Host "[完成] install.wim 已生成。" -ForegroundColor Green

} elseif (-not (Test-Path $WimFile)) {
    Write-Err "未找到 install.wim 或 install.esd,请将脚本放在 sources 目录下。"
}

# 2. 创建挂载目录
Write-Step "清理并创建挂载目录 $MountDir"

if (Test-Path $MountDir) {
    dism /unmount-image /mountdir:$MountDir /discard 2>$null
    Remove-Item $MountDir -Recurse -Force -ErrorAction SilentlyContinue
}

New-Item -ItemType Directory -Force -Path $MountDir | Out-Null

# 3. 挂载镜像
Write-Step "挂载镜像(索引 $WimIndex)"
dism /mount-image /imagefile:$WimFile /index:$WimIndex /mountdir:$MountDir

if ($LASTEXITCODE -ne 0) {
    Write-Err "挂载失败。"
}

# 4. 查询并显示当前版本
Write-Step "查询当前版本"
dism /image:$MountDir /get-currentedition

# 5. 版本转换 + 注入密钥
Write-Step "转换版本为 $TargetEdition 并注入密钥"
dism /image:$MountDir /set-edition:$TargetEdition /productkey:$ProductKey

if ($LASTEXITCODE -ne 0) {
    dism /unmount-image /mountdir:$MountDir /discard 2>$null
    Write-Err "版本转换失败,更改已放弃。"
}

# 6. 验证转换结果
Write-Step "验证转换后版本"
dism /image:$MountDir /get-currentedition

# 7. 卸载并提交
Write-Step "卸载镜像并提交更改"
dism /unmount-image /mountdir:$MountDir /commit

if ($LASTEXITCODE -ne 0) {
    Write-Err "卸载提交失败。"
}

# 8. 修改 EI.CFG(EditionID、Channel、VL 三节)
Write-Step "修改 EI.CFG"

$eicfg = "[EditionID]`r`n$TargetEdition`r`n[Channel]`r`nVolume`r`n[VL]`r`n1"

if (Test-Path "EI.CFG") {
    Set-Content -Path "EI.CFG" -Value $eicfg -Encoding ASCII
    Write-Host "[完成] EI.CFG 已更新。" -ForegroundColor Green
} else {
    Write-Host "[提示] 未找到 EI.CFG,请确认 sources 目录下存在该文件。" -ForegroundColor Yellow
}

# 9. 完成
Write-Host "`n========================================" -ForegroundColor Green
Write-Host " 转换完成。" -ForegroundColor Green
Write-Host " 使用 UltraISO 或 PowerISO 将修改后的 install.wim 和 EI.CFG 导入原 ISO。" -ForegroundColor Green
Write-Host "========================================`n" -ForegroundColor Green

pause
调用示例
powershell 复制代码
# 使用默认参数,挂载到 %TEMP%\LTSC-IoT-Mount
.\convert_to_iot_ltsc.ps1

# 指定挂载目录
.\convert_to_iot_ltsc.ps1 -MountDir "D:\Mount"

# 指定 ESD 源文件和挂载目录
.\convert_to_iot_ltsc.ps1 -EsdFile "D:\ISO\sources\install.esd" -MountDir "D:\Mount"

# 指定 WIM 文件、索引号和目标版本
.\convert_to_iot_ltsc.ps1 -WimFile "install.wim" -WimIndex 1 -TargetEdition "IoTEnterpriseS"
脚本说明
项目 说明
ESD 自动检测 脚本启动时优先检查 install.esd;若存在且可导出,则调用 DISM 导出为 WIM。零售镜像的加密 ESD 无法直接导出,需先解密
全参数化设计 所有关键路径与配置项(WimFile、EsdFile、WimIndex、TargetEdition、ProductKey、MountDir)均通过命令行参数传入,未传参时使用内置默认值,无需修改脚本即可适配不同环境
EI.CFG 内容 写入 EditionID(IoTEnterpriseS)、Channel(Volume)、VL(1)三节;使用 ASCII 编码,确保安装程序正确识别
错误处理 挂载/转换/卸载任一步骤失败自动中止;版本转换失败自动执行 /discard 放弃更改
残留清理 挂载前自动 /discard 并删除残留挂载目录
元数据修改 本脚本不含元数据修改步骤。WIM 为二进制容器,不能以整文件 XML 解析方式修改(见附录 A.9)
挂载目录灵活性 MountDir 默认使用 %TEMP%\LTSC-IoT-Mount,也可通过参数指定任意本地固定磁盘路径;不支持 U 盘、网络盘或只读盘

4.3 无法自动化的步骤

以下操作无法通过脚本自动完成,需手动执行:

  1. ISO 重新封装:ISO 文件结构操作涉及引导扇区与文件系统元数据,需使用 UltraISO 或 PowerISO 图形界面完成文件替换。
  2. 虚拟机验证:封装后的 ISO 需在虚拟机中进行引导与安装流程测试,确认版本选择正确。

4.4(可选)WIM 元数据修改

WIM 文件头部含一段 XML 描述段(NAME、DESCRIPTION、DISPLAYNAME、DISPLAYDESCRIPTION、FLAGS 等),其后为二进制数据。整文件并非合法 XML,xml$xml = Get-Content install.wim 的写法无法解析该文件,执行必然失败,本指南不采用该方法。

元数据修改仅影响安装界面显示名称与 dism /get-wiminfo 的查询结果,不影响版本转换结果,可整体跳过。如需修改,使用 wimlib-imagex(第三方工具,见 3.1)改写头部描述段:

复制代码
wimlib-imagex info install.wim 1 --set-name "Windows 11 IoT Enterprise LTSC 2024" --set-description "Windows 11 IoT Enterprise LTSC 2024" --set-displayname "Windows 11 IoT 企业版 LTSC" --set-displaydescription "Windows 11 IoT 企业版 LTSC" --set-flags IoTEnterpriseS

5. 省略部分步骤的影响分析

5.1 省略元数据修改

元数据修改不影响版本转换,仅影响安装界面显示名称和 WIM 信息查询结果。具体分两种情况:

情况 安装后实际版本 安装界面显示 说明
仅省略元数据修改,已修改 EI.CFG IoT Enterprise LTSC 仍显示 Windows 11 Enterprise LTSC 版本标识正确,仅标签不一致
元数据和 EI.CFG 均未修改 取决于安装程序选择的索引 显示 Windows 11 Enterprise LTSC 安装程序可能按 EnterpriseS 安装,导致最终系统不是预期的 IoT 版本

至少应修改 EI.CFG 以锁定目标索引;如需显示名称一致,应同步修改元数据。

5.2 省略产品密钥注入

省略密钥注入不影响版本转换结果,系统仍为 IoT Enterprise LTSC。安装后无法通过数字许可证自动激活,需另行配置 KMS 服务器或输入 MAK 密钥完成激活。

5.3 省略 EI.CFG 修改

  • 手动安装场景:安装程序可能提示选择版本,需手动选择 IoT Enterprise LTSC 对应的索引。
  • 自动化部署场景:无交互选择机会,将按默认索引安装,可能导致版本错误。

应始终修改 EI.CFG,使安装程序正确选择目标版本。

6. 重新封装 ISO 镜像

脚本执行完毕后,需使用 ISO 编辑工具将修改后的 install.wim 和 EI.CFG 替换回原 ISO 中。UltraISO 与 PowerISO 均可完成此操作,两者在文件替换封装场景下流程等价。

6.1 UltraISO 与 PowerISO 对比

维度 UltraISO PowerISO
直接编辑 ISO 支持,双窗口拖拽 支持,目录树操作
引导结构保留 自动保留 自动保留,可勾选「保持原始 ISO 结构」
UDF 支持 支持(v9.76+ 单文件 >200GB) 支持 UDF 1.02--2.60
命令行接口 无 有(poweriso.exe 命令行工具)
Windows 11 24H2 兼容性 虚拟光驱存在已知兼容性问题 官方已修复 SCSI 版本
  • 仅做文件替换封装:两者均可,操作难度相当。
  • 需脚本化/命令行集成:PowerISO 适用,其 poweriso.exe 支持命令行调用。
  • Windows 11 24H2 环境:PowerISO 的虚拟光驱兼容性优于 UltraISO。

6.2 图形界面操作步骤(UltraISO / PowerISO 通用)

  1. 打开原版 ISO 文件。
  2. 进入 /sources/ 目录,删除原有的 install.wim 和 EI.CFG。
  3. 将修改后的 install.wim 和 EI.CFG 拖入该目录(或右键「添加文件」)。
  4. 选择 文件 → 另存为,保存为新 ISO 文件。
  5. 若提示 UDF 格式,选择「是」以保留大文件支持。
  6. PowerISO 保存时可勾选「保持原始 ISO 结构」以保留引导信息。

6.3 PowerISO 命令行封装(可选)

如需自动化封装,PowerISO 命令行可实现:

复制代码
poweriso.exe create "new.iso" -bootimage "BIOS;etfsboot.com" -bootimage "EFI;efisys.bin" -add "/sources/install.wim=install.wim" -add "/sources/EI.CFG=EI.CFG" -srcfile "original.iso" -o "new.iso"

PowerISO 命令行不支持直接替换单个文件,需通过 -srcfile 引用原 ISO 再叠加修改文件,或先提取全部文件后重新打包。图形界面替换方式更为直接。

7. 可选:恢复 Microsoft Store

安装完成后,若需使用 Microsoft Store,以管理员身份运行:

复制代码
wsreset -i

该命令将从服务器下载并安装 Microsoft Store 及相关组件。

8. 验证与激活

8.1 验证版本

安装完成后,执行以下命令确认版本:

复制代码
Dism /online /get-currentedition

预期输出为 IoTEnterpriseS。

8.2 激活状态检查

复制代码
slmgr /dlv
slmgr /xpr

或在图形界面中查看:设置 → 系统 → 激活。

8.3 产品密钥参考

版本 密钥 类型
Windows 11 Enterprise LTSC 2024 M7XTQ-FN8P6-TTKYV-9D4CC-J462D KMS 客户端密钥(GVLK)
Windows 11 Enterprise N LTSC 2024 92NFX-8DJQP-P6BBQ-THF9C-7CG2H KMS 客户端密钥(GVLK)
Windows 11 IoT Enterprise LTSC 2024 KBN8V-HFGQ4-MGXVD-347P6-PDQGT KMS 客户端密钥(GVLK)
Windows 11 IoT Enterprise LTSC 2024 CGK42-GYN6Y-VD22B-BX98W-J8JXD 用于 DISM /set-edition 离线转换的设置密钥

GVLK 密钥仅用于将系统配置为 KMS 客户端,须配合有效的 KMS 服务器才能完成激活;零售版许可证不能使用 GVLK。MAK 密钥需从微软批量许可服务中心(VLSC)或 Microsoft 365 管理中心获取。

9. 注意事项

  1. 授权合规:本操作仅适用于已获合法授权的场景;IoT Enterprise LTSC 仅面向固定功能专用设备,且标准 Enterprise LTSC 授权不能激活或合法化 IoT 安装,请遵守微软软件许可条款。
  2. 备份原始文件:操作前备份原始 ISO 和 install.wim / install.esd 文件。
  3. 驱动兼容性:部署到老旧硬件时,提前验证驱动程序兼容性。
  4. 安全更新:安装完成后及时安装最新累积更新和安全补丁。
  5. 残留挂载清理:若挂载目录已存在残留挂载,脚本会自动清理;手动操作时可使用 dism /unmount-image /mountdir:<路径> /discard 清理。
  6. 版本转换方向:/set-edition 在离线镜像中执行可逆(重新挂载修改即可),在已安装系统上执行为单向操作。
  7. ESD 格式限制:官方 Enterprise LTSC(VLSC)镜像提供的是 install.wim;仅在处理消费者/零售镜像时才出现 install.esd,且零售 ESD 通常加密,DISM 无法直接导出,需先使用社区工具解密。
  8. ISO 封装:UltraISO 另存时若提示「文件过大」,需确认保存格式为 UDF 而非 ISO9660 Level 1。替换后在虚拟机中测试 ISO 的引导和安装流程,确认版本选择正确。
  9. 脚本参数化:脚本所有关键配置项均已参数化,不传参时行为与原始脚本一致;传参时可覆盖任意项,适合集成到自动化部署流程中。挂载目录默认使用 %TEMP% 下的临时目录,也可通过 -MountDir 参数指定任意本地固定磁盘路径。

附录 A:纯手工步骤(与自动化脚本的对照)

本节列出自动化脚本所执行的每一步操作对应的纯手工命令行实现。

适用于需要逐条执行、验证每一步结果,或在不便运行脚本的环境中使用。

A.1 准备工作目录

将 ISO 镜像全部内容解压至工作目录(如 x:\1),并创建挂载目录(如 x:\2 或 D:\Mount):

复制代码
mkdir x:\1
mkdir x:\2

提示:挂载目录可自定义为任意本地固定磁盘路径。后续命令中的 x:\2 需相应替换。

A.2 确认镜像索引号

确认承载目标版本的索引号(简体中文 Enterprise LTSC 2024 镜像通常为索引 1):

复制代码
dism /get-wiminfo /wimfile:x:\1\sources\install.wim

记录输出中 Edition ID 为 EnterpriseS 对应的索引号(Index)。

A.3 ESD 转 WIM(如适用)

如果 sources 目录下只有 install.esd 而没有 install.wim,需先执行此步将其转换为 WIM 格式。如果已存在 install.wim,可跳过此步。

复制代码
dism /Export-Image /SourceImageFile:x:\1\sources\install.esd /SourceIndex:1 /DestinationImageFile:x:\1\sources\install.wim /Compress:max /CheckIntegrity

执行成功后,sources 目录下将生成 install.wim 文件。

注意:零售版镜像的 install.esd 通常为加密格式,DISM 无法直接导出,需先使用社区工具解密后重试。

A.4 挂载镜像

将 WIM 镜像挂载到之前创建的目录:

复制代码
dism /mount-image /imagefile:x:\1\sources\install.wim /index:1 /mountdir:x:\2

如果索引号不是 1,请将 /index:1 替换为实际索引号。

A.5 查询当前版本

挂载后先确认当前镜像的版本标识:

复制代码
dism /image:x:\2 /get-currentedition

预期输出应包含 EnterpriseS(即 Windows 11 Enterprise LTSC)。

A.6 版本转换 + 注入密钥

将镜像版本从 Enterprise LTSC 转换为 IoT Enterprise LTSC,并注入产品密钥:

复制代码
dism /image:x:\2 /set-edition:IoTEnterpriseS /productkey:CGK42-GYN6Y-VD22B-BX98W-J8JXD

执行成功后输出「操作成功完成」。如果返回错误码,请检查:

  • 镜像路径和索引号是否正确
  • 源镜像是否为合法的 Enterprise LTSC 版本
  • 是否有足够的磁盘空间

A.7 验证转换结果

再次查询版本确认转换成功:

复制代码
dism /image:x:\2 /get-currentedition

预期输出应显示 IoTEnterpriseS。

A.8 卸载镜像并提交更改

将修改保存到 WIM 文件并卸载挂载点:

复制代码
dism /unmount-image /mountdir:x:\2 /commit

如果后续发现操作有误需要放弃更改(在执行 /commit 之前),可将 /commit 替换为 /discard:

复制代码
dism /unmount-image /mountdir:x:\2 /discard

注意:一旦提交后如需回退,需重新挂载原始未修改的 WIM 文件。

A.9(可选)WIM 元数据修改

WIM 文件头部含一段 XML 描述段(NAME、DESCRIPTION、DISPLAYNAME、DISPLAYDESCRIPTION、FLAGS 等),其后为二进制数据。整文件并非合法 XML,xml$xml = Get-Content install.wim 的写法无法解析该文件,执行必然失败,本指南不采用该方法。

元数据修改仅影响安装界面显示名称与 dism /get-wiminfo 的查询结果,不影响版本转换结果,可整体跳过。如需修改,使用 wimlib-imagex(第三方工具,见 3.1)改写头部描述段:

复制代码
wimlib-imagex info x:\1\sources\install.wim 1 --set-name "Windows 11 IoT Enterprise LTSC 2024" --set-description "Windows 11 IoT Enterprise LTSC 2024" --set-displayname "Windows 11 IoT 企业版 LTSC" --set-displaydescription "Windows 11 IoT 企业版 LTSC" --set-flags IoTEnterpriseS

A.10 修改 EI.CFG

编辑(或创建)sources\EI.CFG 文件,写入以下内容:

复制代码
[EditionID]
IoTEnterpriseS
[Channel]
Volume
[VL]
1

在 PowerShell 中可执行(注意路径需替换为实际工作目录):

复制代码
"[EditionID]`r`nIoTEnterpriseS`r`n[Channel]`r`nVolume`r`n[VL]`r`n1" | Set-Content -Path "x:\1\sources\EI.CFG" -Encoding ASCII

注意:必须使用 ASCII 编码保存,否则安装程序可能无法正确识别。


附录 A 步骤与脚本对照表

手工步骤 脚本对应位置 说明
A.1 准备工作目录 脚本开头(mkdir 由用户完成) 脚本不创建解压目录,由用户手动准备
A.2 确认镜像索引号 脚本开头(用户通过参数传入) 脚本通过 WimIndex 参数配置
A.3 ESD 转 WIM 脚本步骤 1(if Test-Path $EsdFile) 脚本自动检测并转换
A.4 挂载镜像 脚本步骤 2-3(创建目录 + mount) 脚本自动清理残留后挂载
A.5 查询当前版本 脚本步骤 4 脚本自动执行并输出
A.6 版本转换+注入密钥 脚本步骤 5 脚本自动执行,失败自动 discard
A.7 验证转换结果 脚本步骤 6 脚本自动执行并输出
A.8 卸载并提交 脚本步骤 7 脚本自动执行,失败自动报错
A.9 WIM 元数据修改 脚本不包含 脚本明确跳过,需手动使用 wimlib-imagex
A.10 修改 EI.CFG 脚本步骤 8 脚本自动写入 EditionID/Channel/VL 三节

附录 B:PowerISO 命令行封装路径检测(可选)

如果需要在脚本中自动调用 PowerISO 命令行进行 ISO 封装,需先检测 poweriso.exe 的安装路径。以下代码可实现路径无关调用。

powershell 复制代码
$PowerIsoExe = Get-Command poweriso.exe -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Source

if (-not $PowerIsoExe) {
    $Candidates = @(
        "$env:ProgramFiles\PowerISO\poweriso.exe",
        "${env:ProgramFiles(x86)}\PowerISO\poweriso.exe"
    )
    foreach ($p in $Candidates) {
        if (Test-Path $p) {
            $PowerIsoExe = $p
            break
        }
    }
}

if ($PowerIsoExe) {
    & $PowerIsoExe create "new.iso" -bootimage "BIOS;etfsboot.com" -bootimage "EFI;efisys.bin" -add "/sources/install.wim=install.wim" -add "/sources/EI.CFG=EI.CFG" -srcfile "original.iso" -o "new.iso"
} else {
    Write-Host "[提示] 未找到 poweriso.exe,请手动使用图形界面完成 ISO 重新封装。" -ForegroundColor Yellow
}

说明:

如果 poweriso.exe 所在目录已加入系统 PATH,则无需路径检测,可直接调用 poweriso.exe。

上述路径检测代码仅在需要脚本自动调用 PowerISO 时才需要集成。


Reference