システムの復元は正しく完了しませんでした(0x80070017) ~ MsSp7en-US.lex

こんにちは。NECのwindows8.1のデスクトップPCがWindows Update後に起動しなくなりましたので、いろいろしてみました。

■状況

起動時にブルースクリーンになり、修復モードで再起動する。
停止コード:0xc000021a



■対応1: chkdsk

修復モードからコマンドプロンプトが起動できたので、chkdskを実行しました。



一応、通常終了して、ファイルシステムが修正されました。

■対応2: システムの復元

調べてみると停止コード:0xc000021aへの対応として、システムの復元でうまくいった事例がありました。

直近の復元ポイントがあったので、システムの復元を試みました。



しかし、結果としては、「不明なエラー(0x80070017)」になり、「c:\windows\globalizaiton\els\spelldictionaries\MsSp7en-US.lexを抽出できませんでした」と表示されました。

対応3:スタートアップ修復

スタートアップ修復においても正しく修復されませんでした。



■結果

とりあえず、時間もなかったのでそのままにしました。
「PCのリフレッシュ」などでは戻りそうな感じでしたが、「MsSp7en-US.lex」について調査後に対応することにしました。

■MsSp7en-US.lexとは

MsSp7en-US.lexは、windowsのosの自然言語コンポーネント(Natural Language Components)に関連したdllです。

自然言語コンポーネントが正常に動作するのに必要なシステムファイル(Microsoft English Natural Language Server Data and Code)です。

類似したdllには、MSSP7EN (Spelling)、MSTH7EN (Thesaurus)、MSHY7EN (Hyphenation)があり、windowsやofficeにおいて綴りや文法エラーのチェックなどの機能を提供しています。

■MsSp7en-US.lexにエラーの発生する原因


  1. プログラムをアンインストールしたときに、一緒に削除されてしまった
  2. プログラムをインストールした時に、他のプログラムと互換性のバージョンに上書きされてしまった
  3. レジストリ・エントリの整合性が崩れてしまった
  4. ハードディスクに何らかの問題がある


■対処法

1.まずはシステムのウィルススキャンをする

エラーがマルウェアに由来するものでないことを確定させます。

2.mssp7en.lexをレジストリに登録し直す

通常、プログラムがインストールされると、レジストリにファイルが登録されます。
もし、正常に登録されていない場合、コマンドから登録し直すことで、自然言語コンポーネントが改善することがあります。

regsvr32 C:\Windows\System32\mssp7en.lex

mssp7enのファイルパスはシステムによって違うので、要確認です。

正常に登録された場合は、メッセージウィンドウで確認できます。



3. システムファイルの修復をする

ウィンドウズのシステムファイルが破損していたり、なくなってしまった場合、それを置き換えるのにコマンドsfcはとても有効です。

sfc /scannow