Windows 10 LTSC 2021使用BAT + DISM安装和卸载Microsoft Store微软商店的方法

脚本使用BAT + DISM(Add-AppxProvisionedPackage) 的逻辑,管理员权限检查 / 提权 UAC 自提权,安装和卸载脚本各自另存为bat文件,编码为ANSI。

离线安装Microsoft Store将 Microsoft Store 及其运行库预置到系统映像,使其成为系统组件,并可自动部署到新用户。离线预置(Provisioned)安装 Microsoft Store 及其依赖。流程:

管理员检测 → 环境识别 → 安装依赖库 → 安装 Store → 结束

# Install_Microsoft_Libs_and_Store.zip安装包GIT下载地址,解压文件夹,把安装和卸载脚本放到当前目录

https://github.com/ishad0w/microsoft-windows-10-ltsc-2021-microsoft-store/releases/download/2022-04-01/Install_Microsoft_Libs_and_Store.zip

安装脚本如下:

@echo off
setlocal EnableExtensions EnableDelayedExpansion
chcp 936 >nul
title 安装 Microsoft 运行库与 Microsoft Store(离线 Provisioned 安装)

:: =========================================================
:: 自动 UAC 管理员自提权
:: =========================================================
>nul 2>&1 net session
if not "%errorlevel%"=="0" (
  echo [!] 需要管理员权限,正在请求 UAC 提权...
  powershell -NoProfile -Command "Start-Process -FilePath '%~f0' -Verb RunAs"
  exit /b
)

:: =========================================================
:: 基础信息
:: =========================================================
cd /d "%~dp0"

for /f "tokens=6 delims=[]. " %%i in ('ver') do set "build=%%i"
if /i "%PROCESSOR_ARCHITECTURE%"=="x86" (set "arch=x86") else (set "arch=x64")

echo.
echo =========================================================
echo  离线安装:Microsoft .NET / VC 运行库 + Microsoft Store
echo  架构:%arch%    Build:%build%
echo  路径:%~dp0
echo =========================================================
echo.

:: =========================================================
:: 安装依赖库
:: =========================================================
echo [1/2] 安装基础依赖(.NET Native / VCLibs / Xaml)
echo     - 按回车开始;如果你只是想装 Store,也建议先装依赖
pause >nul
echo.

call :install "NET.Native" "%arch%" "appx"
call :install "VCLibs"    "%arch%" "appx"
call :install "Xaml"      "%arch%" "appx"

echo.
echo [2/2] 安装 Microsoft Store(可选)
echo     [!] 不想安装 Store:此时直接关闭窗口即可跳过
pause >nul
echo.

call :install "WindowsStore" "neutral" "msixbundle"

echo.
echo [完成] 全部流程执行完毕。
echo 建议:如安装后未生效,可重启一次再验证。
echo.
pause
exit /b

:: =========================================================
:: :install 组件名 架构 扩展名
:: 逻辑:在当前目录递归搜索匹配包,逐个 Add-AppxProvisionedPackage
:: =========================================================
:install
set "name=%~1"
set "arch2=%~2"
set "ext=.%~3"

echo ---------------------------------------------------------
echo 正在查找并安装:%name%   (架构:%arch2%  类型:%ext%)
echo ---------------------------------------------------------

set "found=0"

for /f "usebackq delims=" %%i in (`dir /b /s "*%name%*%arch2%*%ext%" 2^>nul`) do (
  set "found=1"
  echo [安装] %%~nxi
  powershell -NoProfile -ExecutionPolicy Bypass -Command ^
    "Add-AppxProvisionedPackage -Online -PackagePath '%%i' -SkipLicense -ErrorAction SilentlyContinue | Out-Null"
)

if "!found!"=="0" (
  echo [跳过] 未找到匹配文件:*%name%*%arch2%*%ext%
) else (
  echo [完成] %name% 安装步骤已执行
)

echo.
exit /b

卸载Microsoft Store是从系统预置和所有用户环境中彻底移除 Microsoft Store,并阻止其在未来自动部署。流程:

关闭进程 → 删除系统预置 → 删除用户安装 → 清理残留 → 验收

卸载脚本如下:

@echo off
setlocal EnableExtensions EnableDelayedExpansion
chcp 936 >nul
title LTSC 强力卸载 Microsoft Store(DISM + AllUsers)

:: =========================
:: 0) 管理员自提权
:: =========================
>nul 2>&1 net session
if not "%errorlevel%"=="0" (
  echo [!] 需要管理员权限,正在请求提权...
  powershell -NoProfile -Command "Start-Process -FilePath '%~f0' -Verb RunAs"
  exit /b
)

cd /d "%~dp0"

echo =========================================================
echo  LTSC 强力卸载 Microsoft Store(Provisioned + AllUsers)
echo  BAT + DISM(/Remove-ProvisionedAppxPackage) + PowerShell
echo =========================================================
echo.

:: =========================
:: 1) 关闭可能占用的进程
:: =========================
echo === [1/6] 关闭可能占用的进程 ===
for %%P in (WinStore.App StoreExperienceHost SearchApp Microsoft.Photos Microsoft.WindowsCamera) do (
  taskkill /f /im "%%P.exe" >nul 2>&1
)
echo.

