SFCとDISMが失敗した場合、Windows 10で破損したopencl.dllを修正する方法は?


33

ローカルコンポーネントストアが破損しており、コンピューターがMicrosoftのパブリック更新サーバーではなくローカルWSUSサーバーにアクセスしているため(また、Dismを使用することはほとんどないため)、問題を解決するのに数時間かかりました。参考のため、同じ問題を抱えている他の人々を支援するために、問題の説明を書き留め、解決策を提供します。

Windows 10 Proバージョン1511(ビルド10586)にアップグレードしてから、いくつかの場所で破損したファイルopencl.dllに問題があります。

試しましたsfc.exe /scannowが、問題を解決できませんでした。エラーメッセージは、特に次のとおりです。

2015-12-08 08:50:43, Info                  CSI    00003c3a Hashes for file member \SystemRoot\WinSxS\wow64_microsoft-windows-r..xwddmdriver-wow64-c_31bf3856ad364e35_10.0.10586.0_none_3dae054b56911c22\opencl.dll do not match actual file [l:10]"opencl.dll" :
  Found: {l:32 g2VAunZ6/2J1G3oL7kf9fjInPUA9VYeiJcl9VKgizaY=} Expected: {l:32 9rnAnuwzPjMQA7sW63oNAVhckspIngsqJXKYSUeQ5Do=}
2015-12-08 08:50:43, Info                  CSI    00003c3b [SR] Cannot repair member file [l:10]"opencl.dll" of microsoft-windows-RemoteFX-clientVM-RemoteFXWDDMDriver-WOW64-C, version 10.0.10586.0, arch Host= amd64 Guest= x86, nonSxS, pkt {l:8 b:31bf3856ad364e35} in the store, hash mismatch
2015-12-08 08:50:43, Info                  CSI    00003c3c [SR] This component was referenced by [l:125]"Microsoft-Windows-RemoteFX-VM-Setup-Package~31bf3856ad364e35~amd64~~10.0.10586.0.RemoteFX clientVM and UMTS files and regkeys"
2015-12-08 08:50:43, Info                  CSI    00003c3d Hashes for file member \??\C:\WINDOWS\SysWOW64\opencl.dll do not match actual file [l:10]"opencl.dll" :
  Found: {l:32 g2VAunZ6/2J1G3oL7kf9fjInPUA9VYeiJcl9VKgizaY=} Expected: {l:32 9rnAnuwzPjMQA7sW63oNAVhckspIngsqJXKYSUeQ5Do=}
2015-12-08 08:50:43, Info                  CSI    00003c3e Hashes for file member \SystemRoot\WinSxS\wow64_microsoft-windows-r..xwddmdriver-wow64-c_31bf3856ad364e35_10.0.10586.0_none_3dae054b56911c22\opencl.dll do not match actual file [l:10]"opencl.dll" :
  Found: {l:32 g2VAunZ6/2J1G3oL7kf9fjInPUA9VYeiJcl9VKgizaY=} Expected: {l:32 9rnAnuwzPjMQA7sW63oNAVhckspIngsqJXKYSUeQ5Do=}
2015-12-08 08:50:43, Info                  CSI    00003c3f [SR] Could not reproject corrupted file [l:23 ml:24]"\??\C:\WINDOWS\SysWOW64"\[l:10]"opencl.dll"; source file in store is also corrupted

さて、問題は現在明らかです。残念ながら、ローカルコンポーネントストアも破損しているため、SFCは破損を解決できません。残念ながら、コンポーネントストアの破損を示すエラーメッセージは失われました。

だから私はDism /Online /Cleanup-Image /RestoreHealth無駄にしようとしました。ソースファイルに別の問題があることを示すエラー0x800f081fで失敗します。

