調子が悪いアプリは完全に消す


1週間ほど前から、あるアプリが終了時にエラーを吐くようになってました。エラーの内容はntdll.dllの書き込み違反。どう見てもシステムファイルです。ちぃっとヤバイ雰囲気。

でしたが、結局アプリを完全に削除したら直ったようす。解凍し直したファイルを上書きじゃなくて、いったん全部削除。わかってしまえば至極当然な、iniファイルの異常だったようです。

しかしそこへたどり着くまでかなり紆余曲折が。:oops:

最初は特にこれといった心当たりはなかったのですが、とりあえずntdll.dllを問題ないものに入れ替えて…と調べてみたらセキュリティパッチが適用されてる様子。ということはCDからじゃ持って来れなさそう。マイクロソフトのサポートによれば最新のサービスパックから持ってこい…ってWindows2000なのでSP4なんですけど。絶対その後に更新されてそうです。

とはいえ他に方法はないもんかしら?とダメ元でドライブを検索してみると、いくつかヒットします。なんかアンインストール情報っぽいですがひとつだけそのまま使えそう…とパスをよく見ると、どう見てもSP4のアーカイブファイルです。本当にあr(略

結局SP4のファイル使うしかないのかーと思いつつさらにググってみると2000以降のシステムファイルはキャッシュされてるらしいなんて話が。でも動きを見てるとキャッシュのほうも壊れてそうな気が…なんてつぶやきながら探してみたんですが杞憂でした。

[tegaki]だってキャッシュ自体みあたりません。[/tegaki]:lol:

どうも削除しちゃってるようです。キャッシュフォルダ自体削除できるらしいので、ドライブの容量ケチって消しちゃったのかも。というわけでSP4のファイルを使うこと決定。でも、システムファイルってどうやって入れ替えるの?と、さらにググるとセーフモードならいけるらしい。他のページではコマンドプロンプトから、というのも。

とりあえずはセーフモードだろう、ってことでセーフモードで起動してみたんですが、エクスプローラーじゃダメ。ならばとコマンドプロンプトで再起動。オリジナルを.orgへリネームしてSP4のアーカイブからファイルをコピーしました。

これで大丈夫だろうと通常モードで起動して問題のアプリを起動してみたら、それでもエラー。なら他にできること無いなぁ、とシステム自体の再インストールをちょっぴり考えたところでiniファイルがおかしいんじゃないの?と思いついてやってみたらビンゴ。消す前にiniファイル開いてみたんですが、ざっと見た限りは問題なさそうだったんだけどなぁ。変なゴミでもついてたのかも。

そんなわけで解決はしたものの、ぬれぎぬで入れ替えたntdll.dllを元に戻さないといけません。再度セーフモードに…と思ったんですがダメ元で通常起動した状態のコマンドプロンプトからやってみました。やり方を紹介してるところではセーフモードで、って書いてなかったし。

そしたらなんとアッサリ書き換え完了。ただ.orgファイルをrenameだと蹴られました。copyならOK。/yオプションつけたけどなしでもいけるかは不明です。いやー、オリジナルを残しておいてよかった。というわけで今回何が言いたかったかというと

  • エラーを吐くアプリは、一度設定から全部消す。
  • システムファイルでも起動中に入れ替え可能。たぶん一部だろうけど。

の2つでした。イヤまぁ、あたりまえの話ですいません。:grin:


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です