Windows 2000は、Windows NT 4の後継であるWindows NTバージョン5以上のものです。マイクロソフトは、Windows 2000の開発サイクルにおいて、前身であるWindows NT 4の多くの問題点に対処するために、膨大な時間と労力を費やしました。Windows NTの最大の強みの一つは、Windows 9xおよびWindows NT 3.5環境に比べて信頼性が向上したことです。しかし、多くのユーザーは、Windows環境を制御できず、DLL、破損または不整合のあるシステムファイル、不良ドライバ、その他のアプリケーション関連の問題を解決できないことに不満を抱きました。恐ろしいブルースクリーンやその他のシステム障害は、特定と解決の両方が困難であることが判明しました。
Windows 2000の開発に伴い、マイクロソフトは、ドライバやソフトウェアの問題を特定し、解消、あるいは少なくとも軽減するのに役立つ、新規および改訂版のツール、ユーティリティ、コマンドライン機能を多数提供しました。これらの新機能は、Windows 2000ユーザーに新たな安定性を提供するとともに、コマンドラインとGUIの両方の方法でシステムの問題を特定し、解決するための、新しく改良された方法を提供します。このDaily Drill Downでは、Windows 2000 Professionalの新規および改訂版トラブルシューティングツールの中から、最も重要なものを紹介します。これらのツールの多くは、Windows 2000 Serverでも利用可能です。
Windows 2000 の改良
Windows NT 4.0 および 9x では OS 環境の整合性を維持するのに問題があったため、マイクロソフトでは Windows の信頼性に関する大きな問題点のいくつかを解決するために並々ならぬ努力を払いました。実際、マイクロソフトは社外に目を向け、サードパーティのソフトウェア テスターである National Software Testing Laboratories (NSTL) に Windows 2000 の信頼性の評価を依頼しました。このテストにより、Windows 2000 は以前のバージョンに比べて大幅に安定しています。NSTL は理想的なラボ環境の外で顧客のインストールをテストし、実際のパフォーマンス統計を提供しています。NSTL ベンチマークによると、Windows 2000 Professional は NT Workstation よりも 3 倍、Windows 98 よりも 13 倍安定しています。このレベルの信頼性を実現するために、マイクロソフトでは初期のマイクロソフト環境とサードパーティのソフトウェアおよびドライバ ベンダーの両方を保護するために、数多くの重要な改良を盛り込みました。
Windows 2000 の厄介な問題の一つは、Windows 2000 環境に古い Windows NT または 9x プログラムをインストールして実行できないことです。この問題を解決するために、マイクロソフトは、問題の原因となっているインストール プログラムに適切なサービス パックまたはオペレーティング システムがインストールされていると思わせるユーティリティを開発しました。NT 4 で大きな問題だったのは、NT カーネルで実行されるサードパーティ製のドライバの問題でした。カーネルはハードウェアと直接通信するため、ドライバの信頼性が向上すると、Windows 2000 の安定性も向上します。ドライバに関する 2 つ目の懸念事項は、NT のトラブルシューティング担当者が追跡するのが難しい DLL の競合です。DLL の問題は、多くの場合、ドライバ アプリケーションが適切に作成されていないことが原因です。対処が必要なもう 1 つのドライバの問題は、新規または更新されたドライバのインストールによって発生するファイル破損、特にシステム ファイルの破損です。
Windows 2000ソリューション
このDaily Drill Downで紹介するツールはすべて、Windowsファイル保護の目的に関連しています。以前のWindows製品にも多くのツールがありましたが、Windows 2000でファイル保護のために導入された重要なツール/ユーティリティは次のとおりです。
- アプリケーション互換性ツール
- システムファイルチェッカー
- ドライバー検証
- 回復コンソール
- デジタル証明書
アプリケーション互換性ツール
私が経験したソフトウェアの問題の 1 つは、特定のインストール プログラムが Windows 2000 を NT または Windows 9x のアップグレードとして認識できないことでした。Windows NT 用に作成された多くのソフトウェア プログラムは、インストールを続行する前に特定のサービス パックを探すように設計されています。そのようなアプリケーションの 1 つを Windows 2000 にインストールしているときに、イライラさせられると同時に面白いエラー メッセージが表示されました。インストール プログラムによって、現在のオペレーティング システム (Windows 2000) が古すぎるため更新する必要があることが通知されました。Microsoft はこの状況を十分に認識しており、必要なバージョンのオペレーティング システムが実行されているとアプリケーションに思わせるアプリケーション互換性ツールを開発しました。私は、アプリケーション互換性ツール (Apcompat.exe) がこのような状況での有効な回避策であることがわかりました。このユーティリティを使用すると、NT 4.0 Service Pack 3 から 5、さらには Windows 9x をシミュレートできます。
Apcompat.exe を見つけるには、Windows 2000 CD の \Support ディレクトリを参照してください。コマンドの構文は次のとおりです:
Apcompat [-?] [-v バージョン名] –x プログラムパス] [-d] [-t] [-g] [-k]
-? はコマンドライン構文を表示し、 -v <version name> は要求されたオペレーティングシステム/バージョン番号を指定します。値は次のとおりです。
- 1 (NT4 SP3)
- 2 (NT4 SP4)
- 3 (NT4 SP5)
- 4 (Windows 98)
- 5 (Windows 95)
-x <プログラムパス> は実行するプログラムのパス/名前を指定します。-d はヒープマネージャを無効にします。-t は指定されたプログラムに \Temp フォルダを使用することを指定します。-g はディスク容量の検出を修正します。-k はアプリケーションの互換性設定を保持(保存)します。このプログラムは Windows インターフェースでも実行できます(図 A)。
図A |
![]() |
アプリケーション互換性ツールは、ここに示すように、コマンド ラインまたは Windows 内で実行されます。 |
プログラムを正常にインストールした後で元のエラーが再度発生する場合、アプリケーションは互換性がないため、Windows 2000 では実行できません。(注: このユーティリティは、ハードウェアに直接アクセスしようとするプログラムや、仮想デバイス ドライバー (VXD) を使用する Windows 9x プログラムには役立ちません。)
ヒープマネージャを無効にする理由は何ですか?
一部の古いプログラムは、Windows 2000のメモリ管理と競合する方法でメモリを使用します。ヒープマネージャを無効にしてプログラムを実行すると、Windows 2000のメモリ管理との競合は回避されますが、メモリの利用効率は低下します。
ディスク容量の検出を修正する理由は何ですか?
Windows 2000は、以前のバージョンで存在していた2.1GBの壁を超える領域を検出し、利用できます。アプリケーションが利用可能なディスク空き容量を別のデータ型で保存する場合、実行に必要な容量が不足します。
アプリケーション互換性ツールの詳細については、Microsoft サポート技術情報の記事 Q251062 を参照してください。
システムファイルチェッカー
以前のバージョンのWindowsで最も問題となっていた点の一つは、特にドライバのインストール時に、ソフトウェアによる重要なシステムファイルへの不正な変更を追跡または捕捉できなかったことです。Windowsを改善するため、MicrosoftはWindowsファイル保護機能を追加しました。Windows 2000では、オペレーティングシステムが使用する重要なシステムファイルのコピーが保持されます。
システムファイルチェッカーユーティリティ(Sfc.exe)は、システム管理者が実行できるコマンドラインユーティリティです。保護されているシステムファイルが有効かどうかを確認し、有効でない場合はキャッシュ内のバージョンに置き換えます。システムファイルチェッカーは、プログラムのインストール中にユーザーによる削除や破損からDLLを保護するため、すべてのDLLのコピーを保持しています。多くのインストールプログラムは、システムファイルを上書きまたは独自のバージョンに置き換える前に、既存のシステムファイルのバージョンを確認していません。新しくインストールされたアプリケーションは正常に動作しているように見えても、元のシステムファイルを必要とする別のアプリケーションは正常に動作しないか、全く動作しない可能性があります。「新しいDLLが既存のDLLよりも古い」という恐ろしいメッセージに遭遇したことがある人はどれくらいいるでしょうか?あるいは、共有DLLを変更すると別のアプリケーションに影響を与える可能性があるというメッセージに遭遇したことがあるでしょうか?元のDLLをさかのぼって探すほどイライラすることはありません。この問題を軽減するために、ベンダーは自社製品にWindows 2000認定ロゴを付与する条件として、Microsoft Windowsインストーラを利用する必要があります。これにより、インストールソフトウェアによる競合が最小限に抑えられます。
一度設定すると、コンピュータの再起動時にシステムファイルチェッカーが実行されます。保護されたファイルが上書きまたは削除されたことを検出すると、システムファイルチェッカーは%systemroot%\system32\dllcacheフォルダから正しいバージョンのシステムファイルを取得します。コマンドの構文を確認するには、ここをクリックしてください。
sfc [/scannow] [/scanonce] [/scanboot] [/cancel] [/quiet] [/enable] [/purgecache] [/cachesize=x]
これらのパラメータの完全な定義については、Microsoft サポート技術情報の記事 Q222471 を参照してください。
%systemroot%\system32\dllcache フォルダが破損した場合(私はまだそのようなケースを経験していませんが)、dllcache ディレクトリの内容を修復するには、[/scannow]、[/scanonce]、[/scanboot] オプションを使用します。私は個人的に [/scanboot] オプション(コンピュータの再起動時に保護されたすべてのファイルをスキャンする)を使用していますが、Windows の起動プロセスにほとんど悪影響は見られませんでした。実際、投資対効果と安心感を考えると、Windows 2000 を使用するすべての人にとって、このオプションは標準となるはずです。
ドライバ検証ツール
システムファイルチェッカーが破損したシステムファイルを識別して修復するのに対し、ドライバ検証ツール(Verifier.exe)は、1つまたは複数のカーネルモードドライバを監視し、不正な関数呼び出しやシステム破損を監視できます。Windows NT 4.0では、多くのドライバエラーが検出されず、恐ろしいブルースクリーン(死の画面)が表示され、エラーログにはほとんど有益な情報が記録されませんでした。
ドライバ検証ユーティリティを導入することで、Windows 2000はほとんどのバグを即座に検出します。ドライバエラーの一般的な原因の一つは、カーネルコードまたはバッファポインタへの不正なメモリアドレス指定です。デバイスドライバはオペレーティングシステムをハードウェアリソースに接続するため、このようなバグが検出されないと致命的となる可能性があります。
Driver Verifier を実行するには、Regedt32.exe を使ってレジストリを編集する方法(ただし、熟練した専門家向け)と、Verifier.exe を実行する方法の 2 通りがあります。レジストリ版の Verifier の詳細については、Microsoft サポート技術情報の記事 Q244617 をご覧ください。レジストリを編集するには、レジストリと関連するドライバーの両方に関する深い知識が必要です。
検証ユーティリティには、コマンドラインとGUIの両方のインターフェースが用意されています。GUIインターフェースでは、疑わしいドライバーや監視対象ドライバーを簡単に選択できます。ドライバー検証マネージャーは%WinDir%\System32フォルダにあります。図BにGUIインターフェースを示しており、1つのドライバーがチェック対象としてマークされています。
図B |
![]() |
ドライバー検証マネージャーを使用して、不安定な Windows 2000 ドライバーを確認します。 |
システムを再起動すると、Driver Verifier は、監視対象として指定したドライバーの問題を監視します。その後エラーが発生した場合は、ブルースクリーンのバグチェックエラーが表示されます。(エラーコードの一覧は、ナレッジベースの記事 Q244617 をご覧ください。)このような問題の性質上、問題となっているソフトウェアのベンダーに連絡してアップグレードまたは修正プログラムを入手することをお勧めします。ベンダーが問題を特定して解決できるよう、生成されたエラーのコピーを必ず添付してください。十分な時間が経過してもエラーが発生しない場合は、問題のドライバーはおそらく正常であり、他の疑わしいドライバーも確認できます。
私自身はこの機能を利用する必要はなかったのですが、この新しいユーティリティがシステムの問題の解決に非常に役立ったと感じている人が何人かいます。
回復コンソール
Windows 2000 回復コンソールを使用すると、管理者はコマンドライン セッションからシステムにアクセスできるようになります。これは、破損したファイルの置き換え、MBR の修復、サービスの無効化/有効化などの操作を実行するために必要となります。アクセスは、ルート ディレクトリ、ログオンしたインストールのシステム ディレクトリ、および起動に使用したリムーバブル ドライブに制限されることに注意してください。回復コンソールは既定ではインストールされません。Windows 2000 CD からインストールすると、回復コンソールのオプションがブート メニューに追加されます。回復コンソールは、インストール CD またはブート ディスクから実行することもできます。
回復コンソールの詳細については、TechProGuild の以下の Daily Drill Downs を参照してください。
- 「Windows 2000の回復コンソールオプションの使用」
- 「回復コンソールでWindows 2000システムを素早く修復する」
デジタル証明書
前述の各ユーティリティでは、インストールプログラムの不具合などによって発生したシステムの問題を特定し、修復する方法について説明しました。Windows 2000に搭載されているドライバの信頼性を確保するため、Microsoftはドライバ署名プログラムの一部としてデジタル証明書を導入しました。
デジタル証明書を取得するには、ドライバは一連の厳格なテストに合格する必要があります。厳格なマイクロソフトのテストに合格したドライバは署名され、ハードウェア互換性リストに追加されます。承認され署名されたドライバは、自社製品にWindows 2000互換性ロゴを表示できます。Windows 2000 CD-ROMに収録されているすべてのドライバはデジタル署名されており、ハードウェア互換性リストに追加されています。署名されていないドライバでも正常に動作する可能性がありますが、動作保証はありません。また、ベンダーのアップデートにはエラーが含まれている可能性があり、マイクロソフトへの認証のために再提出されていない可能性があります。
Windows 2000には、コンピュータ上のドライバの状態を確認するための新しいツール、ファイル署名検証ユーティリティ(Sigverif.exe)が搭載されています。コマンドプロンプトで「sigverif」と入力すると、表示される画面に従って操作を進められます。Sigverif.exeはSigverif.txtというログファイルを生成します。このログファイルはメモ帳でいつでも確認できます(図C参照)。ログファイルは長くなる可能性がありますが、非常に有益な情報です。
図C |
![]() |
ファイル署名検証ユーティリティによって生成される詳細なログにより、舞台裏の様子を垣間見ることができます。 |
ファイル署名検証ユーティリティは、システムに既にインストールされているドライバ向けに設計されています。しかし、将来インストールするドライバについてはどうでしょうか? Windows NT 4.0 の問題の一つは、ドライバが何の介入もなくインストールされてしまうことでした。そのため、多くの未知の問題やブルースクリーンが発生しました。Windows 2000 には、インストール時に新しいドライバをどのように処理するかを指定できる新しいユーティリティ「ドライバ署名オプション」が搭載されています。
「ドライバ署名オプション」ダイアログボックスは、コントロールパネルの「システム」アプレットからアクセスできます。「ハードウェア」タブを選択し、「ドライバ署名」ボタンをクリックします。署名されていないドライバの処理方法は3種類あります(図Dを参照)。
- 無視 - ファイルの署名に関係なく、すべてのファイルをインストールします (デフォルト)
- 警告 - 署名されていないファイルをインストールする前にメッセージを表示します
- ブロック - 署名されていないファイルのインストールを防止します
図D |
![]() |
Windows 2000 でドライバのインストールを処理する方法を選択します。 |
少なくともデフォルトのオプション「警告」を使用することをお勧めします。私はこのオプションを使用していますが、サポートされていないドライバーがまだ数多く存在することに驚きました。デバイスがハードウェアインストールウィザードでインストールされるか、プラグアンドプレイでインストールされるかに関係なく、このユーティリティによってドライバーの署名がチェックされます。
結論として、
MicrosoftはWindows 2000に、オペレーティングシステムの信頼性と安定性を確保するために、非常に便利なユーティリティを多数実装しています。この主要なユーティリティの簡単な紹介は、Windows 2000のこれらの新機能を詳しく理解し、新しいオペレーティングシステムをより適切にサポートするための準備を整えるきっかけとなるでしょう。
著者および編集者は、本書の内容の作成に細心の注意を払っていますが、明示的または黙示的な保証は一切行わず、誤りや脱落について一切の責任を負いません。いかなる損害についても責任を負いません。変更を行う前に、必ず検証済みのバックアップを作成してください。