2015-12-08 08:57:35, Info                  CBS    Exec: Download qualification evaluation, business scenario: Manual Corruption Repair
2015-12-08 08:57:35, Info                  CBS    Exec: Clients specified using Windows Update.
2015-12-08 08:57:35, Info                  CBS    WU: Update service is not default AU service, skip. URL: https://fe2.update.microsoft.com/v6/, Name: Microsoft Update
2015-12-08 08:57:35, Info                  CBS    WU: Update service is not default AU service, skip. URL: https://fe2.ws.microsoft.com/v6/, Name: Windows Store
2015-12-08 08:57:35, Info                  CBS    WU: Update service is not default AU service, skip. URL: https://fe3.delivery.mp.microsoft.com/, Name: Windows Store (DCat Prod)
2015-12-08 08:57:35, Info                  CBS    WU: WSUS service is the default, URL: (null), Name: Windows Server Update Service
2015-12-08 08:57:35, Info                  CBS    DWLD:Search is done, set download progress to 20 percent.
2015-12-08 08:57:35, Info                  CBS    Nothing to download, unexpected
2015-12-08 08:57:35, Info                  CBS    Failed to collect payload and there is nothing to repair. [HRESULT = 0x800f081f - CBS_E_SOURCE_MISSING]
2015-12-08 08:57:35, Info                  CBS    Failed to repair store. [HRESULT = 0x800f081f - CBS_E_SOURCE_MISSING]

エラーメッセージを見ると、WindowsがローカルのWSUSサーバーを使用するように設定されているため、Dismはリポジトリから有効なファイルを取得できません。どうにかしてWSUSを構成して必要なファイルを提供できると確信していますが、方法がわからないため、簡単な修正が必要です。(WSUSを適切に構成する方法を誰かが知っている場合は、情報を提供してください)。

/LimitAccess前述のように、ローカルコンポーネントストアも破損しているため、パラメーターを追加してローカルストレージへのアクセスを制限しても意味がありません。

この問題は2台のマシンで発生しました。リフレッシュのWindows 10の問題を解決していませんでした。


fwiwここにはanswers.microsoft.com/en-us/windows/forum/…という長いスレッドがあり、このdllに関する問題についてです。
ロリー

回答:


42

この問題を修正するには、インストールした正確なビルドのISOが必要です。

  1. ISOイメージをマウントします。
  2. Windowsイメージファイル(WIM)をマウントするための一時ディレクトリを作成します。
    mkdir C:\WIM
  3. WIMファイルをマウントします。
    Dism /Mount-Wim /WimFile:D:\sources\install.wim /index:1 /MountDir:C:\WIM /ReadOnly
  4. 次のパラメーターを使用してDismを実行します。
    Dism /Online /Cleanup-Image /RestoreHealth /Source:C:\WIM\Windows /LimitAccess
  5. 完了したら、イメージをアンマウントし、フォルダーを削除します
    Dism /Unmount-Wim /MountDir:C:\WIM /Discard rmdir C:\WIM
  6. コンピューターを再起動する必要があります。そうしないと、SFCとDISMにエラーが表示されます。

これで問題が解決するはずです。

編集
コメントで指摘したように、より直接的なアプローチがあるかもしれません。TL; DRは、私にとってはうまくいかなかったため、より詳細なアプローチです。しかし、直接的なアプローチに問題がある場合は興味があります。コメントしてください。


2
あなたはWIMをマウントすることなく、WIMを指すことができます:superuser.com/a/870956/174557
magicandre1981

3
@ magicandre1981ご意見ありがとうございます。私はそれについて読んだのですが、私はそれを試しました。それは常にエラーで失敗しました、それは0x800f081fでした。Dismコマンドラインオプションの/source:wim公式ドキュメントでパラメータに関する情報が見つからなかったのは驚きでした。
ダニエル

私は、機能を有効にするために、コンテンツにここでそれを読む:blogs.technet.com/b/joscon/archive/2013/03/29/...
magicandre1981

2
これは他のユーザーにも役立ちました:borncity.com/blog/2015/12/09/…マウントが機能することは奇妙ですが、WIMを直接渡すことはできません。
magicandre1981

4
Media Creation Toolを使用してWindows 10イメージをダウンロードした後、こちら:microsoft.com/en-ca/software-download/windows10結果のimgにはinstall.esdが含まれていたため、マウントするためにWIMに変換する必要がありましたDism。NTLiteを使用してそうしました。その後、ダニエルの指示はうまくいきました。3番目のステップの/ indexパラメーターは、復元するWindows、ProまたはHomeのバージョンを反映する必要があることに注意してください(言い換えると、Proには/ index:1を、Homeには/ index:2を使用します)
Eli B.

10

インターネット上のさまざまなフォーラムから、次の修復手順をまとめました。

  1. http://go.microsoft.com/fwlink/?LinkId=691209からMediaCreationToolをダウンロードします
  2. MediaCreationTool.exetoでWindows 10 Pro ISOをダウンロードするc:\temp\windows.iso
  3. ファイルc:\temp\windows.isoをフォルダーに抽出するために7-zipを使用するc:\temp\windows
  4. 変換install.esdinstall.wim

    Dism /Export-Image /SourceImageFile:c:\temp\windows\sources\install.esd /SourceIndex:1 /DestinationImageFile:c:\temp\windows\sources\install.wim /compress:max

  5. パラメータの次のDismコマンドに.wimファイル
    -インデックスのインデックスとWindowsバージョンを確認する/Source:wim:path_to_wim:[index]

    Dism /Get-WimInfo /wimFile:c:\temp\windows\sources\install.wim

  6. ダウンロードおよび変換されたウィンドウイメージ(wim)からヘルスウィンドウコンポーネントを復元します。

    Dism /Online /Cleanup-Image /RestoreHealth /Source:wim:c:\temp\windows\sources\install.wim:1 /LimitAccess

  7. 破損したファイルを修復します。

    sfc /scannow

    破損したファイルを修復します-成功メッセージ: Windows Resource Protection found corrupt files and successfully repaired them.

  8. Windowsを再起動する
  9. システムファイルを再度チェックして、正常に修復されることを確認します。

    sfc /scannow

    スキャン後の成功メッセージ: Windows Resource Protection did not find any integrity violations.


1
おかげで、つい最近Windows 10のインストールが修正されました。Windows10のインストールは、少し前にクリーンインストールを行ったところです。クリーンインストールを実行した後でも、すぐに失敗し、sfcが失敗するようです!とにかく、今回はそれがどれだけ固定されているかがわかります!Microsoftが1511ビルドnews.softpedia.com/news/の既知の問題と思われるため、最新のwin 10更新でまだ修正していないと思います。 Windows ISOを抽出しました。
-daveangel

ご回答ありがとうございます。グラフィックディレクトリをインストールすると、システムファイルチェッカーが破損します。ただし、SFC / SCANNOWを実行するだけでシステムを修復するのに十分です-winsxsフォルダーにあるopencl.dllの正しいバージョンが利用可能になりました。PS:確かに、ブータブルISOをダウンロードする場合、手順4は省略できますが、メディア作成ツールはESDファイル(Windows 10のアップグレード用に設計されたバージョン)のみをダウンロードします。メディア作成ツールは、正しいインストールメディアを自動ダウンロードするのに最適です:-)
kapitanrum

ステップ4(WIMファイルの抽出)がそれを行いました。優れたガイド。ありがとう。
ラビワラウ

1
ステップ6は、エラー0x800f091f「ソースファイルが見つからない」と私のために失敗した
simpleuser

エラー0x800f091fをGoogleで検索したところ、.NET Framework 3.5のインストールに問題がある可能性があります。バージョン4以降しかない場合は、バージョン3.5もインストールしてください。MSインストールガイドをお試しください:msdn.microsoft.com/en-us/library/hh506443
v

4

ESDは「暗号化された」WIMではなく、非常に異なって高度にパック/再エンコードされた(より複雑な構造を持つ)WIMです。

