在您移除或更新包含內建 Windows 影像的 Microsoft Store 應用程式之後,Sysprep 會失敗

本文討論當您使用 Microsoft Store 來移除或更新已布建的 Microsoft Store 應用程式,然後在電腦上執行 sysprep 時,所發生的問題。

適用于:  Windows 10-所有版本,Windows 11
原始 KB 編號:   2769827

簡介

Sysprep 是 IT 管理員的工具,想要準備 Windows 以進行重複、審核及客戶傳遞的安裝。 本文中的指導方針是供支援代理商和 IT 專業人員使用。 如果您是使用 Microsoft Store 應用程式時遇到問題的家用使用者,請參閱修正來自 Microsoft Store 應用程式的問題

許多 Microsoft Store 的應用程式都是在 Windows 影像內建的。 這些應用程式包括郵件、地圖、通訊、Bing、旅行和新聞應用程式,以及其他應用程式。 這些應用程式稱為已布 的應用程式。 在第一次登入時,已布建的應用程式會暫存在映射中,並為每個使用者的 Windows 映像進行安裝。 除了內建的應用程式之外,您還可以將您自己的企業營運 Microsoft Store 應用程式載入到 Windows 映像中,而不必將其發佈至 Microsoft Store。 您可以 Appx 使用在 DISM.exe 或透過 DISM PowerShell 模組中提供的線上或離線服務命令,來載入您的套裝軟體。

徵狀

請考量下列案例:

案例 1

  • 您要建立要 sysprep 及捕獲的自訂 Windows 10 或 Windows 11 參考電腦。
  • 您想要從此參考電腦 (套件) 移除某些已布建的 Microsoft Store 應用程式 Appx
  • 您執行 dism -online /Remove-ProvisionedAppxPackage /PackageName:<packagename> 以取消設 Appx 套件。

當您在此案例中執行 sysprep 作業時,作業可能會失敗,併發生下列錯誤:

系統準備工具3.14
嘗試將機器 sysprep 時,發生嚴重錯誤

案例 2

  • 您有現有的 Windows 影像,而且有許多 Microsoft Store 應用程式已在影像中載入。
  • 您想要從影像中移除部分載入的 Appx 套件,並進一步自訂。
  • 您可以引導進入參考電腦,並執行下列其中一個 PowerShell 命令,以移除套件的布建 Appx
    • Remove-AppxProvisionedPackage -PackageName <packagename>
    • Remove-ProvisionedAppxPackage -PackageName <packagename>

當您在此案例中執行 sysprep 作業時,作業可能會失敗,併發生下列錯誤:

系統準備工具3.14
嘗試將機器 sysprep 時,發生嚴重錯誤

案例 3

  • 您正在建立 Windows 10 或 Windows 11 參考圖像。
  • 您連接到 Microsoft Store,然後使用 Microsoft Store 更新內建 Microsoft Store 應用程式。

當您在此案例中執行 sysprep 作業時,作業可能會失敗,併發生下列錯誤:

系統準備工具3.14 嘗試 sysprep 機器時發生致命錯誤

此外,在 SetupErr 中,您可能會注意到下列錯誤專案:

<Date><Time>,已為使用者安裝錯誤 SYSPRP 套件 <PackageFullName> ,但未針對所有使用者進行布建。 此套件將無法在 sysprep 映射中正常運作。
<Date><Time>,錯誤 SYSPRP 無法移除目前使用者的應用程式:0x80073cf2。
<Date><Time>,錯誤 SYSPRP [RemoveAllApps] 執行緒的退出碼是0x3cf2。
<Date><Time>,錯誤 [0x0f0082] SYSPRP ActionPlatform:: LaunchModule:從 C:\Windows\System32\AppxSysprep.dll 執行「SysprepGeneralize ' 時發生錯誤; dwRet = 0x3cf2
<Date><Time>,錯誤 SYSPRP ActionPlatform:: ExecuteAction:執行動作時發生錯誤; dwRet = 0x3cf2
<Date><Time>,錯誤 SYSPRP ActionPlatform:: ExecuteActionList:執行動作時發生錯誤; dwRet = 0x3cf2
<Date><Time>,錯誤 SYSPRP SysprepSession:: Execute:從 C:\Windows\System32\Sysprep\ActionFiles\Generalize.xml 執行動作時發生錯誤; dwRet = 0x3cf2
<Date><Time>,錯誤 SYSPRP RunPlatformActions:執行 SysprepSession 動作時失敗; dwRet = 0x3cf2
<Date><Time>,錯誤 [0x0f0070] SYSPRP RunExternalDlls:執行登錄 Sysprep dll 時發生錯誤,正在停止 sysprep 執行。 dwRet = 0x3cf2
<Date><Time>,錯誤 [0x0f00a8] SYSPRP WinMain:在處理 sysprep 一般化內部提供者時命中失敗; hr = 0x80073cf2

原因

Sysprep 還有其他提供者,已新增于 Windows,可清理 Appx 套件及一般化影像。 只有當 Appx 套件是個別使用者套件或所有使用者布建套件時,提供者才會運作。

  • 每一位使用者的套件 表示 Appx 套件是針對特定使用者帳戶安裝的,無法供電腦的其他使用者使用。
  • All-使用者套件 表示已布建 Appx 至影像,讓使用此影像的所有使用者都可以存取應用程式。

如果已布建至影像的所有使用者套件已從影像手動 deprovisioned,但未針對特定使用者移除,則在 sysprep 期間清除此套件時,提供者將會發生錯誤。 如果此參考電腦上的其中一位使用者更新已布建至映射的所有使用者套件,則提供者也會失敗。

解決方案

若要解決此問題,請移除執行 sysprep 之使用者的封裝,也移除布建。 若要執行這項操作,請依照下列步驟執行。

注意

若要防止 Microsoft Store 更新應用程式,請先拔下網際網路連線或停用稽核模式中的自動更新,再建立映射。

  1. 執行 Import-Module Appx PowerShell Cmdlet。

  2. Import-Module Dism 執行。

  3. 執行 Get-AppxPackage -AllUsers | Where PublisherId -eq 8wekyb3d8bbwe | Format-List -Property PackageFullName,PackageUserInformation

    注意

    • 在此最後一個 Cmdlet 的輸出中,檢查套件所顯示為已安裝的使用者。 從參考電腦刪除這些使用者帳戶,或使用這些使用者帳戶登入電腦。 然後,在步驟4中執行 Cmdlet,以移除 Appx 套件。
    • 這個命令會列出由 Microsoft 所發行並由該參考電腦的任何使用者安裝的所有套件。 由於電腦即將 sysprepped,因此我們假設這些使用者設定檔不再需要套件。
    • 如果您已手動布建屬於其他發行者的應用程式,請執行下列命令以列出它們:
      Get-AppxPackage-AllUsers |Format-List-Property PackageFullName,PackageUserInformation
  4. 執行 Remove-AppxPackage -Package \<packagefullname>

  5. 執行下列 Cmdlet 來移除布建:

    Remove-AppxProvisionedPackage-線上-PackageName <packagefullname>

如果您嘗試從更新問題復原,則可以在您遵循這些步驟之後,重新布建應用程式。

注意

如果您正在處理離線影像,則不會發生此問題。 在此情況下,會自動清除所有使用者的布建。 這包括執行命令的使用者。

其他資訊

如需如何新增及移除應用程式的詳細資訊,請參閱: