脚本使用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
│
系统整体运行环境原创文章,作者:开心电脑网,如若转载,请注明出处。