WIMは、高速ハフマン圧縮を使用して、4KBまたは16KBの分割不可能なユニットによって「高速」圧縮されます。ESDは、ブロックサイズの制限なしに、より高度なLZベースの圧縮を使用します。この圧縮では、圧縮がグローバルであるため、イメージを読み取り/書き込みモードで開くことができません(アーカイブ内の各ファイルは個別に圧縮されなくなり、複数の論理ファイルがセグメントの実際のストレージを共有して、より高い圧縮率に到達できます)レベル、特にアイコンのコレクションなどの共通のヘッダー部分、またはデジタル署名データ、著作権表示、HTMLヘッダー、埋め込みスクリプトなどの部分を持つ多くの小さなファイルがある場合)。

SWMは、(大まかな)最大サイズの小さなサイズの複数のファイルに分割されたマルチパートWIMですが、書き込み可能であり、複数のDVDに保存できます。

CBSプロバイダーは、WIM、CAB、ZIP、VHD、VHDX、マルチセッションISOなど、DISMでサポートできるいくつかのアーカイブ形式を許可します。 Windows 8では、WIM形式のみがサポートされていましたが、画像は大きくなりました)

ESD形式は、Windows 10の完全な多言語配布が3GB未満の1枚のDVDに収まるように調整されています...

ESDをWIMに変換できますが、結果ははるかに大きなファイルになります。逆の変換も可能です(そのため、展開されたWIMで読み書きできるようになります)。これを再び新しいESDにパックします。ESDをWIMに解凍するのは比較的高速ですが、WIMをESDに圧縮するには大量のCPUリソースが必要であり、はるかに長くなります(そのため、ESDに直接読み書きすることはできませんが、WIMで適度に簡単に行うことができますCPU使用率)。

DISMでESDを「マウント」する場合、最初に行うことは、ESDを一時ストレージに拡張し、WIMのように処理して、このローカルストレージのファイルを更新できるようにすることです。マウントを解除するには、WIMの再作成(非常に高速)と、ESDへの再パック(非常に低速)の2つの手順が必要です。


2

次のようにopengl.dllの問題を解決しました。

  1. Windows 10イメージをマウントします。

  2. Dism / Online / Cleanup-Image / RestoreHealth / Source:esd:F:\ sources \ install.esd \ 1 \ Windows \ WinSxS \ wow64_microsoft-windows-r..xwddmdriver-wow64-c_31bf3856ad364e35_10.0.10586.0_none_3dae054b56911c22 \

  3. sfc / scannow

がんばろう!


6
ESD ISOはWindowsイメージを復元しません。WIM ISOのみを使用する必要があります。これは、microsoft.com
en

2

私はこれらの道を数日かけて行き、最終的に私の状況の解決策を見つけました。Windows 10バージョン1511ビルド10586.545を実行しています。これが私の進歩です:

  1. これは、Windows Updateのエラー(エラー0x800705b4)で始まりました。
  2. 次に、Windows Updateのトラブルシューティング、WUResets、ウイルス対策の無効化などを行ってこのエラーを追跡しました。このリンクは、その問題のオプションを提供する良い記事です (私は助けにはなりませんでしたが)
  3. その後、DISMとSFCのパスを下りました。このServerFault投稿は、その試みにおいて非常に役立ちました。残念ながら、これらのオプションはどれも役に立ちませんでした。壊れたopencl.dllファイルがあると言われ続け、さまざまな種類のDISM / RestoreHealthを実行できませんでした。0x800f081fを取得し続けました(ソースファイルが見つかりませんでした)
  4. 次に、opencl.dllをクリーンなISOからC:\ Windows \ SysWOW64に手動でコピーしようとしました。所有権の取得などを行った後でも、これは機能しませんでした。最終的に、デバイスマネージャーでNVIDIA GeForce GPUドライバーを無効にし(Intelドライバーを表示したままにします)、クリーンなopencl.dllをC:\ Windows \にコピーできましたSysWOW64。

ここから、Windows Updateが再び機能し始めました。

