2017/06/23

(PR) 新刊のお知らせ『Windows Sysinternals 徹底解説 改訂新版』 第 4 弾

新刊のご案内、第 4 弾です。5 月に下書きを書いたのに、公開するのをすっかり忘れていました。

「Windows Sysinternals 徹底解説」の“改訂新版”が出来ました。Windows Sysinternals の公式解説書の日本語訳です。

マイクロソフト公式解説書「Windows Sysinternals 徹底解説 改訂新版」
著者  : Mark E. Russinovich、Aaron Margosis 著

訳者  : 山内和朗
価格  : 5,940 円(本体 5,500 円+税)
ISBN  : 978-4-8222-9896-8
発行元: 日経BP社
発行日: 2017/06/05 (6/1 より購入可能になっています)
原書  : https://technet.microsoft.com/ja-jp/sysinternals/hh290819

日経 BP 社の書籍紹介ページへ][Amazon.co.jp へ][目次を見る (日経 BP 社のページ)

Amazon だと一時期 71 ページってなっていましたが(訂正済み)、前書(B5変、544 ページ)から、約 200 ページ増量(B5変、740ページ)。その違いは右上の写真をご参考に。

今回は、Procmon というコマンドライン ユーティリティの応用的な使い方を紹介。


Windows 10、Windows Server 2016、および Nano Server は、詳細なビルド番号(ビルド番号.リビジョン番号) を持ちます。この詳細なビルド番号や、[設定 > システム > バージョン情報]や winver.exe で確認できます。レジストリ キー HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion にある BuildLabEx で分かるという話もありましたが、BuildLabEx が実際のビルド番号と一致しないことも度々出てきました。値の更新し忘れなのか、BuildLabEx の値が実際のビルド番号とは異なる何かを識別するためのものなのかは不明です。

Windows 10 & Server 2016 の BuildLabEx が正しいとは限らない件 (2017/03/22)


以下の投稿では、コマンドラインから確認する方法を紹介していますが、詳細なビルド番号をどこから読み取ればよいのか、 “Sysinternals の Procmon で調べてみたところ、winver.exe はレジストリ キー HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion にある ReleaseID(1607)、CurrentBuild(14393)、UBR(0x141(321)) の値を見ていました。”とさらっと書きました。

Windows Server 2016 の詳細なビルド番号をコマンドラインから確認したい (2016/10/14)

Procmon (Process Monitor) を使って、どうやって調べたのか、Procmon の使用例のヒントになると思うのでご紹介。


Procmon を開始して、トレースのキャプチャを開始し、winver を起動します。



winver のウィンドウが開いたら、Procmon のツールバー上の[Capture]ボタン(虫眼鏡アイコン)をクリックして、キャプチャを停止します。

Procmon は、レジストリ、ファイルシステム、ネットワーク、プロセス/スレッド、プロファイル イベントに関する膨大な量のイベントを短時間で取得します。

ツールバー上の[Include Process From Window]ボタン(照準アイコン)をクリックすると(クリックボタンを離さない)、マウスカーソルが照準マークに変化するので、そのまま winver ウィンドウの上までドラッグしてマウスボタンを離します。こうすることで、表示フィルターに[PID is <winverのプロセスID> Include]の条件を簡単に追加でき、トレースを winver 関連のイベントだけに絞り込めます。

Procmon は、レジストリ、ファイルシステム、ネットワーク、プロセス/スレッド、プロファイル イベントに関する膨大な量のイベントを短時間で取得しますが、ビルド番号の取得元はレジストリだろうと予想し、[Show Registry Activity]トグルボタンだけをオンにして、さらに対象を絞り込みます。

ツールバー上の[Search]ボタン(双眼鏡アイコン)をクリックして、バージョン(例: 1703)、ビルド番号(例:15063)、リビジョン番号(例:296)などで検索します。関係のないものが検索されることもありますが、[次を検索]ボタンで下っていくと、目的のレジストリパスがすぐに見つかります。


これで、winver.exe がレジストリ キー HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion にある ReleaseID(バージョン)、CurrentBuild(ビルド番号)、UBR(リビジョン番号)から情報を得ていることがわかりました。

レジストリ パスを右クリックして[Jump To...]をクリックすると...


レジストリエディター(Regedit.exe)が開いて、その場所までナビゲートしてくれます。



Procmon は「第5章 Process Monitor」で詳しく解説、「第3部 トラブルシューティング─“原因不明の・・・問題”」にも事例多数掲載! 

0 件のコメント: