このページの本文へ

Windows Info 第206回

最新Previewで生じたWindows 10のカーネルの変化を調べる

2020年01月12日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

Windows Insider ProgramのFast Ringの位置付けが変わった

 昨年12月16日にWindows Insider ProgramのFast RingでBuild 19536、今年に入って8日にBuild 19541が公開されている。以前解説したように(「完成が近づいてきたWindows 10 20H1とともに、Windows Insider Programも変わる」)、Build 19536は「rs_prelease」というブランチになるが、これはマイクロソフト社内のアクティブな開発ブランチからビルドを直接受け取るのだという。

 このブランチで公開される新機能は、今春以降のアップデートに取り込まれるが、特定のWindows 10バージョンを想定したものではないとのこと。つまり、Fast Ringは今後ずっとプレビュー版ビルドが公開されていくが、機能アップデートに関しては別途プレビュービルドを提供するということらしい。

 20H1でWindows Insider ProgramでFast Ringを選択していたユーザーは、強制的にSlow Ringに移行された。おそらく、Slow Ringが春の機能アップデート用になると推測できる。19H2のプレビューでは、最終的にReleas Preview Ringが使われたので、今後のWindows Insider Programでは、

Fast Ring:継続開発される開発ブランチのプレビュー
Slow Ring:春の機能アップデートのプレビュー
Release Preview Ring:秋の機能アップデートのプレビュー

となると思われる。

 20H1は、3月末から4月に完成し、5月には一般向け配布が開始される予定だ。しかし、Slow Ringのほうは、昨年12月10日にビルド19041が公開されたのを最後にほぼ1ヵ月、プレビュー版が配布されていない。Slow Ringの説明では、「1ヵ月に1回か2回」となっているので、そろそろ何かあるはずだ。

Fast RingでWindows 10の変化を調べる

 Fast Ringが特定の機能更新を想定しなくなるため、Fast RingでのWindows 10の改良がすべてSlow Ringで公開されるプレビューに反映しなくなる可能性がある。

 新機能の追加などは、MSのブログなどで確認することができるが、情報としてはバグフィックス程度しか公開されないビルドも、リリース前になると増えてくる。また、カーネルの変更などに関する情報は公開されていない。そこで、Fast Ringに登録しているPC(複数台ある)の変化を記録することにした。

 プレビューがアップデートすると必ず再起動するので、そのタイミングでスクリプトを実行しようかと思ったが、プレビュー版のアップデートのあと、初期設定が起動することもあり、スクリプトが原因で障害が起こるのも面倒である。このため、以前紹介したPowerShellのリモート実行機能を使い(「PowerShell Remotingで自宅にあるたくさんのWindowsマシンを管理する」)、1台のマシンから他のマシンの情報を取得することにした。このようにすれば調査対象のマシンにプログラムやスクリプトを入れる必要がない。

 PSRemotingは、操作されるマシン側で1回コマンドを実行して、リモート実行を許可すれば、あとは、操作元のPCからネットワーク経由で見えるようになっていればよい。

 これまで、プレビュー版に対してずっと使ってきたが、アップデートでは無効にはならない。もちろんインターネットを介しての実行などはできないが、ローカルネットワークであれば、Windowsマシンのリモート実行などが簡単に実行できる。具体的には、リモート先のマシンで以下のコマンドを実行する。

Enable-PSRemoting

 なお、Hyper-Vなどで仮想ネットワークアダプター組み込んでいる場合、すべてのネットワークをPrivateにするのが難しい(設定する場合には、ネットワークに接続して動作状態にする必要がある)。この場合には、

Enable-PSRemoting -SkipNetworkProfileCheck

として、ネットワークのチェックを抑制する。

 さて何を調べるかだが、アップデートされたファイルを全部では情報量が多すぎてどうしようもない。ここは、ビルド番号などの情報とカーネルファイルの変遷を調べることにした。

 具体的には「ntoskrnl.exe」(C:\Windows\System32\ntoskrnl.exe)の違いを調べる。システム情報などは、Systeminfo.exeコマンドを使うこともでき、このコマンドもリモートコンピューターに対して実行が可能なのだが、こちらも情報が多すぎるし、OS名称など、利用価値のないものが多数含まれている。

 最低限必要な情報としては、カーネルファイルのサイズの作成日、そしてプロパティとして公開されているバージョン情報、そしてWindowsのビルド番号などだ。カーネルファイルも通常のファイルなので、PowerShellのGet-ChildItemコマンドでファイルオブジェクトを取得したら、「Length」(ファイルサイズ)、「CreationTime」(ファイルの作成日)、「VersionInfo」(ファイルのプロパティ)を取得すればよい。VersionInfoは、エクスプローラーの右クリックメニューでファイルのプロパティを開いたときの「詳細」タブに表示される情報だ。

 ただし、PowershellでVersionInfoを取得すると単なる文字列になるため、ちょっとした工夫が必要になる。まずは、ファイルオブジェクトを取得する。

$L=Get-ChildItem "C:\\Windows\\System32\\ntoskrnl.exe"

変数$Lにカーネル(ntoskrnl.exe)のファイルプロパティが入るため、あとは、以下のようにして情報を出力できる。

$L.Length
$L.CreationTimeUtc
$L.Versioninfo -split "`n" | select-string "Version|Filename"

 また、Windowsのビルド番号などは、レジストリから取得する。これには、

