none
更新プログラムの適用に 0x80070020 エラーで失敗する場合の対処 RRS feed

  • 全般的な情報交換

  • こんにちは、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) エラーで失敗した場合、 その更新プログラム (あるいは、置き換え関係のある新しいバージョンの更新プログラム) を再起動後に適用しようとすると、0x800f0831 (CBS_E_STORE_CORRUPTION) エラーに変わり、失敗してしまうことがあります。
    これは、インストールに失敗した更新プログラムの適用が途中まで進み、不完全な状態でインストールされていることが原因となっている可能性があります。
    適用済み更新プログラムの一覧にインストールに失敗した更新プログラムが表示されている場合は、事前に、この更新プログラムをアンインストールしてから再度、適用をお試しください。

    また 0x80070020 (ERROR_SHARING_VIOLATION) のエラーは、前述のタスクとのバッティング以外にも、様々なアプリケーションとバッティングして発生する可能性があります。上記の手順で対応しても、同様の事象が繰り返し発生するようであれば、問題の切り分けとして 3 rd Party 製品の一時的なアンインストールなどもお試しください。なお、クライアン OS の場合は後述する “クリーン ブート” による切り分けが有効である場合もございます。

    <参考技術情報>

    ネイティブ イメージ タスク

    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

    (但し、クライアント OS に限定される手順となります )


    2018年11月15日 8:34
    所有者