ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Win10 LTSC离线装回应用商店:依赖包与PowerShell实践

Win10 LTSC离线装回应用商店:依赖包与PowerShell实践 简介面向 Win10 LTSC 系统用户的独立应用商店离线安装包专为解决 LTSC 版本默认不带应用商店、无法安装 UWP 应用的问题。压缩包为 RAR 格式共 19 个文件涵盖 10 个 appx、4 个 appxbundle、4 个 xml 配置及 1 个 cmd 脚本其中 appx 与 appxbundle 是应用商店本体及依赖组件xml 存放清单信息cmd 脚本可实现一键自动部署总大小约 73.09 MB。包内集成了 .NET Native、VC 运行库、Xbox 身份提供程序等前置组件可帮助用户快速恢复商店功能附带脚本可一键部署商店并便于将商店固定到任务栏快捷使用。目前已有12648人学习下载适合因系统精简而缺少商店、又不便升级专业版的用户离线使用。需要注意的是离线包属于权宜之计若长期依赖商店建议更换专业版。1. 装了 Win10 LTSC 之后最别扭的就是没有应用商店Win10 长期服务版LTSC为了稳定和精简默认不带应用商店、计算器、照片、邮件这些 UWP 应用。系统倒是轻快了但时间一长你就会发现有些场景真的绕不开商店——比如你要装 Windows Terminal、HEVC 视频解码器、Xbox Game Bar或者某些依赖商店框架的老应用。还有一个更现实的问题很多软件在官网挂着通过 Microsoft Store 获取的按钮没有商店连安装入口都没有。网上教你跑一段 PowerShell 命令把商店装回来但那条命令经常失效报错信息也晦涩难懂。这篇文章要讲的办法更直接用独立安装包AppxBundle把应用商店还原到 LTSC 系统里不用联网跑命令行也不依赖微软服务器的在线配置。这个方案适合几类人用 LTSC 2021 或 2019 做主力办公系统、又被 UWP 应用依赖坑过的人在离线内网环境里装了大量 LTSC 机器的运维以及刚装完 win10 精简版、发现设置里的商店入口是坏掉的新手。我会先解释为什么 LTSC 去掉商店是有意为之再给你一套完整的离线安装流程和排错清单最后附上几个参调经验——照着做基本能一次性解决。2. 为什么 LTSC 没有应用商店从系统组件取舍说起2.1 LTSC 的定位决定了它默认不带 UWP 框架LTSC 的本质是功能锁定、以补丁维护为主的长期服务分支目标是给医疗设备、ATM、工控机这类不能随意变更功能的场景使用。微软在构建 LTSC 时默认去掉了大部分 UWP 应用和商店框架WindowsStore。这不是缺陷而是策略——去掉商店能减少后台进程和自动更新行为也能避免企业环境中出现用户随手装了一个商店应用导致兼容性问题的情况。但 UWP 框架本身又被很多组件依赖。比如 LTSC 2021 里的部分系统设置页面、截图工具、Windows 安全中心的某些界面底层都走的是 AppX 应用模型。如果你直接跑Get-AppxPackage -AllUsers会发现系统里依然存在少量内置包只是没有 Store 本体。这也解释了为什么单纯从网上下载一个Microsoft.WindowsStore安装包却装不上商店不是孤立应用它需要依赖一堆底层框架包VCLibs、Framework、WinUI这些依赖包必须同时存在。2.2 在线安装方案为什么常翻车网上最常见的做法是在 PowerShell 里执行wsreset -i或Add-AppxPackage -online这确实能触发商店的重新注册但前提是你的系统能正常连接微软的推送服务。实际安装中会遇到几个现象命令执行完没有任何报错但商店图标没有出现或者报0x80070005 拒绝访问还有的跑完wsreset -i提示找不到原包源。原因很简单——LTSC 的系统镜像里根本没有 Store 的源文件PowerShell 是去内建程序包仓库里找找不到就跳过自然不会报错。在线方式还有一个隐蔽问题它会强制你把系统自带的 VCLibs 和 Framework 包升级到最新版而这些新版本可能和你系统里已经存在的旧版框架冲突。一旦依赖包版本错位商店即使装上也会出现打不开、闪退、白屏。所以真正可靠的离线安装方案必须做到两点选对商店版本对应的系统版本把所有依赖包一起安装而不是只装一个商店包。2.3 独立安装包方案的核心思路所谓独立安装包通常指从微软官方镜像比如ms-windows-store相关的 UUP 更新包或在线商店备份包里提取出来的AppxBundle和Appx文件集合。核心思路是把商店与其依赖包整体剥离出来然后通过Add-AppxPackage逐个安装到目标系统。安装顺序有讲究先装依赖包再装商店本体先装 Framework再装 VCLibs最后注册商店包。判断一个安装包独立到什么程度看两点就够了文件是否包含微软商店主包Microsoft.WindowsStore目录下是否同时存在Microsoft.VCLibs和Microsoft.UI.Xaml这两个常用依赖。没有它们兜底商店就算装上了也大概率白屏或直接闪退。你下载回来的包可能是一个*.AppxBundle或者一整个解压后的文件夹安装脚本会遍历文件夹内的包文件按顺序装这就是离线安装的通用做法。3. 下载与准备拿到正确的商店包并识别版本3.1 商店包的来源与渠道选择获取商店独立安装包的常见渠道有三个微软 UUP 发布的更新包、第三方商店备份站、以及从另一个已装好商店的 Win10 系统下手动复制。我建议优先使用前两种因为手动复制容易出现依赖包缺失新手很难判断文件是否完整。UUP 渠道获取到的商店包通常直接对应某个系统累积更新版本。比如 LTSC 2021 的系统构建版本是 19044.x你在 UUP 里按同样的版本号抓取商店更新包得到的包才和系统底层匹配。第三方备份站则会把一整套依赖连同商店一起打包上传核对文件类型时你会看到扩展名包含.appx、.appxbundle、.msixbundle其中.appxbundle是商店包主体其余是框架或依赖包。下载时先确认系统版本Win10 1909 及之前的版本商店包要找旧版版本号小于 1200 的 WindowsStoreLTSC 2021 对应WindowsStore版本号大约在 1221 以上LTSC 2019 则配11803至11912范围内的版本。版本号对不上最典型的现象是安装时报0x80073D05包体系结构不匹配或版本过期遇到就直接换版本不用浪费时间排查别的。注意下载任何商店包时优先选防病毒报毒少的渠道。这条不是玄学——商店包是 Appx 格式部分杀软会将其识别为潜在不受欢迎应用下载源不干净容易出现包被篡改导致安装后无法启动。3.2 离线包的目录结构与依赖关系打开你下载回来并解压完成的安装包文件夹一般会看到类似下面的文件列表Microsoft.VCLibs.140.00_14.0.27810.0_x64__8wekyb3d8bbwe.appx Microsoft.VCLibs.140.00_14.0.27810.0_x86__8wekyb3d8bbwe.appx Microsoft.UI.Xaml_2.6.1.0_x64__8wekyb3d8bbwe.appx Microsoft.WindowsStore_12211.1001.4.0_x64__8wekyb3d8bbwe.appxbundle Microsoft.WindowsStore_12211.1001.4.0_neutral__8wekyb3d8bbwe.appxbundle有几个容易忽略的细节安装的时候踩过一次就记住了。首先是 x64 和 x86 的 VCLibs 都要保留商店主包是 x64 时同样会调用 x86 的框架包只装一个会在打开应用时报 0x80073D13。其次是neutral包不能缺它承载的是语言资源和商店内部通用组件缺了它安装时会跳到 0x80073CF3。再有就是版本号的发布者哈希值后缀8wekyb3d8bbwe必须一致这串字符相当于包的签名标识不一致说明两个包来自不同渠道不要混用。3.3 准备系统环境和安装前的检查项在跑安装脚本之前先做三件事。第一确认系统版本是 LTSC 2021 或 2019因为商店包对不同 Win10 版本的模式匹配要求不同。右键开始菜单打开系统查看版本和系统类型。第二把运行策略设置为允许本地脚本否则 PowerShell 脚本执行到一半会被策略阻止。以管理员身份打开 PowerShell执行Set-ExecutionPolicy -ExecutionPolicy RemoteSigned。第三检查系统里是否有残留的商店目录可以在C:\Program Files\WindowsApps中看看是否存在Microsoft.WindowsStore相关文件夹如果存在残留但商店图标不出来需要在安装前删除旧目录的写保护属性不然新包覆盖会失败。如果你是在虚拟机里做验证直接对 LTSC 2021 的干净系统操作一遍即可。在线环境装的时候注意断网或关掉 Windows 更新防止新商店包在安装途中被系统自动替换成其他版本。4. 安装商店的完整操作命令、顺序与验证4.1 用 PowerShell 脚本一次装完依赖和商店包把下载好的安装包解压到一个纯英文路径例如C:\store然后以管理员身份打开 PowerShell 执行以下脚本。这个脚本会遍历目录下所有.appx和.appxbundle文件先安装框架包和依赖包最后注册商店主体。# 进入安装包根目录替换成你的实际路径 $storePath C:\store Set-Location $storePath # 添加 Appx 包时需要允许来自开发者包的信任先解除该目录的写保护可选 # 按依赖顺序安装先装 VCLibs 和 UIToolkit再装商店本体 Get-ChildItem -Path $storePath -Filter *.appx | Where-Object { $_.Name -like *VCLibs* -or $_.Name -like *UI.Xaml* -or $_.Name -like *Framework* } | ForEach-Object { Write-Host 正在安装依赖包: $($_.Name) Add-AppxPackage -Path $_.FullName } # 最后安装商店的 bundle 包 Get-ChildItem -Path $storePath -Filter *.appxbundle | Where-Object { $_.Name -like *WindowsStore* } | ForEach-Object { Write-Host 正在安装商店主包: $($_.Name) Add-AppxPackage -Path $_.FullName }脚本的核心逻辑是按文件名筛选依赖、先装依赖后装主体。Add-AppxPackage命令会把包注册进当前用户的应用程序模型不需要额外指定-Deployment参数因为商店框架本身属于用户级应用不是系统服务。跑完脚本后如果没有任何红色报错可以在开始菜单搜索Store或商店看是否出现图标。4.2 按依赖顺序手动安装的命令单包逐一安装有些安装包文件夹的依赖结构不规整脚本按文件名匹配不到框架包此时需要手动指定顺序执行。常见命令行如下# 安装 x64 的 VC 运行库依赖 Add-AppxPackage -Path C:\store\Microsoft.VCLibs.140.00_14.0.27810.0_x64__8wekyb3d8bbwe.appx # 安装 x86 的 VC 运行库依赖商店主包为 x64 时建议也安装 x86 版本 Add-AppxPackage -Path C:\store\Microsoft.VCLibs.140.00_14.0.27810.0_x86__8wekyb3d8bbwe.appx # 安装 UI.Xaml 框架部分商店版本需要 Add-AppxPackage -Path C:\store\Microsoft.UI.Xaml_2.6.1.0_x64__8wekyb3d8bbwe.appx # 安装商店主包bundle 文件包含多架构内容 Add-AppxPackage -Path C:\store\Microsoft.WindowsStore_12211.1001.4.0_x64__8wekyb3d8bbwe.appxbundle每个Add-AppxPackage执行完留意终端窗口的返回信息。正常情况不会打印任何字符只有出错时才会弹出红色或黄色的错误块。手动安装的优势是你能精确控制失败节点如果第一步 VCLibs 就报错后面串行执行就没有意义先排查报错再继续。如果安装 x86 包时提示已安装当前版本说明系统里已有旧版依赖可以直接跳过该包继续往后的步骤。4.3 安装后的三处验证点与状态查询命令安装完成后别急着点商店图标建议先执行以下的模块查询命令# 列出所有用户和系统安装的商店相关包确认状态 Get-AppxPackage -AllUsers | Where-Object { $_.Name -like *WindowsStore* } # 如果商店包状态不是 Ok尝试重新注册 Get-AppxPackage -AllUsers -Name Microsoft.WindowsStore | ForEach-Object { Add-AppxPackage -DisableDevelopmentMode -Register $_.InstallLocation\AppxManifest.xml } # 打开商店 Start-Process shell:AppsFolder\Microsoft.WindowsStore_8wekyb3d8bbwe!Microsoft.WindowsStore验证分三步走第一步看包状态字段是否为Ok状态显示NotInstalled则说明包已卸载或注册表信息损坏需要重新安装第二步点击开始菜单里的商店图标确认窗口能打开且首页正常加载第三步试着搜索并安装一个免费应用比如计算器或 Spotify确认商店框架内的许可校验和下载通道正常。如果搜索框能打开但无法下载应用问题多半出在 Windows 账户权限或系统时间偏差和商店包本身关系不大。4.4 安装完成后的依赖包固化技巧安装包成功后C:\Program Files\WindowsApps目录下会出现对应文件夹。为了防止日后系统更新把商店包标记为异常可以用以下命令把商店应用设为保留状态# 设置应用为保留状态防止被系统清理策略删除 RegistryKeySet -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock -Name AllowAllTrustedApps -Value 1 -Type DWord -Force $key HKCU:\Software\Microsoft\Windows\CurrentVersion\AppModel\Store if (-not (Test-Path $key)) { New-Item -Path $key -Force } Set-ItemProperty -Path $key -Name InstallStore -Value 1 -Type DWord这段操作本质上是告诉系统该应用已由用户显式安装。LTSC 在每个季度累积更新时偶尔会重置应用注册状态导致商店图标消失做一次这个标记能减少概率。但这个技巧不是官方支持的做法如果更新后商店仍消失最省事的办法是重新执行一遍 4.1 的安装脚本把预先保留下来的安装包目录存到非系统盘即可。5. 安装排错与避坑四个高频问题的现象、原因和修复5.1 安装时报 0x80073D05 或 0x80073CF3架构与语言包不匹配现象是执行Add-AppxPackage时终端弹出红色错误信息指向0x80073D05常见于商店包架构和系统不一致或者脚本把x86和x64的包顺序装反。另一个现象是装完商店主包后无法启动报0x80073CF3。原因是包的语言资源不匹配确切地说是你下载的商店包缺少neutral语言文件或者语言资源是en-US而系统是zh-CN。解决办法是先在 PowerShell 里查一下包的架构信息# 查看包安装时的详细错误信息 Get-AppxPackage -AllUsers | Format-List Name, Architecture, InstallLocation, Status # 手动指定包架构安装例如强制使用 x64 包 Add-AppxPackage -Path C:\store\Microsoft.WindowsStore_12211.1001.4.0_neutral__8wekyb3d8bbwe.appxbundle -IgnoreDependenciesIgnoreDependencies参数可以绕过依赖自动检查在依赖包版本比商店新的场景下能避免互相卡住。但注意——绕过依赖检查后如果系统里真的缺少框架商店会白屏需要回头检查 VCLibs 是否装好。另外一个隐蔽的坑是 Download 目录里同时存在多个语言版本PowerShell 的Where-Object筛选条件没写-like *zh-CN*、装错了语言资源照上面操作保证目录干净就能规避。5.2 商店图标出现但打不开近端依赖缺失或账户权限损坏商店图标出现点击后窗口一闪而过或一直空白加载。这类问题和商店包安装无关更多是账户级应用模型损坏。常见原因有两个刚装好的系统上还没登录过微软账户本地账户对AppModel的访问权限受限另外就是商店依赖的Windows Store Service服务被组策略禁用。检查方法如下# 查看 Store 服务是否处于运行状态 Get-Service -Name InstallService -ErrorAction SilentlyContinue Set-Service -Name InstallService -StartupType Manual Start-Service -Name InstallService如果服务正常但仍然打不开开事件查看器在应用程序里找到来源为AppModel-Runtime或Windows.Store的错误日志常见错误 ID 为68或70。这类问题一般会用新建本地账户的方式验证——新建一个用户并登录看商店能否打开。如果新账户正常说明原账户的应用模型注册表损坏删除HKCU\Software\Microsoft\Windows\CurrentVersion\AppModel\StateChange下的残留项并注销重登即可。5.3 商店能打开但下载应用一直转圈账户许可证与区域设置问题应用详情页能显示点击安装后进度条永远停在 0%有时还会报0x80070426或0x801901F7。这种现象多半和商店包本身无关牵扯到和商店通信的凭证令牌。LTSC 2021 默认在未登录微软账户时商店处于仅浏览模式下载行为会触发许可证校验。进入设置 账户 电子邮件和设备账户里登录微软账户即可解决大部分下载报错。如果你是在内网域环境可能还会碰到商店访问被代理策略拦截。Win10 LTSC 的商店走的是WinInet代理检查系统代理设置是否指向了 PAC 文件。这类场景有一个常见误区很多人会去修改Internet Options里的局域网设置但商店的下载流量不走 WinHTTP 代理需要确认netsh winhttp show proxy的输出和你预期的网络畅通路径一致。附带说一句系统时间偏差超过五分钟也会让商店下载权限校验失败这在虚拟机里特别常见立刻矫正就行。5.4 LTSC 系统更新后商店被移除重置注册表与恢复包备份LTSC 每次功能更新或每月累积更新后商店图标消失的案例不少。原因不是商店被物理删除而是更新过程重建了PackageOrigin属性把用户手装的应用标记为待清理。解决做法是让系统重新注册商店应用不需要重新安装整个依赖。执行如下命令# 重新注册商店应用并把 Launch 快捷方式放回开始菜单 Get-AppxPackage -AllUsers -Name Microsoft.WindowsStore | ForEach-Object { $manifestPath Join-Path $_.InstallLocation \AppxManifest.xml Add-AppxPackage -DisableDevelopmentMode -Register $manifestPath -ForceUpdateFromAnyVersion }这个命令在多数场景下能瞬间回血。为了保险起见建议把第一次安装成功时的商店包文件备份到非系统盘或内网共享目录。每次升级后如果图标消失、商店无法打开优先执行上面这行 Re-Register 命令不要急着重新下载新包。某个版本的更新会让商店从接受 UUP 的更新流程切换成接受主包重新注册的流程原因解释起来很深但经验是先重注册、不行再重装。6. 进阶用法把商店包做成局域网一键部署脚本6.1 使用 PowerShell 脚本对多台设备批量安装如果你手上有十几台 LTSC 设备一台台敲命令显然不现实。把下载好的依赖包、商店主包和一个install.ps1脚本放在同一个共享目录客户端以管理员身份执行以下脚本即可完成全部安装并输出日志# 一键安装脚本 install.ps1 param( [string]$SourcePath (Split-Path -Parent $MyInvocation.MyCommand.Path) ) $logFile $env:TEMP\store_install.log Start-Transcript -Path $logFile -Append # 安装全部依赖包排除商店主包 Get-ChildItem -Path $SourcePath -Recurse -Include *.appx | Where-Object { $_.Name -notlike *WindowsStore* } | Sort-Object Name | ForEach-Object { Add-AppxPackage -Path $_.FullName -ErrorAction Continue } # 安装商店主包 Get-ChildItem -Path $SourcePath -Recurse -Include *.appxbundle | Where-Object { $_.Name -like *WindowsStore* } | ForEach-Object { Add-AppxPackage -Path $_.FullName -ErrorAction Continue } # 汇总安装结果 Get-AppxPackage -AllUsers | Where-Object { $_.Name -like *WindowsStore* } | Select-Object Name, Status, Version Stop-Transcript客户端通过管理员权限运行powershell -ExecutionPolicy Bypass -File \\fileServer\store\install.ps1即可。脚本会先装依赖、再装商店并根据Get-AppxPackage的输出判断最终状态。日志文件路径写在install_script.log中方便出问题时事后检查。6.2 安装脚本的静默化处理与状态回显用 SCCM 或任务计划程序推送时不用一条条输出进度重点是返回码。修改脚本结尾使用exit返回 0 或 1然后在部署系统里读取退出代码即可把任务标记为成功/失败。返回值代号建议这样约定返回码含义对应处理动作0商店包注册成功状态为 Ok无需处理1找不到对应版本的包或依赖缺失检查共享路径和包版本2包已存在但注册损坏远程重跑 Re-Register 命令3安装过程中杀软拦截导致失败关闭杀软并重试这段脚本的价值不只是方便它能让整个批量安装过程可控。在新装机流程里你还可以把install.ps1接到无人值守安装的SetupComplete.cmd之后这样每台设备第一次开机时就会自动把商店装好。但在生产环境这样做之前务必在一台虚拟机上先验证重点看杀软或 EDR 的拦截日志。6.3 后续维护与更新建议不要追求商店的最新版本商店包本身在 LTSC 上不需要频繁更新。LTSC 的特性就是版本锁定你装上商店只是作为系统的一个模块不需要跟着商店版本走。微软商店的应用更新机制会自动更新商店内的 UWP 应用而商店本体保持你用安装包部署的版本即可。如果你是运维人员建议每次系统镜像重做时统一用同一份安装包不要把旧机器上最新版的商店提取出来给新机器用否则容易出现依赖包版本升不上去、商店打不开的尴尬。还有一个老手常踩的坑在 LTSC 上安装了商店之后又去下载各种商店清理工具来瘦身结果把商店的ExpandedResources删掉商店首页加载缺失。这个目录下的内容其实是 UWP 应用缓存和签名备份不是垃圾。我自己在正式环境里遇到过最耗时间的就是这种二次清理导致的故障排查了大半天才发现是清理工具主动删了扩展资源。所以我的习惯是商店装好就别动了让它安静待着系统更新时如果它出问题就用 5.4 的重注册命令救回来不要做多余操作。希望这套依赖安装的思路和排查清单能帮到你——至少下次给 LTSC 装商店不会再为了版本匹配白折腾一晚上。本文还有配套的精品资源点击获取
返回列表