“导入桌面”向导具有一个选项,用于从基础虚拟机 (VM) 上的非多会话 Microsoft Windows 10 或 11 客户端类型操作系统中移除大多数 Windows 应用商店应用程序。如果选择该选项,映像创建过程将生成一个虚拟机,以避免导致映像发布过程失败的很多常见原因。尤其是,可以使用该选项降低在发布过程中出现 Sysprep 错误的风险。
要创建具有 Microsoft Windows 10 或 11 操作系统的虚拟机,自动映像创建过程将使用 Microsoft Azure 应用商店中提供的版本。正如 Microsoft 文档了解 Windows 10 中包含的不同应用程序中所述,Microsoft Windows 10 客户端类型的系统通常包括安装的 Windows 应用程序和置备的 Windows 应用程序(安装在 c:\Program Files\WindowsApps
目录中)。除了预先安装在该目录中的那些应用程序以外,在操作系统启动并运行后,它还会以静默方式自动从 Microsoft 应用商店中下载并安装各种 Microsoft 应用商店应用程序(Microsoft 称之为“建议的应用程序”)。几乎所有这些应用程序都可能会导致 Microsoft 系统准备 (Sysprep) 实用程序出现问题。发布工作流程取决于该实用程序。如果很多 Windows 应用程序保留在虚拟机的操作系统中,此时通常出现的 Sysprep 问题是业界已知的问题,如以下 Microsoft 资源中所述:
通过移除预先安装的大多数 Microsoft 应用商店应用程序并禁止虚拟机的操作系统以静默方式自动安装新的建议应用程序,可以降低在发布映像时出现此类 Sysprep 问题的风险。这些 Windows 应用程序作为 AppX 软件包位于操作系统中。如果选择了移除 Windows 应用商店应用程序的选项,映像创建过程将在虚拟机的操作系统中进行以下更改。
- 配置以下注册表值以停用 Microsoft 应用商店自动下载和 Microsoft 用户体验。
表 1. 为移除 Windows 应用商店应用程序选项设置的注册表值 注册表路径 属性名称 值 详细信息 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsStore
AutoDownload
2 停用自动下载 Windows 应用商店应用程序 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CloudContent
DisableWindowsConsumerFeatures
1 取消激活 Microsoft 用户体验 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager
SilentInstalledAppsEnabled
0 停用自动安装建议的 Microsoft 应用商店应用程序,否则 Microsoft Windows 将以静默方式自动下载并安装这些应用程序 - 停止并停用 Microsoft 应用商店安装服务(
InstallService
服务)。 - 移除已安装到虚拟机操作系统中但未列入系统定义的允许列表的 AppX 软件包(扩展名为
.appx
的文件)。映像创建脚本先使用类似下面的命令获取位于虚拟机操作系统中的 AppX 软件包的名称:Get-AppxPackage -AllUsers | Select-Object -Property Name, PackageFullName | Sort-Object -Property Name
然后,对于不在系统允许列表中的每个 AppX 软件包,该脚本会使用类似下面的命令移除已排除的 AppX 软件包:Remove-AppxPackage -Name appx-name
接下来,该脚本还会使用类似下面的命令移除与每个已排除的 AppX 软件包关联的应用程序置备软件包:Get-AppxProvisionedPackage -Online | Where-Object {$_.DisplayName -like appx-name} | Remove-AppxProvisionedPackage -Online
系统定义的允许的 AppX 软件包
默认情况下,以下 AppX 软件包将列入系统的允许列表。在导入虚拟机过程结束时,这些软件包将保留在生成的基础虚拟机中,即使启用了移除 Windows 应用商店应用程序选项开关也是如此。
Microsoft.DesktopAppInstallers Microsoft.Messaging Microsoft.MSPaint Microsoft.Windows.Photos Microsoft.MicrosoftStickyNotes Microsoft.WindowsCalculator Microsoft.WindowsCommunicationsApps Microsoft.WindowsSoundRecorder Microsoft.WindowsStore Microsoft.Xbox.TCUI Microsoft.XboxApp Microsoft.XboxGameCallableUI Microsoft.XboxGameOverlay Microsoft.XboxGamingOverlay Microsoft.XboxIdentityProvider Microsoft.XboxSpeechToTextOverlay Windows.CBSPreview windows.immersivecontrolpanel Windows.PrintDialog