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

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

原始產品版本:   Windows 10-所有版本
原始 KB 編號:   2769827

簡介

Sysprep 是一種工具,可讓 IT 系統管理員準備用於複製、審核和客戶傳遞的 Windows 安裝。 本文中的指導方針是供支援代理商和 IT 專業人員使用。 如果您是使用 Microsoft Store 應用程式時遇到問題的家庭使用者,請參閱 在 Windows 10 中修正 Microsoft store 應用程式的問題

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

徵狀

請考量下列案例:

案例 1

  • 您要建立要 sysprep 及捕獲的自訂 Windows 10 參考電腦。
  • 您想要移除某些已布建的 Microsoft Store app (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 10 儲存區,然後使用 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 10 以清理 Appx 套件及一般化影像。 只有當 Appx 套件是個別使用者套件或所有使用者布建套件時,提供者才會運作。

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

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

解決方案

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

注意

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

  1. 執行 Import-Module Appx PowerShell Cmdlet。

  2. Import-Module Dism 執行。

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

    注意

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

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

    Remove-AppxProvisionedPackage-線上-PackageName <packagefullname>

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

注意

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

詳細資訊

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