ufufu diary

ランニングが好きです。

sysprepに失敗する(Windows10 1507~1803)

Windows10のマスター展開を行っている。
定期的にマスターPCWindows Updateを行っているのだが、ストアアプリが原因でsysprepがエラーするため、リンク先を参考に、ストアアプリを削除し、sysprepを行なってきた。
 
リンク先
 
以下の場合、別途注意が必要です。
 
1)機能更新アップデートが行われた場合
 (昨日更新アップデート例:1703から1709になった)
  →この場合、WindowsフォルダーにあったファイルはWindows.oldフォルダーに移動します。
   例えばsysprepフォルダーに応答ファイルなどを置いていた場合、もれなく移動しますので、sysprepでエラーする場合はC:\windows.oldも確認しましょう。
 
2)1709(Fall Creators Update)でエラーする場合
このブログのおかげで無事に完了できました。
1709に機能更新すると、「Miracast」が削除されるため、「0x80073cf2」でエラーしておりました。
対応方法としては、C:\windows.old\WindowsにあるMiracastViewフォルダーをC:\windowsにコピーして解決。
ただし、7日以上経過するとC:\windows.oldフォルダーのファイルが消えてしまいます。
もし消えてしまった場合は、旧ビルド(1703など)が入ったPCからMiracastフォルダーごと持ってきましょう。
 
 
3)注意!もう少しスマートな方法があるので、ここから下は保留。

1803をsysprepしました。
相変わらずストアアプリ絡みでエラー→ストアアプリ削除の作業は必要なのですが、
新たな問題に遭遇したので備忘録として。

3)「コンピューターのsysprepを実行中に致命的なエラーが発生しました。」

"C:\Windows\System32\sysprep\Panther\setuperr.log"を見てみましょう。

 

■概要:1回の作業で以下がセットで出ている場合の対応方法
 ・Failed to remove Staged Package xxxxxというエラーが出ている
 ・Not running DLLs;~と出ている

A)1709のマシンを別に作って、C:\Program Files\Windows Appsからxxxxに記載のフォルダーをTempフォルダーにコピーする。
tempフォルダー内全てのフォルダーを1803のC:\Program Files\Windows Appsに貼り付ける

→かなりの数ありますので、1709のマシンからC:\Program Files\Windows Appsにあるフォルダ全てコピーして、1803のC:\Program Files\Windows Appsに全て貼り付けしたら1回で終わって良いです。


B)以下レジストリ変更
 HKEY_LOCAL_MACHINE\SYSTEM\Setup\Status\SysprepStatus\GeneralizationState\CleanupState:2
 HKEY_LOCAL_MACHINE\SYSTEM\Setup\Status\SysprepStatus\GeneralizationState\GeneralizationState:7


C)コマンドプロンプトで下記の2つのコマンドを実行します。
 msdtc –uninstall
 msdtc –install


D)(AdministratorユーザーでマスターPCを作成している場合は、コンピューターの管理でAdministratorを有効になっているのを確認した上で)再起動し、再度sysyprepします。

エラーが出なくなるまでA)~D)まで繰り返します

 
詳細

3-1)Failed to remove Staged Package xxxxxというエラーが出る。

調べていくと、ストアアプリが無いから出ていると思われる
1709のマシンを別に作って、
C:\Program Files\Windows Appsからxxxxに記載のフォルダーをコピーし、1803マシンのTempフォルダーにコピーします。
Tempフォルダー内全てを1803のC:\Program Files\Windows Appsに貼り付け、sysprepを再度行うと3-2)のエラーメッセージとなる


3-2)「コンピューターのsysprepを実行中に致命的なエラーが発生しました。」
引き続き"C:\Windows\System32\sysprep\Panther\setuperr.log"を見てみましょう。

今度は以下が出ている。
[0x0f0073] SYSPRP RunExternalDlls:Not running DLLs; either the machine is in an invalid state or we couldn't update the recorded state, dwRet = 0x1f
[0x0f00ae] SYSPRP WinMain:Hit failure while processing sysprep cleanup external providers; hr = 0x8007001f

調べていくと、以下リンク先にたどり着く。
http://codename2010.blog11.fc2.com/blog-entry-256.html

内容としては、以下を行えば良いそうな。

※注意事項
Administratorのみを有効にしてマスターイメージを作成していると、sysyprepが中途半端にかかった場合
Administartorが無効になり、再起動後、サインインできなくなります。
再起動前にコンピューターの管理→ローカルユーザーとグループからAdministratorが有効になっていることを確認の上、再起動してください。


1.レジストリを修正
HKEY_LOCAL_MACHINE\SYSTEM\Setup\Status\SysprepStatus\GeneralizationState\CleanupState:2
HKEY_LOCAL_MACHINE\SYSTEM\Setup\Status\SysprepStatus\GeneralizationState\GeneralizationState:7

2.コマンドプロンプトで下記の2つのコマンドを実行します。
msdtc –uninstall
msdtc –install

3.再起動します。

4.改めてsysprepを実行します。

3-1)3-2)を、エラーが出なくなるまで繰り返します。
3-1)に関しては、sysprepすると、その前までにコピーしたフォルダーが消えます。
一度コピーしたフォルダーはTempフォルダー等に保存しておきましょう。

 

 
 
 
その他備忘録
◎ストアアプリが残っているか確認するコマンド
Get-AppxPackage -AllUsers | Where Name –Like “ストアアプリ名”
実行すると、PackageUserInformationにユーザー情報が表示されます。