[ニュースレターアーカイブ ^][< Vol. 6、No. 1][Vol. 7、No. 1 >]

Systems Internals ニュースレター Vol. 6、No. 2

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


2004 年 7 月 30 日 - 本号の内容:

  1. 論説

    • Process Explorer を使用したスレッドの詳細の掘り下げに関する Dave Solomon のゲスト記事
  2. SYSINTERNALS の新機能

    • ツールの更新
    • Sysinternals は Microsoft Windows XP のコミュニティ サイトです
  3. Sysinternals の成功事例の募集

    • 成功事例を送って Sysinternals Tシャツを獲得してください
  4. 雑誌記事

    • PsExec
    • メモリ最適化のデマ
  5. Windows 内部と高度なトラブルシューティングに関する実践クラス

    • サンフランシスコ - 9 月 27 日から 10 月 1 日
  6. Mark の講演スケジュール

    • TechMentor
    • Windows Connections
    • Microsoft IT フォーラム

Sysinternals ニュースレターは、http://www.winternals.com. の Web で Winternals Software によって後援されています。 Winternals は Microsoft エンタープライズのためのインテリジェントな回復機能を提供します。

間もなく公開される Windows XP Service Pack 2 には多くの利点がありますが、OS 内やアプリケーション内で望ましくない動作や予期しない動作が発生する可能性があります。 Winternals Recovery Manager を使用すると、システムが起動不能になった場合でも、パッチやサービス パックの悪影響を受けたシステムを安全かつ迅速にロールバックできます。 Recovery Manager の詳細について調べたり、評価版の CD を要求したりするには、http://www.winternals.com/es/solutions/recoverymanager.asp を参照してください。

論説

Dave Solomon と私は、「Inside Windows 2000」の次のエディション (「Windows Internals」、第 4 版になる予定です) に鋭意取り組んでおり、あと数週間で原稿が完成する予定です。 この本は、Windows 2000、Windows XP、Windows Server 2003 を対象としており、第 3 版に比べて約 20% 増加しています。 既存の資料を増補し、XP と 2003 の変更を扱った新しい文章を追加しただけでなく、クラッシュ ダンプ分析、システム起動、メモリ、CPU、ファイル システム、レジストリなどのトピックのトラブルシューティング資料を追加したため、以前のエディションよりもさらに価値があると思います。

私は本を仕上げることに集中しているので、このニュースレターは短いですが、本が完成したら通常のニュースレターを続けるつもりです。 ここで、Dave Solomon のゲスト記事を紹介します。これは私が前回のニュースレターで取り上げたものよりも高度な Process Explorer の使用に関するものです。

ニュースレターをお楽しみください。そして、このニュース レターに興味を持ってくれそうな人に伝えてください。

  • Mark Russinovich

Process Explorer を使用したスレッド アクティビティの詳しい分析

