[ニュースレターアーカイブ ^][< Vol. 4、No. 3][Vol. 5、No. 2 >]

Systems Internals ニュースレター Vol. 5、No. 1

http://www.sysinternals.com
Copyright (C) 2003 Mark Russinovich


2003 年 2 月 19 日 - 本号の内容:

  1. 論説

  2. SYSINTERNALS の新機能

    • Filemon v5.01
    • DebugView v4.2
    • NewSID v4.02
    • PsShutdown v2.01
    • Autoruns v2.02
    • ShareEnum v1.3
    • TCPView v2.31
    • Bluescreen v3.0
    • Microsoft の Sysinternals
  3. INTERNALS INFORMATION

    • 新しい XP/Server 2003 Internals のビデオ
    • Mark と David Solomon によるシアトルでの内部構造とトラブルシューティングの講義
    • Windows 2000 SP3 Common Criteria 認定
    • Visual Studio: LastError を監視する
    • LameButtonText レジストリ値の説明
    • Windows の開発の歴史
    • クラッシュ ダンプ分析の概要

Sysinternals ニュースレターは、http://www.winternals.com. の Web で Winternals Software によって後援されています。 Winternals Software は、Windows NT/2K/XP 用の高度なシステム ツールの主要な開発者およびプロバイダーです。 Winternals Software 製品には、ERD Commander 2002、NTFSDOS Professional Edition (DOS 用の読み取り/書き込み NTFS ドライバー)、および Remote Recover が含まれます。

Winternals は、最も高速で最も完全なエンタープライズ デフラグ ツールである Defrag Manager バージョン 2.10 を発表したことを誇りに思っています。 NT、Windows 2000、または Windows XP システムにクライアント ソフトウェアをインストールしなくても、シンプルな MMC スナップインから Windows エンタープライズ全体のデフラグ スケジュールを管理できるようになりました。 詳細については、または 30 日間の試用版を要求するには、http://www.winternals.com/es を参照してください。

皆さん、こんにちは。

Sysinternals ニュースレターへようこそ。 現在、ニュースレターの購読者数は 36,000 人です。

David Solomon が今月の論説のゲスト著者であることをお知らせします。ここでは、いくつかの Sysinternals ユーティリティを使用した実際のトラブルシューティングの経験について説明しています。

その内容に興味があると思われるお友だちにニュースレターをお渡しください。

ありがとうございます。

-Mark

論説 - David Solomon 作成

私には新しいモットーがあります。それは、"疑わしいときは、Filemon と Regmon (そして Process Explorer) を実行せよ" というものです。

説明に入る前に、このゲスト記事を書くように招いてくれた Mark に感謝します (もちろん、これは彼のツールがどれほど役に立っているかについてのすばらしいレポートなので、彼が私に特別な計らいをしているというものではないでしょう)。

多くの皆さんがご存知のように、Mark と私は一緒に Windows の内部構造について人々を教育するお手伝いをしています。 最新のプロジェクトは、Windows XP と Windows Server 2003 のカーネルの変更に対応するために、昨年作成した Windows 2000 Internals のビデオ チュートリアルを更新することでした。そして、次回の Windows Internals の公開クラスはワシントン州ベルビューで 4 月 21 日から 23 日に開催されます。両方について詳しくは、このニュースレターの関連するセクションを参照してください。 そして、多くの方が質問したように、現在は「Inside Windows 2000 for XP & Server 2003」の書籍の作成過程にあります (仮の公開日は夏の終わりです)。

では一体なぜ、私は Sysinternals ツールに熱中しているのでしょうか。 それはここ 1 年ほどで、このツールがなければ解決できなかったアプリケーションやシステムのさまざまな問題のトラブルシューティングと解決に、ツールが役立ったからです。 もちろん、これらのツールでトラブルシューティングできた、まったく異なる関連しない問題の数は、言い表せるものではありません。 役に立たないと思ったときでも、役に立ちました。 したがって、私の新しいモットーは、「疑わしいときは、Filemon と Regmonを実行せよ」となります。

これらのツールには、次の 2 つの基本的な手法を適用できることを見つけました。

  1. Filemon/Regmon のトレース内で、アプリケーションが失敗する前に実行した最後の処理を見つけます。 これが問題を示している可能性があります。
  2. 失敗したアプリケーションの Filemon/Regmon トレースと、動作しているシステムのトレースを比較します。

最初の方法では、Filemon と Regmon を実行し、次にアプリケーションを実行します。 エラーが発生した時点で、Filemon と Regmon に戻り、ログ記録を停止します (Control キーを押しながら E キーを押します)。 次に、ログの末尾に移動し、アプリケーションのエラー (クラッシュ、ハング、または何らかのエラー) が発生する前に実行された最後の操作を見つけます。 最後の行から始めて後戻りしながら、参照されたファイルやレジストリ キーを確認します。多くの場合、これが問題を特定するのに役立ちます。

