新品互換用パソコン バッテリー、ACアダプタ、ご安心購入!
ノートpcバッテリーの専門店



人気の検索: ADP-18TB | TPC-BA50| FR463

容量 電圧 製品一覧

スペシャル

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

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)のファイルプロパティが入るため、あとは、以下のようにして情報を出力できる。