要約すると、これらのエラーに苦しんでいて、何も機能しないように思える場合は、NVIDIA GeForceドライバーを無効にしてから、これらの手順のいくつかを試してください(またはクリーンバージョンのDLLを手動でコピーします)。


1

ローカルコピーがなく、別の理由でISOファイルをダウンロードできないため(ISOはインストールしたWindows 10タイプではありませんでした)ここに使用した修正プログラムソリューションがあります。」:

SFCFixは、破損したdllファイルを修復/交換することにより、この問題を解決できる素晴らしい小さなユーティリティです。

SFCFixの実行可能ファイルがダウンロードされたら、デスクトップに移動します。

SFCFixが必要なすべてを含むZIPファイルの修復するためには、/あなたの壊れopencl.dllファイルを置き換えます。Webサイトから、ZIPファイルにアクセスするために登録するように求められます。完全に無料なので、登録する必要があります。

sfcfix.zipをダウンロードしたら、デスクトップに移動します。開いているプログラムをすべて閉じます。SFCFixプログラムの実行可能ファイルにZIPファイルをドラッグしてから、リリースします。

SFCFixが起動し、破損したdllファイルの修正の適用を開始します。その魔法を働かせてください。

SFCFixが完了するとSFCFix.txt、デスクトップ上に名前の付いたファイルが作成されます。このファイルを開き、破損したopencl.dllファイルの修復/交換にSFCFixが成功した場合、

ホットフィックスZIP なしで SFCFix.exeファイルを実行すると、処理速度が非常に遅くなり、ZIPファイルのドラッグアンドドロップ方式で実行する必要があり、結果はほとんど瞬時になります。


0

DISM technetの記事に従って、esdイメージを利用できるはずです。ESD(Electronic Software Delivery)イメージは、単にWIMの暗号化バージョンであり、WIM形式よりもはるかに優れた圧縮アルゴリズムを使用することもあります(通常、約1.5倍の圧縮率)。

すべてがESDであるが、WIMを使用する場合は、DISM exportコマンドを使用してESDをWIMに変換できます。exportまたはcaptureコマンド内で/ compress:recoveryを指定することにより、WIMをESDに変換することもできます。一方から他方への変換はリソースを大量に消費するため、数年前に記述されたMSFNフォーラムで入手可能なESDからWIMへのスクリプトを利用することをお勧めします。スクリプトを使用すると、エクスポートに通常使用される90%以上に対して、システムリソースの50%のみがエクスポート専用になります。


0

別のWindows 10 Pro x64マシンに移動して、opencl.dllファイルを(同じディレクトリから)コピーしました。次に、不良なopencl.dllの所有権を取得し、opencl.oldに名前を変更して、新しいものにコピーしました。セーフモードで再起動し、sfc / scannowを実行すると、正常に戻ります。私の場合、これはcbs.logにリストされている唯一の不良ファイルでした...破損したファイルが多数あり、個別にパッチを適用したくない場合は、sfcを動作させる方が良いかもしれません。ただし、問題が1つのDLLだけである場合は、単純なコピーが機能しているようです。


0

install.esdCreator's Updateインストールメディアのインストールイメージ()は、ここで説明するDISMメソッドと互換性がないようです。0x800f081fどの種類のコマンドを入力しても、エラーが発生します。またinstall.wim、ESDファイルから正しいものを抽出するのにも役立ちません。最後に、私はWIMファイルをマウントすることもできませんでした。

https://www.sysnative.com/forums/windows-10-a/22564-dism-error-0x800f081f.html#post179723のディスカッションも参照してください。

更新:永続的なエラーは、dismコマンドまたはwimファイルとは関係ありません。これは、Microsoft-Windows-TestRoot-and-FlightSigning-Packageという名前のパッケージで、使用可能なソースが利用できないためです。ファイルはC:\ Windows \ Servicing \ Packagesにあり、そこから移動する必要があります。また、レジストリには削除する必要がある2つの参照があります。詳細については、リンクされたsysnativeスレッドを参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.