あるシステムでアプリケーションが失敗したが、別のシステムで動作する場合は、2 番目の方法を使用します。 動作中のシステムと障害が発生したシステムにあるアプリケーションの Filemon および Regmon トレースを取得し、出力をログ ファイルに保存します。 次に、Excel で正常なログ ファイルと異常なログ ファイルを開き (インポート ウィザードの既定値を使用します)、最初の 3 つの列を削除します (そうしないと、比較ではすべての行が異なるように表示されます。これは、最初の 3 列には実行する度に異なる情報 (時刻やプロセス ID など) が含まれるためです)。 最後に、結果のログ ファイルを比較します (たとえば、WinDiff を使用します。これは Windows XP では、XP の CD からインストールできる無料のサポート ツールに含まれています。Windows NT4 と Windows 2000 の場合は、リソース キットから見つけることができます)。

次に、実際の例をいくつか示します。

Microsoft Office 97 がインストールされている Windows 2000 ワークステーションでは、Word の開始直後にワトソン博士が起動します。 ワトソン博士が起動する前に、実際にはいくつかの文字を入力できますが、何か入力したかどうかにかかわらず、開始から数秒以内に Word がクラッシュします。 もちろん、ユーザーは Office のアンインストールと再インストールを試みましたが、問題は解消されませんでした。 そこで、私は Filemon と Regmon を実行し、Word がクラッシュする前に実行した最後の処理を見てみました。 Filemon トレースに示されていた Word での最後の処理は、HP プリンターの DLL を開いたことでした。 結局、ワークステーションにはプリンターがありませんでしたが、ある時点で明らかに行ったようです。 そこで、システムから HP プリンターを削除すると、問題は解消されました。

明らかに、Word が起動時にプリンターを列挙することにより、この DLL が読み込まれ、今度はそれが原因でプロセスが停止しました (なぜこれが起こったのかはわかりませんが、おそらくユーザーは偽のバージョンをインストールしました。しかし、システムにプリンターがないため、実際に問題にならなくなりました)。

別の例では、Regmon のお陰で、ユーザーは Windows XP デスクトップ システムの完全な再インストールを行う事態から救われました。 この現象は、ユーザーが最初にインターネット接続を手動でダイヤルしなかった場合、Internet Explorer (IE) が起動時にハングするというものでした。 このインターネット接続はシステムの既定の接続として設定されていたため、IE を起動すると、インターネットへの自動ダイヤルアップが発生しているはずでした (IE は起動時に既定のホーム ページを表示するように設定されていたため)。 私は新しいモットーに従って Filemon と Regmon を実行し、IE がハングしたログの時点から後戻りしながら見ていきました。 Filemon には何も異常が表示されていませんでしたが、Regmon のログにはキー HKEY_CURRENT_USER\Software\Microsoft\RAS Phonebook\ATT へのクエリが示されていました。 ユーザーは、AT&T ダイヤラ プログラムを一度インストールしたが、それをアンインストールし、ダイヤルアップ接続を手動で作成したと私に言いました。 ダイヤルアップ接続の名前は "ATT" ではなかったため、これがアンインストールからのレジストリ ジャンクに残っていて、IE の停止の原因となっていることを疑いました。 そこで、キーの名前を変更すると、問題は解消されました。

"ログの比較" の手法を使うことで、Excel ファイルをインポートしようとしているプログラマの XP ワークステーションで Access 2000 がハングした原因を解決するのに役立ちました。 同じファイルのインポートは、他のユーザーのワークステーションでは問題なく動作しましたが、この 1 台のワークステーションでは失敗しました。 そのため、動作しているシステムと障害が発生したシステムで Access のキャプチャが行われました。 ログ ファイルを適切に操作した後、これらを Windiff で比較しました。 最初のいくつかの違いは、一時ファイルの名前が異なっていることと、大文字と小文字の違いによって一部のファイル名が異なっているためですが、もちろんこれらは 2 つのシステム間の 「問題とされる違い」ではありません。

問題のある最初の違いは、Access DLL が、障害が発生したシステムでは \Windows\System32 から読み込まれているのに、動作中のシステムでは \Program Files\Microsoft Office\Office フォルダーから読み込まれていることでした。 DLL を比較すると、\Windows\System32 のバージョンが、以前のバージョンの Access からのものであることが明らかになりました。 そのため、ユーザーはその DLL の名前を .bad に変更し、Access を再実行すると問題は解消されました。

