部署UWP应用为系统预装应用

要将UWP应用部署为系统预装应用,可以使用DISM工具或使用Add-AppxProvisionedPackage命令

  1. 准备应用包

    • 获取**.appx.appxbundle**文件及其依赖项(如VCLibs、.NET框架等)。
    • 确保应用已使用受信任的证书签名(系统级部署需有效签名,测试可用自签名证书)。
  1. 以管理员身份部署

    1
    2
    3
    4
    # Add-AppxProvisionedPackage命令
    Add-AppxProvisionedPackage -Online -PackagePath "C:\Path\To\YourApp.appx" -DependencyPackagePath "C:\Path\To\Dependencies\*.appx" -SkipLicense
    # DISM命令
    Dism /Online /Add-ProvisionedAppxPackage /PackagePath:"path_to_appx" /DependencyPackagePath:"path_to_dependencies" /SkipLicense
    • Online: 直接部署到当前运行的系统中。
    • SkipLicense: 跳过许可证验证(仅限测试环境)。
  2. 脱机部署(系统映像集成)

    若需预装到系统镜像(如OOBE阶段):

    1
    2
    3
    4
    # Add-AppxProvisionedPackage命令
    Add-AppxProvisionedPackage -SkipLicense -Path "C:\Mount" -PackagePath "C:\Path\To\YourApp.appx" -DependencyPackagePath "C:\Path\To\Dependencies\*.appx"
    # DISM命令
    Dism /Add-ProvisionedAppxPackage /ImageFile:"mount_folder" /PackagePath:"path_to_appx" /DependencyPackagePath:"path_to_dependencies" /SkipLicense

由于手动输入命令过于繁琐,于是编写了一个小脚本来实现一键部署指定文件夹里的所有 .appx 或 .appxbundle 文件部署到系统映像。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 定义镜像路径和包含 Appx 包的文件夹路径
$imagePath = "mount_folder" #将mount_folder替换为映像位置,如 C:\Mount
$appxFolder = "Appx_folder" #将Appx_folder替换为APPX位置,如 C:\Test\Apps\MyPackedApp

# 获取文件夹中所有的 .appx 和 .appxbundle 文件
$appxPackages = Get-ChildItem -Path $appxFolder -Filter *.appx -Recurse -File |
Select-Object -ExpandProperty FullName

$appxBundles = Get-ChildItem -Path $appxFolder -Filter *.appxbundle -Recurse -File |
Select-Object -ExpandProperty FullName

# 合并两个列表
$allPackages = $appxPackages + $appxBundles

# 遍历每个包并使用 DISM 命令进行安装
foreach ($package in $allPackages) {
Write-Host "正在安装包: $package"
dism.exe /Image:$imagePath /Add-ProvisionedAppxPackage /PackagePath:"$package" /SkipLicense
if ($LASTEXITCODE -ne 0) {
Write-Error "安装失败: $package"
} else {
Write-Host "成功安装: $package"
}
}

将上述脚本保存为 .ps1 文件并以管理员权限运行它。确保在运行脚本之前,你已正确配置了 $imagePath 和 $appxFolder 变量以匹配你的环境。这样就可以自动化安装文件夹中的所有 appx 文件了。

注意事项

  • 多用户支持:系统预装应用将自动为所有用户安装,但首次登录时可能需要初始化。
  • 更新策略:系统应用需通过Windows Update或手动更新(需相同证书重新签名后部署)。

验证部署

1
2
# 检查已预装包列表
Get-AppxProvisionedPackage -Online | Where-Object DisplayName -eq "YourAppName"
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2024-2025 ZXCLF
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信