尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Windows 10 LTSC 增加应用商店:PowerShell 部署与避坑指南

Windows 10 LTSC 增加应用商店:PowerShell 部署与避坑指南 简介这份资源面向使用 Windows 10 Enterprise LTSC 版本的用户尤其是遇到 wsappx 进程 CPU 占用过高、输入法缺少候选提示框等困扰的运维与桌面使用者。它通过补齐应用商店相关组件让精简版系统也能正常安装和使用 Microsoft Store从而缓解上述异常。压缩包共 16 个文件以 appx 与 appxbundle 安装包为主辅以 xml 清单、cmd 脚本和 md 说明整体约 68.16MB解压后以管理员身份运行 Add-Store.cmd 即可完成部署。资源还提示可通过 WSReset.exe 重置商店缓存便于处理安装后的残留问题。目前已有 2178 人学习下载适合希望在不重装系统的前提下恢复商店功能、排查 wsappx 高占用与输入法提示异常的用户参考脚本与组件清单完整便于按需部署和后续维护。1. Windows 10 Enterprise LTSC 增加应用商店一条被低估的补全路径装完 Windows 10 Enterprise LTSC 的人十有八九会先愣一下开始菜单里干干净净没有 Microsoft Store没有 Cortana没有那些花里胡哨的 UWP 预装件。这正是 LTSC 的卖点——长期服务通道只推安全补丁不塞功能更新系统干净得像刚擦过的玻璃。但问题也来了越来越多的工具、驱动面板、甚至某些硬件厂商的配套软件只发 Store 版本官网连 exe 都不给了。这时候你面对的不是「要不要装商店」而是「不装商店这个软件我就用不了」。LTSC 增加应用商店这件事本质上是给一个被官方刻意裁剪过的系统把 UWP 运行时的入口补回来。它不改变 LTSC 的更新通道不引入功能更新只是把 Store 这个壳和它依赖的框架装回去。适合谁适合那些既要 LTSC 的稳定和长周期又偶尔需要从 Store 拿一两个独占应用的人——比如 HEVC 视频扩展、Windows Terminal 预览版、某些品牌的音频控制面板。不适合谁如果你追求的是「绝对零改动」那这篇文章的操作你一条都别做。我自己的主力开发机就是 LTSC 2021三年下来只重装过一次中间为了一个只发 Store 的截图工具折腾过一轮。下面把这条路完整走一遍包括哪些包必须装、顺序错了会怎样、以及为什么有人装完商店打不开。2. 先搞清楚 LTSC 缺的到底是什么Store 不是单个 exe2.1 应用商店在 Windows 里是一组包不是一坨安装文件很多人以为 Microsoft Store 就是一个Store.exe把它拷进去就能跑。实际上在 Windows 10 的现代应用体系里Store 是一组 Appx 包的集合彼此有依赖关系。核心的几个是Microsoft.WindowsStore商店前台界面本身Microsoft.StorePurchaseApp购买和许可证校验Microsoft.DesktopAppInstaller负责安装 winget 和 App InstallerMicrosoft.VCLibs.140.00和Microsoft.VCLibs.140.00.UWPDesktopUWP 的 C 运行时Microsoft.NET.Native.Framework和Microsoft.NET.Native.RuntimeUWP 的 .NET 运行时Microsoft.UI.Xaml新版商店界面依赖的 XAML 框架这些包缺一个商店要么装不上要么装上了点开闪退。LTSC 之所以没有商店不是删了某个文件而是整个 Appx 包集合在镜像阶段就被移除了。所以「增加应用商店」的准确说法是把这组包按正确顺序重新部署回去。2.2 为什么不能直接下个 Store 安装包双击网上流传过一些「Store 独立安装包」下载下来是个.appx或.appxbundle双击后系统弹窗说「此应用无法在你的电脑上运行」或者「需要新应用打开此 ms-windows-store」。原因有两个一是缺少依赖框架二是 LTSC 默认没有注册 Appx 部署所需的许可证服务上下文。正确的做法是用 PowerShell 的Add-AppxPackage命令按依赖顺序逐个部署。顺序错了比如先装 Store 再装 VCLibsStore 会注册失败报0x80073CF3或0x80073D02。我踩过的坑是以为依赖会自动拉取结果卡在Microsoft.VCLibs上商店图标出来了但点开就消失。2.3 需要准备哪些包从哪来最稳妥的来源不是第三方网站而是微软官方的 Appx 包分发渠道。常见做法是从一台已经装好商店的同版本 Windows 10 机器上用Get-AppxPackage导出包路径再拷贝出来。或者用winget的离线包机制但 LTSC 默认没有 winget所以这条路先不走。我一般会准备一个文件夹放以下包版本号以你系统对应的 1809/21H2 为准不要跨版本混用包名作用是否必须Microsoft.VCLibs.140.00_14.0.30704.0_x64UWP C 运行时必须Microsoft.VCLibs.140.00.UWPDesktop_14.0.30704.0_x64桌面桥运行时必须Microsoft.NET.Native.Framework.2.2.NET Native 框架必须Microsoft.NET.Native.Runtime.2.2.NET Native 运行时必须Microsoft.UI.Xaml.2.8新版 XAML 控件必须Microsoft.WindowsStore商店前台必须Microsoft.StorePurchaseApp购买校验必须Microsoft.DesktopAppInstallerApp Installer / winget建议注意包版本必须和系统内部版本号匹配。LTSC 2021 是 19044LTSC 2019 是 17763。拿 19044 的包往 17763 上装大概率报0x80073CFD。3. 用 PowerShell 按依赖顺序部署每一步都能回滚3.1 开启旁加载和开发者模式LTSC 默认策略可能禁止旁加载 Appx 包。先确认注册表项# 查看当前旁加载策略1 表示允许0 表示禁止 Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock -Name AllowAllTrustedApps -ErrorAction SilentlyContinue如果返回空或者值为 0需要手动打开# 开启旁加载允许安装受信任的 Appx 包 New-Item -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock -Force | Out-Null Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock -Name AllowAllTrustedApps -Value 1 -Type DWord逻辑说明AllowAllTrustedApps控制是否允许安装未经过商店签名的 Appx 包。LTSC 出于安全默认关闭打开后系统才认Add-AppxPackage的部署请求。参数上-Force确保路径不存在时自动创建-Type DWord明确写入 32 位整数避免写成字符串导致策略不生效。3.2 按顺序部署依赖框架把准备好的包放在C:\StorePackages下然后按顺序执行# 定义包目录 $pkgPath C:\StorePackages # 第一步部署 VCLibs 运行时两个都要 Add-AppxPackage -Path $pkgPath\Microsoft.VCLibs.140.00_14.0.30704.0_x64__8wekyb3d8bbwe.Appx Add-AppxPackage -Path $pkgPath\Microsoft.VCLibs.140.00.UWPDesktop_14.0.30704.0_x64__8wekyb3d8bbwe.Appx # 第二步部署 .NET Native 框架和运行时 Add-AppxPackage -Path $pkgPath\Microsoft.NET.Native.Framework.2.2_2.2.29512.0_x64__8wekyb3d8bbwe.Appx Add-AppxPackage -Path $pkgPath\Microsoft.NET.Native.Runtime.2.2_2.2.28604.0_x64__8wekyb3d8bbwe.Appx # 第三步部署 UI.Xaml Add-AppxPackage -Path $pkgPath\Microsoft.UI.Xaml.2.8_8.2306.22001.0_x64__8wekyb3d8bbwe.Appx # 第四步部署商店和购买应用 Add-AppxPackage -Path $pkgPath\Microsoft.WindowsStore_22210.1401.2.0_neutral_~_8wekyb3d8bbwe.AppxBundle Add-AppxPackage -Path $pkgPath\Microsoft.StorePurchaseApp_22210.1401.1.0_neutral_~_8wekyb3d8bbwe.AppxBundle # 第五步部署 App Installer可选但强烈建议 Add-AppxPackage -Path $pkgPath\Microsoft.DesktopAppInstaller_2023.1101.10.0_neutral_~_8wekyb3d8bbwe.AppxBundle逻辑说明Add-AppxPackage是部署 Appx 包的核心命令它会校验包签名、解压到WindowsApps目录、注册到当前用户。依赖框架必须先于上层应用部署因为 Store 在注册时会检查Microsoft.VCLibs和Microsoft.UI.Xaml是否已存在。参数上-Path指向本地包文件如果是.AppxBundle格式系统会自动选择适合当前架构的子包。执行完每一步后可以用Get-AppxPackage确认是否注册成功# 检查商店是否已注册 Get-AppxPackage -Name Microsoft.WindowsStore # 检查所有依赖框架 Get-AppxPackage -Name Microsoft.VCLibs* | Select-Object Name, Version, Status如果Status显示Ok说明注册成功。如果显示Modified或Tampered说明包签名或版本有问题需要换包重试。3.3 部署后商店打不开的排查顺序装完包不等于商店能用。我遇到过三种典型情况第一种商店图标出现点击后窗口一闪而过。这通常是Microsoft.UI.Xaml版本不匹配或者Microsoft.NET.Native.Runtime没注册上。解决方法是重新部署这两个包然后重启AppXSVC服务# 重启 Appx 部署服务 Restart-Service -Name AppXSVC -Force第二种商店能打开但一直转圈提示「无法加载页面」。这多半是网络策略或代理设置导致 Store 的 CDN 请求被拦。LTSC 默认没有配置 Store 的网络白名单需要确认系统代理没有把*.microsoft.com和*.windowsupdate.com拦掉。第三种商店能打开但搜索不到任何应用或者提示「此应用在你的设备上不可用」。这是许可证服务上下文缺失需要重新注册StorePurchaseApp并确认系统区域和语言设置与商店区域一致。提示每次部署失败后不要反复执行同一条命令。先用Get-AppxLastError查看最近一次部署的错误码再针对性处理。4. 避坑LTSC 加商店最容易翻车的五个地方4.1 现象部署时报 0x80073CF3提示「包依赖项不满足」原因依赖框架的版本低于 Store 要求的最低版本。比如 Store 22210 要求Microsoft.VCLibs至少 14.0.30704.0你装的是 14.0.30035.0就会报这个错。解决用Get-AppxPackage -Name Microsoft.VCLibs*查看已装版本去同版本 Windows 10 机器上导出对应版本的包重新部署。不要试图用-ForceUpdateFromAnyVersion参数强推那个参数只对同包不同版本有效跨大版本会直接失败。4.2 现象商店装好了但开始菜单里搜不到原因LTSC 的开始菜单缓存没有刷新或者 Appx 包注册到了当前用户但没注册到所有用户。解决先确认Get-AppxPackage -Name Microsoft.WindowsStore返回的PackageUserInformation包含当前用户。如果没有用Add-AppxPackage -Register重新注册# 从安装目录重新注册商店 Get-AppxPackage -Name Microsoft.WindowsStore | ForEach-Object { Add-AppxPackage -Register $($_.InstallLocation)\AppxManifest.xml -DisableDevelopmentMode }-DisableDevelopmentMode表示以正式模式注册避免开发模式下的调试标记影响商店运行。4.3 现象装完商店后系统更新开始推送功能更新原因Store 的某些组件会触发Windows Update的 UUP 更新通道导致 LTSC 的更新策略被绕过。解决部署完商店后立刻检查组策略或注册表确认DeferFeatureUpdates仍然生效# 确认功能更新延迟策略 Get-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate -Name DeferFeatureUpdates -ErrorAction SilentlyContinue如果返回空需要手动写回。LTSC 的更新通道由ProductType和BranchReadinessLevel控制Store 本身不会改这些值但某些 Store 应用的安装脚本会。我一般会在部署完商店后把WindowsUpdate策略导出备份一次方便对比。4.4 现象商店能打开但下载应用时提示 0x80D05001原因LTSC 默认没有启用Delivery Optimization服务而 Store 下载依赖这个服务做分块传输。解决确认DoSvc服务状态# 查看 Delivery Optimization 服务 Get-Service -Name DoSvc | Select-Object Name, Status, StartType如果Status是Stopped启动它并设为自动Set-Service -Name DoSvc -StartupType Automatic Start-Service -Name DoSvc这个服务在 LTSC 里默认是手动触发Store 下载时会尝试启动但有时触发失败。手动设为自动可以避免这个问题。4.5 现象部署完所有包后系统变得不稳定某些原生功能异常原因Microsoft.UI.Xaml的版本和系统自带的 XAML 框架冲突或者Microsoft.NET.Native.Framework覆盖了系统原有的 .NET 运行时。解决这种情况没有后悔药只能按部署的逆序逐个移除包定位是哪个包引起的# 按逆序移除每次移除后重启资源管理器测试 Remove-AppxPackage -Package Microsoft.WindowsStore_22210.1401.2.0_x64__8wekyb3d8bbwe Remove-AppxPackage -Package Microsoft.UI.Xaml.2.8_8.2306.22001.0_x64__8wekyb3d8bbwe移除后如果系统恢复正常说明冲突包就是刚移除的那个。换一个更低版本或者跳过这个包只装 Store 必需的最小集合。5. 进阶用 winget 替代商店或者把商店做成可回滚的部署脚本5.1 为什么我后来更推荐 winget 而不是完整商店完整商店部署的包太多依赖链太长每次系统打补丁后都有可能被重置。我现在的做法是只部署Microsoft.DesktopAppInstaller拿到winget命令然后用 winget 装应用。winget 的包源是微软维护的社区仓库大部分常用工具都有而且不依赖 Store 前台。部署 App Installer 的最小命令# 只装 App Installer不装商店前台 Add-AppxPackage -Path C:\StorePackages\Microsoft.DesktopAppInstaller_2023.1101.10.0_neutral_~_8wekyb3d8bbwe.AppxBundle # 验证 winget 是否可用 winget --version如果winget --version返回版本号说明部署成功。之后用winget install装软件完全绕开商店界面。这个方案的好处是包少、依赖少、系统更新后不容易被重置。坏处是某些只发 Store 独占的应用比如某些硬件厂商的驱动面板还是得走完整商店。5.2 把部署过程写成一个可重复执行的脚本手动敲命令容易漏步骤我一般会写一个 PowerShell 脚本带错误处理和日志# deploy-store.ps1 # 用法以管理员身份运行确保 C:\StorePackages 下包齐全 $ErrorActionPreference Stop $logFile C:\StorePackages\deploy.log $pkgPath C:\StorePackages function Write-Log { param([string]$Message) $timestamp Get-Date -Format yyyy-MM-dd HH:mm:ss $timestamp - $Message | Out-File -FilePath $logFile -Append } # 按依赖顺序定义包列表 $packages ( Microsoft.VCLibs.140.00_14.0.30704.0_x64__8wekyb3d8bbwe.Appx, Microsoft.VCLibs.140.00.UWPDesktop_14.0.30704.0_x64__8wekyb3d8bbwe.Appx, Microsoft.NET.Native.Framework.2.2_2.2.29512.0_x64__8wekyb3d8bbwe.Appx, Microsoft.NET.Native.Runtime.2.2_2.2.28604.0_x64__8wekyb3d8bbwe.Appx, Microsoft.UI.Xaml.2.8_8.2306.22001.0_x64__8wekyb3d8bbwe.Appx, Microsoft.WindowsStore_22210.1401.2.0_neutral_~_8wekyb3d8bbwe.AppxBundle, Microsoft.StorePurchaseApp_22210.1401.1.0_neutral_~_8wekyb3d8bbwe.AppxBundle ) foreach ($pkg in $packages) { $fullPath Join-Path $pkgPath $pkg if (-not (Test-Path $fullPath)) { Write-Log 缺失包$pkg跳过 continue } try { Add-AppxPackage -Path $fullPath -ErrorAction Stop Write-Log 部署成功$pkg } catch { Write-Log 部署失败$pkg错误$($_.Exception.Message) # 失败后不中断继续尝试后续包最后统一排查 } } Write-Log 部署流程结束逻辑说明脚本用$ErrorActionPreference Stop让Add-AppxPackage的异常能被try/catch捕获避免中途静默失败。Write-Log函数把每一步的结果写到日志文件方便事后对比。包列表按依赖顺序排列缺失的包跳过而不是中断这样即使某个可选包没有核心商店也能装完。参数上-ErrorAction Stop是关键不加的话Add-AppxPackage失败只会写错误流不会抛异常catch块永远不触发。日志文件放在包目录下部署完直接看deploy.log就知道哪一步出了问题。5.3 验证商店是否真正可用而不是只看图标装完商店后我一般会做三个验证第一打开商店搜索一个免费应用比如Windows Terminal点安装看是否能正常下载和启动。这一步验证的是商店前台、购买服务和 Delivery Optimization 是否都正常。第二用winget install装一个命令行工具验证 App Installer 是否独立于商店前台工作。第三重启系统再次打开商店确认不是「一次性可用」。有些包在重启后会因为注册表上下文丢失而失效重启后还能用才算真正部署成功。如果三步都通过这套 LTSC 加商店的方案就算落地了。我自己的机器上这套流程跑了三年中间经历过两次系统累积更新商店没有掉过。唯一一次翻车是某次更新后Microsoft.UI.Xaml被重置重新部署一次就恢复了。希望帮到你。本文还有配套的精品资源点击获取
返回列表