(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").BuildLabEx

を使う。BuildLabExは、ビルド番号やビルドのブランチ名などを含むレジストリ値である。

 さて、他のマシンにPSRemotingでコマンドを実行させるには、以下のような手順を使う

$SX=New-PSSession "PC名"
Invoke-Command -Session $SX -ScriptBlock {リモートで実行するコマンド}
Remove-PSSession $SX

最初の行は、リモートのコンピューター名を指定してセッションを作るもの、2行目はこれを使ってスクリプトを実行させるもの、3行目は作成したセッションの終了である。コマンド1つだけなら、

Invoke-Command -ComputerName "PC名" -ScriptBlock {リモートで実行するコマンド}

としてもいいのだが、複数のInvoke-Commandを使うなら、セッションの作成、終了は別にしたほうが効率的だ。あとで、コマンドを追加する可能性を考えると、最初からこの形式にしておいたほうがいいだろう。

 なお、単独のInvoke-Commandなら、"PC名"に複数のPC名をカンマで区切って並べると、同時に複数のマシンに実行ができるのだが、出力が混ざってしまうため、設定変更リモート側で完結する処理には向いているが、情報収集用途では使うのが難しい。そこで複数のPCを対象にする場合、foreachなどでPC名1つについて、情報を取得するようにしたほうが便利だ。

 このあたりをまとめたのが、以下のリストのプログラムである。メモ帳などにコピーして、拡張子.ps1(ファイル名はなんでもいい)として保存し、Powershellから起動することで、最初の行で指定したPCから情報を取得する。

 実行日時を先頭に出力するようにしてあるので、このままファイルに追記していけば記録ができる。必要なら、CSVにするとか、いろいろと考えられるが、今回はとりあえず原理を示すにとどめた。

$PC="pc1","pc2","pc3"
"Date:$(get-date)"
foreach ($x in $PC) {
    $SX=New-PSSession $x
    "`n########## Computer Name= $x";
    $L=(Invoke-Command -Session $SX -ScriptBlock { Get-ChildItem "C:\\Windows\\System32\\ntoskrnl.exe" } )
    $L.Versioninfo -split "`n" | select-string "Version|Filename"
    "File Size: $($L.Length)"
    "CreationTimeUtc: $($L.CreationTimeUtc)`n"
    (Invoke-Command -Session $SX -ScriptBlock { ”BuildLabEx: " + (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").BuildLabEx })
    remove-PSSession $SX
    }

カテゴリートップへ

本記事はアフィリエイトプログラムによる収益を得ている場合があります

この連載の記事

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
¥2,413
2
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
¥7,313
3
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
¥1,899
4
CIO フラットスパイラルケーブル CtoC (Type-C/USB-C) PD 急速充電 平型 磁石 マグネット吸着 まとまる 充電ケーブル PD 240W データ転送 480Mbps 形状記憶 iPhone 17 / 16 / 15 Macbook Pro/Air/iPad用/ノートパソコン Galaxy Google Pixel Android (ライトブラック, 1.5m)
CIO フラットスパイラルケーブル CtoC (Type-C/USB-C) PD 急速充電 平型 磁石 マグネット吸着 まとまる 充電ケーブル PD 240W データ転送 480Mbps 形状記憶 iPhone 17 / 16 / 15 Macbook Pro/Air/iPad用/ノートパソコン Galaxy Google Pixel Android (ライトブラック, 1.5m)
¥2,290
5
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥740
6
Anker Zolo USB-C & USB-C ケーブル (240W, 高耐久ナイロン) 1.8m ブラック iPhone 17 / 16 / 15 Galaxy iPad Pro MacBook Pro/Air 各種対応
Anker Zolo USB-C & USB-C ケーブル (240W, 高耐久ナイロン) 1.8m ブラック iPhone 17 / 16 / 15 Galaxy iPad Pro MacBook Pro/Air 各種対応
¥1,590
7
Anker Nano Charging Station (7-in-1, 100W, 巻取り式 USB-C ケーブル) (USBタップ 電源タップ) 【PSE技術基準適合】MacBook iPad iPhone Galaxy Android ブラック
Anker Nano Charging Station (7-in-1, 100W, 巻取り式 USB-C ケーブル) (USBタップ 電源タップ) 【PSE技術基準適合】MacBook iPad iPhone Galaxy Android ブラック
¥9,990
8
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
¥990
9
Verbatim バーベイタム 1回録画用 ブルーレイディスク BD-R 25GB 50枚+3枚増量パック インクジェットプリンタ対応 ホワイト 片面1層 1-6倍速
Verbatim バーベイタム 1回録画用 ブルーレイディスク BD-R 25GB 50枚+3枚増量パック インクジェットプリンタ対応 ホワイト 片面1層 1-6倍速
¥2,480
10
ソニー ゲーミングイヤホン INZONE Buds:WF-G700N Fnatic監修/ワイヤレス / 低遅延2.4GHzワイヤレス接続 USBType-Cトランシーバー同梱/LE Audio対応/アクティブノイズキャンセリング/立体音響 / 最大約24時間バッテリー / 急速充電/マイク付き / PS5 スマホ PC Switch グラスパープル
ソニー ゲーミングイヤホン INZONE Buds:WF-G700N Fnatic監修/ワイヤレス / 低遅延2.4GHzワイヤレス接続 USBType-Cトランシーバー同梱/LE Audio対応/アクティブノイズキャンセリング/立体音響 / 最大約24時間バッテリー / 急速充電/マイク付き / PS5 スマホ PC Switch グラスパープル
¥20,800

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

ASCII.jpメール デジタルMac/iPodマガジン