こんにちは、Setup / Deployment サポート チームです。
今回は、更新プログラムの適用時に 0x80070020 (ERROR_SHARING_VIOLATION) のエラーで失敗する事象と、その対処方法について、ご紹介いたします。同様の事象を経験されている場合、こちらの情報を参考にしていただければ幸いです。
Windows Server 2012 R2 および Windows 8.1 では、ネイティブ イメージ タスクと呼ばれる Windows タスクが実装されています。
具体的なタスク名は、以下です。
\Microsoft\Windows\.Net Framework\.NET Framework NGEN v4.0.30319
\Microsoft\Windows\.Net Framework\.NET Framework NGEN v4.0.30319 64
このタスクは .NET におけるネイティブ イメージを事前に作成するためのタスクです。
このタスクの動作と、更新プログラムを適用処理がバッティングした場合、0x80070020 (ERROR_SHARING_VIOLATION) のエラーが発生し、更新プログラムの適用が失敗してしまう場合があります。
この事象はタイミングの問題であるため、時間を少し置いてから、更新プログラムの適用いただくか、以下のように手動でネイティブ イメージを作成し、その後に、更新プログラムを適用してください。
~ 手順 ~
1) コマンド プロンプトを [管理者として実行] で起動します。 2) 下記のコマンドを実行し、ネイティブ イメージを手動で作成します。 ngen.exe update /force 3) 終了後、更新プログラムの適用を行います。
なお、更新プログラムの適用が 0x80070020 (ERROR_SHARING_VIOLATION) エラーで失敗した場合、同じ更新プログラム (あるいは関連性のある更新プログラム)を再起動後にもう1度適用すると、0x800f0831 (CBS_E_STORE_CORRUPTION) エラーに変わり、失敗してしまうこともあります。これは、該当の更新プログラムが途中まで進み、終了している可能性が考えられますので、事前に、該当の更新プログラムをアンインストールしてから、再度、適用をお試しください。
また 0x80070020 (ERROR_SHARING_VIOLATION) のエラーは、前述のタスクとのバッティング以外にも、様々なアプリケーションとバッティングして発生する可能性があります。
上記の手順で対応しても、同様の事象が繰り返し発生するようであれば、後述する “クリーン ブート” 状態でのインストールをお試しください。
<参考技術情報>
ネイティブ イメージ タスク
https://msdn.microsoft.com/ja-jp/library/hh691779.aspx
Windows でクリーン ブートを実行する方法
https://support.microsoft.com/ja-jp/help/929135/how-to-perform-a-clean-boot-in-windows