目前不通过应用程序商店部署Metro应用的方法有2种,一种是开发许可证部署(有点类似于WP手机的开发者账号越狱),另一种是旁加载。本文主要讲述旁加载的使用
你可以通过使用 Windows PowerShell(R) 或 部署映像服务和管理 (DISM) 平台添加业务线 (LOB) 基于 Windows(R) 运行时的应用程序 至 Windows(R) 映像。LOB 基于 Windows 运行时的应用程序 在 Windows® 应用商店 过程中无需被认证或安装,但他们必须使用被关联至一个受信任根证书的证书进行签名。添加并非来自 Windows 应用商店 的 基于 Windows 运行时的应用程序 被称为 旁加载。
要安装并非业务线一部分的 基于 Windows 运行时的应用程序,必须使用 Windows 应用商店。
Dism.exe 和 Windows PowerShell 命令仅仅添加、列出并删除 基于 Windows 运行时的应用程序,你无法使用它们安装只能在桌面运行的传统应用程序。
应用程序签名请求
你可以安装未由 Windows 应用商店 签名的 LOB 基于 Windows 运行时的应用程序。LOB 基于 Windows 运行时的应用程序 必须使用密码签名,并且只能被安装在信任签名证书的计算机上。
有关应用程序的签名方法和证书的使用的详细信息,请参阅应用程序打包工具。
Windows 8 旁加载要求
在向 Windows 映像添加旁加载的 LOB 基于 Windows 运行时的应用程序 时:
- 必须启用“允许安装所有受信任的应用程序”组策略设置。
在能够运行旁加载 LOB 基于 Windows 运行时的应用程序 之前:
- 必须激活一个旁加载产品密钥,或将电脑加入一个 Active Directory 域,该域必须启用了“允许安装所有受信任的应用程序”组策略设置。
你可以通过将电脑加入一个域,在 Windows® 8 企业版或 Windows Server® 2012 上启用旁加载。要在任何其他版本的 Windows 上,或在未加入域的 Windows 8 企业版电脑上启用旁加载,必须使用一个旁加载产品激活密钥。
在电脑满足所有旁加载要求之前,“开始”菜单中的应用程序磁贴将在右下角出现一个 "X",表明存在一个问题,妨碍了应用程序的运行。
要为旁加载设置组策略
-
打开组策略编辑器 (gpedit.msc)。例如,在一台运行 Windows 8 的计算机上,从“开始”屏幕,键入 Edit Group Policy,单击“设置”,然后从搜索结果中选择“编辑组策略”设置。
-
在左边窗格的“本地计算机策略”下面,单击以展开“计算机配置”、“管理模板”、“Windows 组件”、然后是“应用程序包部署”。
-
双击“允许安装所有受信任的应用程序”设置。
-
在“允许安装所有受信任的应用程序”窗口中,单击“启用”,然后单击“确定”。
设置组策略以允许受信任的应用程序更新下列注册设置: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Appx\AllowAllTrustedApps = 1
添加应用程序
可以使用 add-appxpackage PowerShell cmdlet 基于每个用户安装一个应用程序包 (.appx)。这些应用程序必须为每个用户添加,但可以随用户漫游到多台电脑上。可给每个用户添加的 LOB 应用程序数量是没有限制的。
向一个用户帐户添加 LOB 应用程序
-
在 Windows 8 或 Windows Server 2012 计算机上的 Windows PowerShell 提示符处,添加一个 .appx 文件包。在添加应用程序的时候,应包含任何要求的依赖性应用程序包。例如,键入:
add-appxpackage C:\app1.appx –DependencyPath C:\winjs.appx
有关详细信息,请参阅 Windows PowerShell 中的应用程序安装 Cmdlets。
设置 LOB 应用程序
安装在 Windows 映像中的 基于 Windows 运行时的应用程序 被称为 已设置的 应用程序。已设置的应用程序被存放在映像中,并且计划为 Windows 映像的每个用户在首次登录的时候安装。当你在使用 DISM 应用程序设置命令部署映像前,启动到审计模式的时候,可以将这些应用程序添加到 Windows 映像。有关审计模式的详细信息,请参阅审核模式概述:
已设置的应用程序是指定了电脑的,并且不会随用户漫游。在一个映像中,你只能安装 24 个已设置的应用程序。
在一个已经部署的 Windows 映像中,你应当代以使用 Windows PowerShell 中的 Add-AppxPackage cmdlet.如果你确实在有活动用户的已部署的 Windows 映像中使用 DISM 应用程序设置命令,你应当在运行命令前从映像注销所有用户。
要更新一个已设置的应用程序,你必须删除已设置的应用程序,然后部署应用程序的新版本。然后将在每个用户下次���录的时候应用程序更新。
向一个 Windows 映像添加已设置的 LOB 应用程序
-
使用部署映像服务和管理 (DISM) 命令行工具或 PowerShell cmdlets 来添加没有 Windows 应用商店证书的 LOB 应用程序。例如,在高级命令提示符下键入:
DISM /Online /Add-ProvisionedAppxPackage /PackagePath:C:\App1.appx /SkipLicense
或者在 Windows PowerShell 提示符下,键入:
Add-AppxProvisionedPackage -Online -FolderPath C:\Appx
有关详细信息,请参阅 应用程序包 (.appx) 服务命令行选项 或 DISM Cmdlet。有关 DISM 支持的平台的信息,请参阅 DISM 支持的平台。
备注
计算机并不一定要在安装已设置的 LOB 应用程序前加入一个域,或有一个激活的旁加载产品密钥。但是,这些应用程序直到计算机满足这一旁加载要求的时候,才会运行。有关详细信息,请参阅如何自定义“开始”屏幕。
清单应用程序
你可以列出安装在脱机或联机 Windows 映像上的 LOB 基于 Windows 运行时的应用程序,并获取有关程序包的额外信息。
为每个用户帐户列出 LOB 应用程序
-
你可以为计算机上的一个特定用户帐户安装一系列现代 LOB 基于 Windows 运行时的应用程序。你必须打开有管理员特权的 Windows PowerShell,为当前用户以外的其他用户列出程序包。例如,在 Windows PowerShell 提示符下键入:
Get-AppxPackage -AllUsers
-
你可以为一个特定的用户安装一系列程序包。你必须打开有管理员特权的 Windows PowerShell,为当前用户以外的其他用户列出程序包。例如,在 Windows PowerShell 提示符下键入:
Get-AppxPackage -Name Package1 -User domain\username
-
你也可以获取包含有如程序包 ID 之类信息的 AppX 程序包清单。例如,在 Windows PowerShell 提示符下键入:
Get-AppxPackageManifest -Package Package1
-
如果你不知道程序包的全名,则可以使用管道来为 AppX 程序包获取清单。例如,在 Windows PowerShell 提示符下键入:
(Get-AppxPackage -Name "*WinJS*" | Get-AppxPackageManifest).package.applications.application.id
列出在 Windows 映像中设置的 LOB 应用程序
-
你可以获取在 Windows 映像中配置的一系列程序包,它们将通过使用 Dism.exe 或 Windows Powershell 为每个新用户安装。例如,在 Windows PowerShell 提示符下键入:
Get-AppxProvisionedPackage -Path c:\offline
或者在命令提示符下,键入:
DISM.exe /Image:C:\test\offline /Get-ProvisionedAppxPackages
有关详细信息,请参阅如何获取映像或组件的清单。
删除应用程序
你可以删除一个应用程序的单独实例,或删除应用程序的配置设置。
为每个用户帐户删除 LOB 应用程序
-
你可以仅为当前的用户删除一个单独的应用程序。例如,在命令提示符下键入:
Remove-AppxPackage Package1
在一个 Windows 映像中删除已配置的 LOB 应用程序
-
当删除已配置应用程序的时候,该应用程序对当前用户已删除,并且不会为新的用户帐户安装。如果计算机上有其他活动的用户帐户,应用程序将不会从那些帐户删除。
例如,在高级 Windows PowerShell 提示符下键入:
Remove-AppxProvisionedPackage -Online -PackageName MyAppxPkg
或者在命令提示符下,键入:
DISM.exe /Online /Remove-ProvisionedAppxPackage /PackageName:microsoft.app1_1.0.0.0_neutral_en-us_ac4zc6fex2zjp