作成者: Dave Solomon (daves@..., http://www.solsem.com)

Process Explorer を使用すると、プロセス内のスレッド アクティビティに簡単にアクセスできます。 これは、複数のサービス (Svchost.exe、Dllhost.exe、Inetinfo.exe、システム プロセスなど) をホストしているプロセスが実行している理由やプロセスがハングする理由を見極めようとしている場合に特に重要です。

プロセス内のスレッドを表示するには、プロセスを選択してプロセスのプロパティを開き (プロセスをダブルクリックするか、[Process](プロセス)->[Properties](プロパティ) メニュー項目をクリックします)、[Threads](スレッド) タブをクリックします。これにより、プロセス内のスレッドの一覧、使用されている CPU の割合 (構成された更新間隔に基づく)、スレッドに対するコンテキスト切り替えの数、スレッドの開始アドレスが表示されます。 これら 3 つの列のいずれかで並べ替えることができます。 一覧で各スレッドを選択すると、Process Explorer には、スレッド ID、開始時刻、状態、CPU 時間カウンター、コンテキスト切り替えの数、および基本優先度と現在の優先度が表示されます。 個々のスレッドを終了する [Kill](強制終了) ボタンがありますが、これは細心の注意を払って使用する必要があります。

作成された新しいスレッドは緑色で強調表示され、終了するスレッドは赤色で強調表示されます (強調表示の期間は、[Options](オプション) -> [Configure Highlighting](強調表示の構成) メニュー項目で構成できます)。 これは、プロセス内で発生する不要なスレッドの作成を検出するのに役立ちます (スレッドは一般的に、プロセスの起動時に作成され、プロセス内で要求が処理されるたびに作成されるものではありません)。

コンテキスト切り替えデルタは、Process Explorer 用に構成された更新と更新の間にスレッドが実行を開始した回数を表し、CPU 使用率とは異なる、スレッド アクティビティの調査方法です。これは、多くのスレッドは実行時間が非常に短いことから、間隔クロック タイマー割り込みが発生したときに実行中のスレッドは (あったとしても) ほとんどなく、したがってスレッドは CPU 時間に課金されないためです。

スレッド開始アドレスは "module!function" という形式で表示されます。ここで、module は .EXE または .DLL の名前です。 関数名はモジュールのシンボル ファイルへのアクセスに依存します。これは、Microsoft シンボル サーバーを使用するように Process Explorer を構成した場合に取得できます (Windows 用 Microsoft デバッグ ツールを含むヘルプを参照してください。これは Microsoft の次の Web サイトからダウンロードできます: http://www.microsoft.com/whdc/devtools/debugging/default.mspx). モジュールが何であるか不明な場合は、モジュール ボタンを押します。 これにより、スレッドの開始アドレス (.EXE や .DLL など) を含むモジュールのエクスプローラー ファイル プロパティ ウィンドウが開きます。 Windows の CreateThread 関数によって作成されたスレッドの場合、Process Explorer では、実際のスレッド開始関数ではなく、CreateThread に渡された関数が表示されます。 これは、すべての Windows スレッドが、共通のプロセスまたはスレッド起動ラッパー関数 (Kernel32.dll の BaseProcessStart または BaseThreadStart) から開始されるためです。 Process Explorer に実際の開始アドレスが表示された場合、プロセス内のほとんどのスレッドは、同じアドレスで開始されているように見えますが、これはスレッドが実行していたコードを理解しようとするときに役に立ちません。

しかしながら、表示されるスレッド開始アドレスは、スレッドが何を行っているのか、またプロセス内のどのコンポーネントが、スレッドによって消費されている CPU に該当するのかを特定するための情報として十分ではない場合もあります。 これは、スレッド開始アドレスが汎用的なスタートアップ関数である場合に特に当てはまります (たとえば、スレッドが実際に何を行っているかを関数名が示していない場合など)。 この場合、スレッド スタックを調べることで、答えがわかることがあります。 スレッドのスタックを表示するには、目的のスレッドをダブルクリックします (または、スレッドを選択して [Stack] (スタック) ボタンを押します)。 Process Explorer には、スレッドのスタック (スレッドがカーネル モードの場合は、ユーザーとカーネルの両方) が表示されます。 ユーザー モード デバッガー (Windbg、Ntsd、Cdb) を使用すると、プロセスにアタッチしてスレッドのユーザー スタックを表示できますが、Process Explorer では、単にボタンを 1 回クリックするだけで、ユーザースタックとカーネル スタックの両方が表示されます。 また、Sysinternals の Livekd を使用してユーザーとカーネルのスレッド スタックを調べることもできますが、使用することはより困難です。Windows XP または Windows Server 2003 でのみサポートされているローカル カーネル デバッグ モードで Windbg を実行しても、スレッド スタックは表示されないことに注意してください。

[Mark からの個人的なメモ - これは、Powerpoint が起動するたびに 1 分間ハングしていた理由を解決するのに役立ちました。 Process Explorer を使って Powerpoint プロセス内の 1 つのスレッドのスタックを確認すると、ネットワーク プリンターへの接続の呼び出しで待機しており、応答していないネットワーク プリンターへの接続があったことが判明しました。Microsoft Office アプリケーションはプロセスの起動時に、構成済みのすべてのプリンターに接続するため、Powerpoint はプリンターへの接続試行がタイムアウトするまで "ハング" していたのです。プリンターへの接続を削除すると、問題は解消されました。]

SYSINTERNALS の新機能

ツールの更新

4 月の最後のニュースレター以降、多くのツールが更新されました。 機能強化の概要を次に示します。

プロセス エクスプローラー

Process Explorer はタスク マネージャーの後継となるものです (Process Explorer の [Options](オプション) メニューの選択を使用してタスク マネージャーを完全に置き換えることができます)。

  • プロセス プロパティの [TCP/IP] タブには TCP 接続と UDP 接続が表示されます。変更は色で強調表示され、新しい接続と閉じた接続を簡単に確認できます
  • AMD64 システム用の 64 ビット バージョン
  • SMT (ハイパースレッド) および SMP システムでのプロセス アフィニティ マスクの設定のサポート
  • 表示の更新のパフォーマンス強化

http://www.sysinternals.com/ntw2k/freeware/procexp.shtml

DebugView

DebugView は、デバッガーをローカルまたはネットワーク経由で使用せずに、ユーザーモードとカーネルモードのデバッグ出力をキャプチャできる開発者ユーティリティです。

  • より大きなカーネルモードとユーザー バッファー
  • 強調表示フィルターの増加
  • ログ ファイルの折り返し
  • Windows XP SP2 カーネル デバッグ出力のサポート
  • 特殊な "clear output" デバッグ文字列が見つかったときに出力をクリアします

http://www.sysinternals.com/ntw2k/freeware/debugview.shtml

Pendmoves

Pendmoves は、次回のブート時に実行するようにシステムでスケジュールされたファイルの移動コマンドと削除コマンドを表示する新しい Sysinternals ユーティリティです。

http://www.sysinternals.com/ntw2k/source/misc.shtml#pendmoves

Adrestore

Adrestore は、Windows Server 2003 Active Directory (AD) の "Tombstone" を利用して AD オブジェクトの制限付き削除取り消し機能を提供するコマンド ライン ユーティリティです。

http://www.sysinternals.com/ntw2k/source/misc.shtml#adrestore

Bluescreen スクリーン セーバー

このスクリーン セーバーは、死のブルー スクリーンを模倣したもので、マルチモニター システムと Windows Server 2003 をサポートするようになりました。

http://www.sysinternals.com/ntw2k/freeware/bluescreensaver.shtml

LogonSessions

この新しいコマンド ライン ユーティリティでは、ネットワーク、対話型、バッチなど、システム上のログオン セッションの一覧が表示され、各セッションで実行されているプロセスも表示されます。

http://www.sysinternals.com/ntw2k/source/misc.shtml#logonsessions

Pstools

Pstools スイートは、ローカルおよびリモートで動作する 11 個の管理コマンドライン ツールで構成されています。 その多くは、コマンド ラインまたはテキスト ファイルで指定できる複数のコンピューター システムのサポートを含むように、過去数か月のうちに更新されています。

http://www.sysinternals.com/ntw2k/freeware/pstools.shtml

Autoruns

Autoruns では、起動プロセス中に自動的に起動するようにアプリケーションが自身を構成するために使用できる Windows レジストリとファイル システムの場所を示す最も包括的な一覧が表示されます。

  • ファイル システムとレジストリの場所が、読みやすくするために複数の列にまたがるようになりました
  • Microsoft 以外のエントリのみを表示するオプション。ログイン時に起動するよう構成された MS 以外のソフトウェアを簡単に確認できます
  • レジストリから削除せずにエントリを無効にできるようになりました (Autoruns が Msconfig のスーパーセットになりました)
  • 起動時に開始するように構成されたサービスを表示するオプション

http://www.sysinternals.com/ntw2k/freeware/autoruns.shtml

ツールの更新に加えて、技術記事も更新されています。

Boot.ini オプション リファレンス

このリファレンスには、Windows XP および Windows Server 2003 で追加されたboot.ini スイッチが含まれるようになりました。

http://www.sysinternals.com/ntw2k/info/bootini.shtml

Sysinternals は Microsoft Windows XP のコミュニティ サイトです

Sysinternals は数年前から Microsoft.com の Windows XP Embedded のコミュニティ サイトになっています。また、Microsoft が Sysinternals を Windows XP Expert Zone ページのコミュニティ サイトにしたことをお知らせできることを嬉しく思います。

http://www.microsoft.com/windowsxp/expertzone/default.mspx

Sysinternals の成功事例の募集

私のセミナーやカンファレンス プレゼンテーションの視聴者は、実際の成功事例を聞くのが大好きなので、Sysinternals ツールを使ったトラブルシューティングがあれば、その話をぜひ聞かせてください。 情報を mark@... に送ってくださった方は、絶版となった限定版 Sysinternals T シャツが毎月当たる、くじ引きに参加できます。 Sysinternals ツールを使って問題を解決した方法について、できるだけ詳しく説明してください。また可能な場合や該当する場合は、スクリーンショットやログ ファイルを送ってください (Filemon と Regmon は両方とも、出力をテキスト ファイルに保存できます)。

雑誌記事

Psexec

7 月号として書かれたこの記事は、現在では Windows and .NET Magazine の購読者のみ読むことができます。 ここでは Psexec の高度な使用法について触れ、Windows セキュリティとどのように連動して対話するかについて説明しています。

http://www.winnetmag.com/Windows/Issues/IssueID/714/Index.html

メモリ最適化のデマ

購読者以外も読むことができる、この Windows and .NET Magazine の記事では、いわゆる "RAM オプティマイザー" の詐欺的な動作について説明します。

http://www.winnetmag.com/Windows/Article/ArticleID/41095/41095.html

Windows の内部構造と高度なトラブルシューティングに関する実践クラス

2004 年 9 月 27 日から 10 月 1 日、サンフランシスコ

David Solomon と私は、2004 年 9 月 27 日から 10 月 1 日までサンフランシスコにて、Windows 2000/XP/2003 の内部と高度なトラブルシューティングについての 5 日間の実践バージョンのクラスを開講します。 (出席者は各自ラップトップを持参する必要があります。構成の詳細は事前に提供されます。ソフトウェアの追加購入は必要ありません)。

これは、世界中の Microsoft 従業員に教えているものと同じクラスです。 プロセスとスレッド、スレッドのスケジュール設定、メモリ管理、セキュリティ、レジストリ、I/O システムの内部をカバーします。 システム スレッド、システム呼び出しディスパッチ、割り込み処理、スタートアップとシャットダウンなどのメカニズムの詳細を説明します。 Sysinternals ツールを使用した高度なトラブルシューティング手法と、クラッシュ ダンプ分析を実行する方法について説明します。

なぜこのクラスを受ける必要があるのでしょうか。 Windows サーバーやワークステーションをデプロイし、サポートする IT プロフェッショナルなら、物事がうまくいかないときに表面から見えないところを掘り下げる能力が必要です。 Windows オペレーティング システムの内部を理解し、高度なトラブルシューティング ツールの使用方法を理解することで、このような問題に対処し、システム パフォーマンスの問題をより効果的に理解するのに役立ちます。 内部構造を理解することは、プログラマーが Windows プラットフォームをより良く活用するのに役立つだけでなく、高度なデバッグ テクニックを提供することにもなります。 また、このコースは Windows カーネルのソース コードと開発者にフル アクセスして開発されたので、実際のストーリーを理解していることがわかります。

詳細と登録については、以下を参照してください。

http://www.sysinternals.com/troubleshoot.shtml

Mark の講演スケジュール

5 月と 6 月に Microsoft TechEd US と TechEd Europe で講演した後、私は天気の良いテキサス州の自宅で夏を過ごします。 今後の 3 回のカンファレンス講演の予定を以下に示します。

TechMentor

2004 年 9 月 27 日から 10 月 1 日、カリフォルニア州サンノゼ

このカンファレンスでは、4 回のセッションをすべて 9 月 29 日に行い、基調講演は「Windows と Linux: 2 つのカーネルのお話」です。 提供する他のセッションは、「Windows のハングとクラッシュ ダンプの分析」、「Windows XP と Windows Server 2003 のカーネルの変更」、および「Windows ブートとスタートアップのトラブルシューティング」です。

以下のリンクで要約を読み、カンファレンス登録ページへのリンクを見つけることができます。

http://www.sysinternals.com/ntw2k/info/talk.shtml

Windows Connections

2004 年 10 月 24 日 から 27 日、フロリダ州オーランド

このカンファレンスでは、一般セッションとして「Windows ブートとスタートアップのトラブルシューティング」の講演を行い、「Sysinternals ツールを使った Windows のトラブルシューティング」の発表も行います。両方とも 24 日です。(私は Microsoft Network (MSN) から、その週にシアトルで開催される年次の MSN エンジニアリング エクセレンス カンファレンスで、終日行われる Windows トラブルシューティング セッションにて基調講演として発表するように招待されました)。

以下のリンクで要約を読み、カンファレンス サイトにアクセスできます。

http://www.sysinternals.com/ntw2k/info/talk.shtml

Microsoft IT フォーラム

コペンハーゲン (デンマーク)

私は Dave Solomon と一緒に、Windows のコア セキュリティの内部構造に関する終日のプレカンファレンス チュートリアル セッションを行うほか、未定ですが自分独自の分科会セッションをいくつか行う予定です。 プレカンファレンス チュートリアルの概要と登録情報については、こちらを参照してください。http://www.microsoft.com/europe/msitforum/


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

公開日: 2004 年 7 月 30 日 (金) 午後 4:39 by ottoh

[ニュースレターアーカイブ ^][< Vol. 6、No. 1][Vol. 7、No. 1 >]