Filemon が非常に役立つ 1 つの問題の種類は、ファイルのアクセス許可の問題が明らかになることです。 多くのアプリケーションでは、アクセス拒否エラーを報告する処理が不十分です。 ただし、Filemon を実行すると、この種類のエラーが明らかになります。これは、権限の問題が原因でファイルを開けなかった場合に結果列に "ACCESS DENIED" と表示されるためです (また、最新バージョンではファイルへのアクセスに失敗したユーザー名も表示されます)。 これが当てはまる 2 つの具体的な例を示します。

  1. ユーザーが Word を開始すると、奇妙なマクロ エラーが発生しました。マクロによって参照される .DOT ファイルのアクセス許可が、このユーザー アクセスを許可しないように変更されたことが判明しました。 Filemon では、Word で .DOT ファイルについてアクセス拒否エラーが発生していることが明確に示されていました。 アクセス許可が修正されると、問題は解消されました。
  2. Outlook アプリケーションで、Application defined or object-defined error-Message ID: [Connect].[LoadGlobalVariables].[LN:?].[EN:287] というメッセージ ボックスがポップアップ表示されました。これは、いかに多くのアプリケーションが、ランダム I/O エラーで役に立たないエラー メッセージを生成しているかを示す別の例です。 ここでも、Filemon を実行すると、アクセス拒否エラーが表示されました (今度は、Outlook がアクセスする必要があるフォルダーに対して)。 フォルダーのアクセス許可を調整すると、問題が解消されました。