:: =========================
:: 2) 检测并移除 Provisioned(系统预置)Store
::    DISM 列表里一般是 Microsoft.WindowsStore_*_8wekyb3d8bbwe
:: =========================
echo === [2/6] 检测 Provisioned(系统预置)Store 包 ===
set "FOUND_PROV=0"

for /f "usebackq delims=" %%L in (`dism /online /Get-ProvisionedAppxPackages ^| findstr /i "PackageName"`) do (
  set "LINE=%%L"
  echo !LINE! | findstr /i "Microsoft.WindowsStore_" >nul 2>&1
  if "!errorlevel!"=="0" (
    set "FOUND_PROV=1"
    for /f "tokens=2 delims=:" %%A in ("!LINE!") do (
      set "PKG=%%A"
      set "PKG=!PKG: =!"
      echo  [FOUND] !PKG!
      echo === [3/6] 移除 Provisioned Store(DISM)===
      dism /online /Remove-ProvisionedAppxPackage /PackageName:!PKG!
      echo.
    )
  )
)

if "%FOUND_PROV%"=="0" (
  echo Provisioned Store: 未发现(跳过)
  echo.
)

:: =========================
:: 4) 移除 AllUsers 已安装 Store 包
:: =========================
echo === [4/6] 移除 AllUsers 已安装 Store 包 ===
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
  "$pkgs = Get-AppxPackage -AllUsers Microsoft.WindowsStore; " ^
  "if($pkgs){ $pkgs | Select Name,PackageFullName,InstallLocation | Format-Table -AutoSize; " ^
  "foreach($k in $pkgs){ Write-Host ('Removing AllUsers: ' + $k.PackageFullName); " ^
  "Remove-AppxPackage -AllUsers -Package $k.PackageFullName -ErrorAction SilentlyContinue } } " ^
  "else{ Write-Host 'AllUsers Store: 未发现(跳过)' }"
echo.

:: =========================
:: 5)(可选)清理 WindowsApps 残留目录
::    默认不执行,避免误删其他商店组件
::    想执行:把下面 CLEAN_WA=0 改成 1
:: =========================
set "CLEAN_WA=0"
echo === [5/6](可选)清理 WindowsApps 残留目录 ===
if "%CLEAN_WA%"=="1" (
  set "WA=C:\Program Files\WindowsApps"
  if exist "%WA%" (
    echo [INFO] 扫描残留:Microsoft.WindowsStore_*_8wekyb3d8bbwe
    dir /b /ad "%WA%\Microsoft.WindowsStore_*_8wekyb3d8bbwe" >nul 2>&1
    if "!errorlevel!"=="0" (
      echo [WARN] 发现残留目录,准备授予权限并删除(高风险操作)
      takeown /f "%WA%" /r /d y >nul 2>&1
      icacls "%WA%" /grant administrators:F /t >nul 2>&1
      for /f "delims=" %%D in ('dir /b /ad "%WA%\Microsoft.WindowsStore_*_8wekyb3d8bbwe" 2^>nul') do (
        echo Deleting: "%WA%\%%D"
        rmdir /s /q "%WA%\%%D" >nul 2>&1
      )
    ) else (
      echo WindowsApps 中未发现 Store 残留目录(跳过)
    )
  ) else (
    echo WindowsApps 目录不存在(跳过)
  )
) else (
  echo [SKIP] 默认不清理 WindowsApps(如需清理,把 CLEAN_WA 改为 1)
)
echo.

:: =========================
:: 6) 验收检查:AllUsers + Provisioned
:: =========================
echo === [6/6] 验收检查(两处都应无 Microsoft.WindowsStore)===
echo --- AllUsers Store Packages ---
powershell -NoProfile -Command "Get-AppxPackage -AllUsers Microsoft.WindowsStore | Select Name,PackageFullName | Format-Table -AutoSize"
echo.

echo --- Provisioned Store Packages (DISM) ---
dism /online /Get-ProvisionedAppxPackages | findstr /i "Microsoft.WindowsStore"
if not "%errorlevel%"=="0" echo (Provisioned Store: 无输出,OK)
echo.

echo === 完成:建议重启一次,以刷新 AppX 部署状态 ===
echo.
pause
exit /b

卸载重启后,进行验收,如无输出,说明卸载成功。

Get-AppxPackage -AllUsers *Store*
Get-AppxProvisionedPackage -Online | findstr Store

完整层级关系如下:

                 ┌──────────────┐
                 │ Microsoft Store │
                 └───────┬──────┘
                         │
         ┌───────────────┼───────────────┐
         │               │               │
  核心运行库       Store 服务层      Web 登录层
 (.NET/VCLibs)    (ClipSVC等)      (WebView2)
         │               │               │
         └───────────────┴───────────────┘
                         │
                UWP 平台 / Shell
                         │
                系统整体运行环境

原创文章,作者:开心电脑网,如若转载,请注明出处。

(1)
上一篇 2026年2月9日
下一篇 2026年2月21日

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注