これらはほんの一部の例です。他にも、Filemon と Regmon (およびここで説明しなかった Process Explorer) が窮地を救った多くの成功事例があります。 Microsoft 製品サポートが、これらのツールを日常的に使用して顧客の問題を解決していることは驚くには当たりません (Mark のツールを参照しているサポート技術情報の記事が合計で 40 件ほどあります。一覧については http://www.sysinternals.com/ntw2k/info/mssysinternals.shtml を参照してください)。

ですから、疑わしいときは、Filemon と Regmon を実行してください。

David Solomon のエキスパート セミナー http://www.solsem.com

SYSINTERNALS の新機能

Filemon v5.01

David が自分の論説で強調しているユーティリティの 1 つである Filemon は、ここ数年で最初の大規模な改訂を行いました。 すでにアクセスが容易なユーザー インターフェースでしたが、新しいリリースによって、使いやすさのレベルがさらに上がりました。 最も重要な機能強化は、Windows NT、2000、XP、または Server 2003 上で実行したときに、Filemon の既定の設定で、ファイル システム アクティビティがどのように表示されるかを変更したことです。私はこれについて、しばらく考えていましたが、David からの実際のユーザー フィードバックに基づいて、最終的に実装しました。

以前のバージョンの Filemon では、操作を実行する内部 I/O 要求のテキスト名を使用して、ファイル システム操作が表示されています。 表示は技術的には正確ですが、多くのユーザーは Windows I/O サブシステムの内部動作に習熟しておらず、FASTIO_CHECK_IF_POSSIBLE などの操作を無意味だと感じたり、FASTIO_READ 操作の失敗の報告などは混乱を招くものだと思ったりします。 ほとんどの人が "ノイズ" に分類する操作や、自明でない操作名の例は、他にもたくさんあります。

Filemon バージョン 5.01 の既定の表示モードには、ほとんどのトラブルシューティング シナリオでは役に立たず、すべての I/O 操作に直感的な名前が表示されるアクティビティを、削除するためのフィルター処理メカニズムが追加されるようになりました。 FASTIO_CHECK_IF_POSSIBLE はフィルターで除外され、FASTIO_READ エラーは表示されず、成功した FASTIO_READREAD 操作として報告されます。 さらに、既定のビューでは、システム プロセス (メモリ マネージャーとキャッシュ マネージャーでバックグラウンド アクティビティが実行される元のプロセス) 内のファイル システム アクティビティ、およびすべてのメモリ マネージャー ページング アクティビティ (システムのページング ファイルに対するものを含む) が省略されます。 [Options|Advanced](オプション|拡張) メニュー項目は、以前の Filemon バージョンで表示されたファイル システム アクティビティの "未加工の" ビューを必要とする、ファイル システム フィルター ドライバー開発者などのユーザーのニーズを満たします。

Microsoft の従業員を含む複数のユーザーは、ターミナル サービス環境でのセキュリティ設定のデバッグを支援するために、"アクセス拒否" エラーが発生したアカウントを Filemon に表示するよう要求しました。 それに応えて、バージョン 5.01 ではその情報に加え、ファイルを開くときにプロセスが必要とするアクセス モード (読み取り、書き込み、削除など) と、ファイルを開く方法 (たとえば、存在する場合に上書きされるか、開くのみとするか) などが表示されます。

多くのトラブルシューティング セッションでは、プロセスがアクセスするかアクセスしようとするファイルを特定することに重点を置いており、その場合は読み取り、書き込み、閉じるなどの操作はノイズに過ぎません。 この事実を認識して、私は新しい "log opens" のフィルタリング オプションを追加しました。これにより、開いている操作だけを分離することができます。

もう 1 つの大きな変更は、Filemon v5.01 がネットワーク マップされた共有を処理する方法です。 以前のバージョンでは、各マッピングは [Drives](ドライブ) メニューにドライブ文字として表示されます。 現在は、このようなマッピングはすべて、[Volumes](ボリューム) メニュー ([Drives](ドライブ) メニューから名前が変更されました) の [Network](ネットワーク) の選択に含まれます。 [Network](ネットワーク) を選択すると、Filemon ではすべてのネットワーク共有を監視し、"\\computer\share\directory" という名前付け規則を使用してリモート ファイルにアクセスするときに発生する種類の UNC 型のネットワーク アクティビティを報告します。 この変更により、以前の Filemon バージョンで必要とされていたような、マップされたネットワーク共有がない場合でも、ネットワーク ファイル アクティビティを確認できます。 最新の Filemon には、他にも多くの軽微な変更があり、たとえば数か月前に私が Regmon に導入した、より使いやすいメニューを反映したメニュー構造の更新などがあります。

Filemon v5.01 は次の場所からダウンロードしてください:
http://www.sysinternals.com/ntw2k/source/filemon.shtml

Filemon と Regmon のソース コードについて

ソフトウェア、ハードウェア、ネットワーク製品の開発者は、コードを再頒布するためのライセンスを購入することで Sysinternals を支えています。 しかし、過去 1 年間に、トロイの木馬から数十億ドル規模の企業の商用製品に至るまで、ライセンスされていない Sysinternals のソース コードを含むさまざまなソフトウェアが見つかりました。 Sysinternals の成長と、製品の法的ライセンスを維持するために、最新の Filemon および Regmon リリースを含む一部の製品のソース コードの公開を中止しました。 商用のライセンス所有者は、引き続きソース コードを利用できるようにします。 Sysinternals のソース コードのミラーが見つかった場合は、お知らせください。

DebugView v4.2

DebugView は、ソフトウェア開発者がソフトウェアによって生成されたデバッグ出力を取得するために使用する、非常に人気のある Sysinternals ユーティリティです。 バージョン v4.2 には、ユーザーから要求のあった多くの機能強化と機能が反映されています。 Microsoft から要求されたオプションを使用すると、DebugView をコンソール以外のセッションで実行するときに、ターミナル サービス環境のコンソール セッション内で実行されるプロセスのデバッグ出力を取得できます。 V4.2 では、読み込むログ ファイル、履歴の深さ、およびその他のスタートアップ動作を指定できる拡張コマンド ライン オプションがサポートされています。 複数のユーザーが、フィルターの数と長さの増加、プロセス ID によるフィルター処理、およびコメントを出力に挿入する機能を要求しましたが、これらはすべて最新バージョンで可能です。 新しいリリースでは、いくつかのバグ修正や、クラッシュ ダンプ ファイルからのカーネル デバッグ出力の抽出のサポートの向上、出力列や画面の幅を超えるテキストのためのバルーン ウィンドウの改善がなされています。

DebugView v4.2 は次の場所からダウンロードしてください:
http://www.sysinternals.com/ntw2k/freeware/debugview.shtml

NewSID v4.02

SID (セキュリティ ID) の重複の問題は、プレインストールの Windows イメージを使用して複数のシステムを展開する場合に発生する問題です。 イメージを共有する各コンピューターでは内部 Windows SID が同じになります。これは、Windows セキュリティ サブシステムがローカル グループとアカウントの識別子の基礎として使用する識別子です。 セキュリティ上の問題により、共有した場合、ほとんどの管理者は SID 変更ツールを使用して、各コンピューターに一意の SID を事後適用する対策を講じる可能性があります。

Sysinternals の SID 変更ツールである NewSID は人気があります。これは NewSID が、DOS に依存したり、システムにアドオン ソフトウェアがないことを求めたりする他の変更ツールとは異なり、アプリケーションがインストールされているコンピューターに新しい SID を割り当てるために使用できる Win32 プログラムであるためです。 バージョン 4.02 は、新しいウィザード インターフェイスを備え、Windows XP のサポートを追加し、コンピューターの名前を変更できるメジャー アップデートです。

多くの管理者から要求される機能は、指定した SID を適用する NewSID の機能です。これは、インストール環境の設定を別のコンピューターに移行したり、再インストールしたりするために役立つ場合があります。 NewSID を実行すると、レジストリにアクセスできるようにするために、レジストリの一部に一時的なセキュリティ設定を適用したときに、レジストリの増大を招きます。 この肥大化により、レジストリがサイズ クォータを超える可能性があるため、v4.02 の新しい関数では、操作の最後のステップとして、レジストリを最小サイズに圧縮します。

NewSID v4.02 は次の場所からダウンロードしてください:
http://www.sysinternals.com/ntw2k/source/newsid.shtml

PsShutdown v2.01

Shutdown は、Microsoft が長い間 Windows リソース キットに含めていたツールで、Windows XP のインストールに含まれています。 v2.01 PsShutdown より前のバージョンでは、Sysinternals PsTools コマンドライン管理ツールキットのメンバーは単にクローンの Shutdown でしたが、この最新リリースでは Shutdown の機能をはるかに超えて機能が拡張されています。 たとえば、システムが電源管理をサポートしている場合にシャットダウンと電源オフを行い、デスクトップをロックし、対話型ユーザーをログオフする操作を、すべてローカルまたはリモート コンピューター上で、クライアント ソフトウェアを手動でインストールすることなく実行できます。

PsShutdown v2.01 は次の場所からダウンロードしてください:
http://www.sysinternals.com/ntw2k/freeware/psshutdown.shtml
PsTools スイート全体は次の場所からダウンロードしてください:
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml

Autoruns v2.02

どのユーザーも、ログイン時に実行される不要なアプレットのインストールに悩まされ、スタートアップ コマンドの検索に不満を感じています。 Windows に、このようなアクティブ化のための 20 個近くのメカニズムがあっても不思議ではありません。 Windows Me と XP に含まれる MsConfig ユーティリティは、役に立つこともありますが、スタートアップの場所の約半分を見逃します。

Autoruns は、Bryce Cogswell と私が作成した Sysinternals ツールで、ユーザーに全体像を示します。 その表示には、システムの起動時またはログオン時にアプリケーションがそれ自身を実行できる、可能性のあるすべてのレジストリとファイルの場所の一覧が示されます。 最新バージョンでは、識別を容易にするために、起動時に構成された各イメージのアイコンとバージョン情報が表示され、コンテキスト メニューなどのユーザー インターフェイスの機能強化が追加されています。 さらに、新しいバージョンでは、ログオンとログオフのスクリプト、ログオン時に実行されるタスク スケジューラのタスク、Explorer アドオンの起動ポイントなど、より多くのスタートアップの場所が識別されます。

Autoruns v2.01 は次の場所からダウンロードしてください:
http://www.sysinternals.com/ntw2k/source/misc.shtml

ShareEnum v1.3

システム管理者は、ローカル ネットワーク セキュリティの重要な部分である共有フォルダーをよく見落とします。 企業環境内のユーザーは、グループ内の同僚に簡単にアクセスできるように、ドキュメントを含むフォルダーへの共有を頻繁に作成します。 残念ながら、多くのユーザーは、他の従業員による機密情報への不正アクセスを防ぐ設定を使用して、自分の共有をロックダウンできません。

ShareEnum は、不正な共有を特定し、有効な共有のセキュリティを強化するのに役立つ、Bryce Cogswell によって作成された Sysinternals ユーティリティです。 ShareEnum を起動すると、NetBIOS 列挙を使用してネットワーク上のコンピューターが検索され、エクスポートされる共有と、共有に適用されるセキュリティ設定の詳細が報告されます。 数秒以内に、開いている共有を見つけて、共有をダブルクリックしてエクスプローラーで開き、その設定を変更できます。 また、ShareEnum のエクスポート機能を使用して、スキャンを保存し、現在のスキャンを以前に保存したスキャンと比較することもできます。

ShareEnum v1.3 は次の場所からダウンロードしてください:
http://www.sysinternals.com/ntw2k/source/shareenum.shtml

TCPView v2.31

TCPView は、システムのアクティブな TCP および UDP エンドポイントの一覧を表示するグラフィカルな netstat 型ユーティリティです。 Windows NT、2000、XP、Server 2003 のインストール環境では、各エンドポイントを所有するプロセスが表示されます。 バージョン 2.31 では、識別しやすくするために、プロセスのイメージ ファイルのアイコンが表示されます。

TCPView v2.31 は次の場所からダウンロードしてください:
http://www.sysinternals.com/ntw2k/source/tcpview.shtml

Bluescreen v3.0

Sysinternals の死のブルースクリーンのスクリーンセーバーは、数年にわたって人気のあるダウンロードで、バージョン 3.0 では Windows XP の互換性が追加されています。 スクリーンセーバーには、実行するオペレーティング システム (Windows NT、2000、XP など) に適した書式設定とランダムな詳細を備えた、本物そっくりの死のブルースクリーンが表示され、しばらくてから、再起動サイクルと、それに続く別のクラッシュ画面の繰り返しがシミュレートされます。 これは非常に本物らしく見えるので、David Solomon はこれで私をだまし、私もこれで彼をだましました。 これを自分のスクリーンセーバーとして使ったり、友人や同僚をだましたりできますが、これを運用システムにインストールする前に、上司がユーモアのセンスを持ち合わせているか確かめてください。

Bluescreen v3.0 は次の場所からダウンロードしてください:
http://www.sysinternals.com/ntw2k/freeware/bluescreensaver.shtml

SYSINTERNALS AT WWW.MICROSOFT.COM

前回のニュースレター以降にリリースされた Microsoft サポート技術情報 (KB) 記事の Sysinternals リファレンスの最新の記事を次に示します。 これにより、Sysinternals への KB 参照の合計数が 41 になることを報告できることを大変嬉しく思います。

  • ACC2000: エラー メッセージ: ActiveX コンポーネントでオブジェクトを作成できない。http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q319841&

  • HOW TO: IIS 5.0 で ASP のトラブルシューティングを行う http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q309051&

  • OL2002: 信頼できる Outlook COM アドインを作成する方法 http://support.microsoft.com/default.aspx?scid=KB;en-us;327657&

  • PRB: エラー 80004005 "Microsoft Jet データベース エンジンでファイル '(不明)' を開くことができない" http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q306269&

  • NetMeeting を開始、終了、またはログオフすると、ユーザー プロファイルのアンロード エラーが発生する http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q327612&

  • XADM: エラー メッセージ: エラー 123: ファイル名、ディレクトリ名、またはボリューム ラベルの構文が正しくない http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q318746&

INTERNALS INFORMATION

新しい XP/Server 2003 Internal のビデオ

Windows XP/Server 2003 の内部変更に関する新しいビデオの最新バージョンを公開前に注文することができます。 この新しいビデオは、既存のビデオ チュートリアルの「Inside Windows 2000」の補助として、またはそれ自体を単独製品として、Windows XP および 4 月に発売される Microsoft の新製品である Windows Server 2003 のカーネルの変更に関するトレーニング資料として利用できます。 扱われているトピックとしては、パフォーマンス、スケーラビリティ、64 ビット サポート、ファイル システム、信頼性、回復などがあります。

前作と同じ対話型スタイルの「Windows XP/Server 2003 Update」では、机の向こう側にいる David Solomon と Mark Russinovich から、76 分間の非常に的を絞った集中トレーニングを受けることができます。 これには、復習の質問や演習問題、印刷された問題集が含まれており、DVD ビデオと CD-ROM の Windows Media で利用できます。

また、これらのビデオは Windows のソース コードと開発者チームにフル アクセスして開発されたので、実際のストーリーを理解していることがわかります。 そして、Microsoft がこのビデオを世界中の社内トレーニング向けにライセンス契約しているという事実が、最高の褒め言葉です。

3 月 15 日より前に購入した場合は特別なプレリリース価格が適用されます。 「Inside Windows 2000」を 950 ドルで購入して、「Windows XP/Server 2003 Update」を無料で入手してください。 これは、合計小売価格の 1,390 ドルからほぼ 40% オフです。 または、「Windows XP/Server 2003 Update」ビデオを単独で、わずか 169 ドルで購入できます (小売価格は 195 ドル)。 その他のライセンス構成については、Web サイトをご覧ください。 この期間限定オファーを利用するには、次の場所から今すぐ注文してください: http://www.solsem.com/vid_purchase.html

Mark と David Solomon によるワシントン州ベルビューでの内部構造とトラブルシューティングの講義

私と David Solomon は、4 月 21 日から 23 日までワシントン州ベルビューで、Windows 2000/XP/.NET Server の内部構造についての 3 日間のクラスを開講します。 このクラスでは、「Inside Windows 2000, 3rd Edition」に基づき、カーネル アーキテクチャと主要なシステム コンポーネントの相互関係とメカニズム (システム スレッド、システム呼び出しディスパッチ、割り込み処理、起動とシャットダウンなど) について説明します。 Sysinternals ツールを使用した高度なトラブルシューティング手法と、基本的なクラッシュ ダンプ分析のための Windbg の使用方法について説明します。 扱われる主要なサブシステムの内部構造には、プロセスとスレッド、スレッド スケジュール、メモリ管理、セキュリティ、I/O システム、キャッシュ マネージャーが含まれます。 OS 内部の動作を理解することで、プラットフォームをより効果的に利用し、問題のデバッグやトラブルシューティングをより効果的に行うことができます。

登録または詳細については、http://www.sysinternals.com/seminar.shtml をご覧ください。

Windows 2000 SP3 Common Criteria 認定

皆さんの多くは、"オレンジブック" と C2 という用語をたぶん知っているでしょう。これらはどちらも、オペレーティング システムを含むソフトウェアのセキュリティ機能を評価するために、米国政府によって 1980 年代と 90 年代を通して使用された古いセキュリティ評価基準に関連しています。 オレンジブックの評価は、国防総省の Trusted Computer System Evaluation Criteria (TCSEC) の一部でしたが、1999 年以降は新しい Common Criteria (CC) 体系に組み込まれました。 CC は、TSCEC やイングランドの古い情報技術セキュリティ(ITSEC) の評価よりも充実した国際的なセキュリティ格付け基準として、複数の国によって合意されました。

ベンダーが CC 基準に対してソフトウェアの認定を受けている場合、一連のセキュリティ機能である "保護プロファイル" が指定され、評価では、ソフトウェアが保護プロファイルの要件を満たしている保証レベル (評価保証レベル (EAL) と呼ばれます) が報告されます。 7 つの EAL が存在し、保証レベルが高いほど、評価されるソフトウェアのセキュリティ機能の信頼性において信用が高いことを意味します。

Microsoft は数年前、TCSEC C2 評価とほぼ同等の CC である、Controlled Access Protection Profiles に対して Windows 2000 の CC 評価を提出し、2002 年 10 月にその評価が完了しました。 評価を実行した独立企業である Science Applications International Corporation (SAIC) は、Windows 2000 Service Pack 3 が評価保証レベル (EAL) 4 と欠陥の修復によって Control Access Protection Profile を満たすことを確認しました。 EAL 4 は汎用ソフトウェアで達成可能な最高レベルと見なされ、欠陥の修復とは、セキュリティ修正プログラムをタイムリーに適用するための Windows Update メカニズムを指します。 この評価は、CC においてこれまでにオペレーティング システムによって達成された最高レベルです。

Visual Studio: LastError を監視する

Win32 API に依存するアプリケーションを開発する場合は、ほぼ間違いなく Win32 関数を実行するコードを記述していますが、何らかの理由で特定のエラーが報告されません。 その場合は、このヒントが役立ちます。 式 @ERR,hr を watch ウィンドウに追加すると、現在のスレッドの LastError 変数 (Win32 の関数 GetLastError() によって返される値) として格納されている値の数値とテキスト表現が表示されます。

LameButtonText レジストリ値の説明

Windows 2000 または XP システムで、Windows アプリケーションの起動の Regmon トレースを調べた場合、レジストリ値 HKCU\Control Panel\Desktop\LameButtonText への参照が、通常はエラー NOTFOUND を伴って表示される可能性があります。 Microsoft の誰かが明らかにユーモアのセンスを持っていますが、この値は何のためのものでしょうか。 これには、Windows ベータ版およびリリース候補リリースのウィンドウ タイトル バーに表示される、フィードバックを報告するためにリンクをクリックするようにユーザーに指示するテキストが保存されます。 プレリリース以外のバージョンの Windows でカスタム テキストを配置できるようになっていればよいのですが、残念ながら運用環境のリリースではこの機能が無効になっています。

Windows 開発の歴史

Paul Thurrott は、Windows NT 開発プロセスの歴史に関する 3 部構成の記事を書いています。 http://www.winsupersite.com/reviews/winserver2k3_gold1.asp でご確認ください

クラッシュ ダンプ分析の概要

新しいハードウェアを取り付けたりソフトウェアをインストールしたりした直後にシステムがクラッシュした場合、原因の診断は明らかです。 ただし、たまにシステムのクラッシュが発生して、明らかな理由がない場合もあります。 このような場合、クラッシュの原因を特定する唯一の方法は、クラッシュ ダンプを分析することです。 このチュートリアルでは、Microsoft のオンライン クラッシュ分析 (OCA) のしくみと、それがクラッシュ パズルに対する答えを与える方法について説明し、OCA で正しく分析されない、または正しく分析できないクラッシュを確認できるようにする独自のクラッシュ分析環境を設定する方法について説明します。

Microsoft は、クラッシュ関連情報の一元化されたリポジトリに基づく自動分析サービスとして、Windows XP のリリースで OCA を導入しました。 XP システムがクラッシュから再起動すると、クラッシュ情報を OCA サイトに送信するように求められます (http://oca.microsoft.com/en/Welcome.asp).。 同意した場合、XP は、基本的なシステム構成と 64 KB のミニダンプ クラッシュ ファイルを記述した XML ファイルをアップロードします。 ミニダンプには、クラッシュに直接関係する少量のデータが含まれており、たとえばクラッシュ コード、クラッシュ時に実行されていたスレッドのスタック、システムに読み込まれたドライバーの一覧、クラッシュが発生したときに実行されるプロセスを管理するデータ構造などがあります。

OCA が情報を受信すると、情報の分析に進み、分析の概要がデータベースに格納されます。 アップロード後にプロンプトに従って OCA サイトにアクセスすると、分析を追跡する機会が提供されます。 これには、Passport アカウントでサインインする必要があります。 次に、クラッシュの名前と、クラッシュの性質を説明するテキストを入力します。 OCA エンジンがそのクラッシュを、Microsoft が原因を特定したデータベース内の他のクラッシュと関連付けると、サイトから電子メールで通知され、サイトを見直して、送信されたクラッシュを参照すると、解決策によってドライバーまたはオペレーティング システムの更新プログラムを入手する場所が示されます。 残念ながら、OCA サポートは XP に組み込まれていて Windows 2000 のクラッシュ ダンプ ファイルを受け入れますが、NT 4 をサポートしていないため、(少なくとも私の経験では) ほとんどのクラッシュの原因を特定することができません。

クラッシュ分析を自分で実行するには、適切なツールが必要です。このツールは、Microsoft によって Windows 用デバッグ ツール パッケージの形式で提供されており、http://www.microsoft.com/ddk/Debugging/. からダウンロードできます。 このパッケージには、Windbg 分析ツールが含まれています。 ツールをダウンロードしてインストールしたら、Windbg を実行して、[File|Symbol File Path](ファイル|シンボル ファイル パス) ダイアログを開きます。 ここで、分析中のクラッシュが発生したオペレーティング システムのバージョンのシンボル ファイルを検索する場所を Windbg に指示します。 シンボルをインストールしたディレクトリへのパスを入力することはできますが、クラッシュしているシステムにインストールされている正しいオペレーティング システム、サービス パック、ホットフィックスのシンボル ファイルを取得する必要があります。 シンボル ファイルを手動で処理するのは面倒で、様々なシステムからのクラッシュを分析する必要がある場合は、インストール環境ごとに異なる様々なシンボル ファイルのセットに注意を払う必要があります。

Windbg で Microsoft のシンボル サーバーを指定することで、シンボル ファイルにまつわる問題を避けることができます。 シンボル サーバーを使用するように構成すると、Windbg では、開いたクラッシュ ダンプに基づいて、必要に応じてシンボル ファイルが自動的にダウンロードされます。 シンボル サーバーには、NT 4 から Server 2003 ベータ版と、リリース候補 (サービス パックやホットフィックスを含む) のシンボルが格納されます。 Windbg でシンボル サーバーを指定するための構文は、srv*c:\symbols*http://msdl.microsoft.com/download/symbols です。 c:\symbols を、シンボル ファイルを格納するディレクトリに置き換えてください。 シンボルの詳細については、次を参照してください。http://www.microsoft.com/ddk/debugging/symbols.asp

クラッシュ ダンプを分析する準備が整う前に、もう 1 つの手順を実行する必要があります。つまり、クラッシュ ダンプを生成するようにシステムを構成します。 これを行うには、コントロール パネルで [システム] アプレットを開き、Win2k 以降では、[詳細設定] ページの [スタートアップ/シャットダウン] ボタンをクリックします。 NT 4 では、アプレットの [スタートアップ/シャットダウン] タブに移動します。 NT 4 システムの唯一のクラッシュ ダンプ オプションは、完全メモリ ダンプです。この場合、クラッシュ時の物理メモリの内容全体が、指定したファイルに保存されます。 Win2k 以降では、最小、カーネル、完全の 3 つのオプションがあります。 Win2K と XP Professional および Home の既定値は最小です。サーバー システムの既定値は、完全です。 ワークステーション/クライアント マシンの場合は、設定を最小からカーネル ダンプに変更します。これにより、(アプリケーションではなく) オペレーティング システムが所有する物理メモリの一部のみが節約されます。これは、この操作によってクラッシュ ダンプ ファイルのサイズを最小限に押さえつつ、クラッシュを効果的に分析するために Windbg で必要な、カーネル データ構造に関する完全な情報が引き続き提供されるためです。 サーバー システムの場合、完全ダンプでかまいませんが、カーネル ダンプが安全な選択です (非常に大きなメモリ システムがある場合は、おそらく唯一の選択肢です)。

これで、クラッシュを分析する準備ができました。 発生した場合、[File|Open Crash Dump](ファイル|クラッシュ ダンプを開く) のメニュー オプションを選択して結果のダンプ ファイルを Windbg に読み込みます。 ダンプが読み込まれると、Windbg の処理が開始され、オペレーティング システムのバージョンとシンボルの読み込みに関するメッセージが表示されます。 その後、"Bugcheck Analysis" というテキストのメッセージが表示されます。 メッセージの後の出力では、クラッシュ コードとクラッシュ コードのパラメーターと、"考えられる原因" が報告されます。

場合によっては、障害が発生しているドライバーまたはカーネル コンポーネントを識別するには、Windbg がここで実行する基本的な分析で十分です。 ただし、常に次のコマンドを入力することをお勧めします: !analyze -v。 このコマンドを実行すると、同じ分析が行われますが、詳細が表示されます。 たとえば、クラッシュ コードの意味がテキストで説明され、省略可能なパラメーターが何を表しているかや、場合によっては次に何を試すべきかのアドバイスが示されます。 また、スタック トレースも表示されます。これは、クラッシュが発生したコードに至る関数実行の記録です。 ドライバーによって、問題のあるデータが、カーネルまたは分析によって特定されたドライバーに渡される場合、トレースにその名前が表示され、考えられる根本原因として識別できます。

クラッシュ時のシステムの状態をさらに深く掘り下げる場合は、実行中のプロセス、ドライバーの読み込み、メモリ使用量などの一覧を表示できる Windbg コマンドが多数あります。 Windbg ヘルプ ファイルにはバグチェック リファレンスも含まれており、詳細とガイダンスについてフォローアップすることをお勧めします。それでも問題が解決しない場合は、Microsoft のサポート技術情報 (KB) でクラッシュ コードの検索を実行することをお勧めします。 Microsoft では、一般的なクラッシュに関する KB 記事を作成し、特定の問題を解決するベンダー サイトまたはホットフィックスにユーザーを導きます。

私が例を交えてこの情報をライブでお見せするのをご覧になりたい方は、次のいずれかのカンファレンスで私を探してください。

  • David と私が 4 月にワシントン州ベルビューで開催する、内部構造とトラブルシューティングのセミナー
  • 5 月にアリゾナ州スコッツデールで行う Windows and .NET Magazine Connections: http://www.winconnections.com/win
  • 今年の夏の TechEd US (ダラス) または TechEd Europe (バルセロナ)

Sysinternals ニュースレターをお読みいただき、ありがとうございました。

公開日: 2003 年 2 月 19 日 (水) 午後 4:47 by ottoh

[ニュースレターアーカイブ ^][< Vol. 4、No. 3][Vol. 5、No. 2 >]