先日、Windows 10 April 2018 Update(バージョン1803、ビルド17134.x)のシステムディレクトリ(%Windir%\System32)にある別のコンポーネントを調べていたとき、「Convertvhd.exe」という見慣れないコマンドツールの存在に気が付きました。
FATボリュームをNTFSに変換する「Convert.exe」(File System Conversion Utility)によく似ていますが、ファイルのプロパティの説明には「VHD Conversion Tool」とあります。
Hyper-VのPowerShellコマンドレットの一つ「Convert-VHD」コマンドレットにも似ていますが、オプションなしで実行しても、コマンドのヘルプを確認しようと「/?」オプションを付けて実行しても、うんともすんともいってくれません(画面1)。
Microsoftの公式サイトを検索しても、このコマンドツールの説明を見つけることはできませんでした。ヘルプにも公式ドキュメントにも説明がないコンポーネントが知らぬ間に追加されるのは、筆者としては少しというか、かなり気持ちが悪いです。それらしき名前をかたるマルウェアの類いなんじゃないか、と心配になる人もきっといるでしょう。
ちなみに、Hyper-VのConvert-VHDコマンドレットは、仮想ハードディスクファイルの形式(VHDX/VHD)、種類(容量固定/容量可変/差分)、ブロックサイズを変換するコマンドレットです。
このコマンドツールがいつから存在していたのか、確認してみました。Windows Server 2016(ビルド14393.x、Windows 10 バージョン1607と同一ビルド)やWindows 10 Creators Update(バージョン1703、ビルド15063.x)には存在しません(画面2)。
どうやら、Windows 10 Fall Creators Update(バージョン1709、ビルド16299.x)およびWindows Server, version 1709(ビルド16299.x)で追加された、比較的新しいコマンドツールのようです。そして、Windows 10 バージョン1709やWindows Server, version 1709のコマンドツールでは、「例外(Exception)」エラーが発生するものの「/?」オプションが機能し、使用方法が表示されました(画面3)。
Windows Sysinternalsの「Strings.exe」ユーティリティー(https://docs.microsoft.com/ja-jp/sysinternals/downloads/strings)を使用して、Convertvhd.exeのバイナリに含まれる文字列を調べてみたところ、Windows 10 バージョン1803およびWindows Server, version 1803での本来のヘルプは次のものであることが分かりました。
C:\>strings %Windir%\System32\Convertvhd.exe …… VHD Conversion Tool [Version 1.00] Copyright (C) 2017 Microsoft Corporation. All rights reserved. USAGE: convertvhd.exe -source <filepath> -destination <filepath> [-btt] [-toPMem] convertvhd.exe -sourceToken <file handle> -destinationToken <file handle> [-btt] [-toPMem] ……
「/?」オプションで表示されない理由は不具合なのか、仕様なのか不明です。「VHD Conversion Tool[Version 1.00]」はWindows 10バージョン1709のものと共通ですが、構文やオプションは少々異なるようです。
また、Stringsユーティリティーは、次のようなヒントも示しました。これらの情報からは、4KB論理セクタサイズの容量固定VHDXを、「.VHDPMEM」という拡張子のファイル形式に変換するコマンドツールであるように読み取れます。
…… Source differencing disks are not supported. Source disk must use 4KB logical sector size. Only fixed VHDXs are supported. BTT VHDX Conversion Tool Destination must be a .VHDPMEM file. ……
Stringsユーティリティーで得られた重要なヒントである拡張子「.VHDPMEM」でMicrosoftの公式サイトを検索してみたところ、すぐにWindows Server, version 1709の新機能のドキュメントにたどり着きました。以下のHyper-V仮想マシン向けの2つの機能に関連するもののようです。
この2つの機能は、不揮発性メモリの比較的新しい技術である「NVDIMM」に対応した、Windows Server, version 1709の新機能でした。
具体的には、「ダイレクトアクセス(Direct Access:DAX)」モードのNVDIMM-Nを、「記憶域クラスメモリ(Storage Class Memory:SCM)」のHyper-Vホスト上のディスクとして認識させた上で、仮想マシンに「PMEMコントローラー」という新しい種類の仮想的なディスクコントローラーを追加し、「.VHDPMEM」の拡張子を持つ仮想ハードディスクを介して、SCMディスクをPMEMコントローラーに接続するというもののようです。
あやふやな言い方しかできないのは、NVDIMN-N対応のサーバハードウェアが手元にないため確認できないからです。ハードウェアさえ用意できれば、Windows Server, version 1709以降で実際に動かせそうです。Windows 10 バージョン1709以降のクライアントHyper-Vで利用可能であるかどうかは分かりません。
拡張子「.VHDPMEM」の仮想ハードディスクファイルは、Convertvhd.exeを使用しなくても、Hyper-Vの「New-VHD」コマンドレットで作成できます(画面4)。
おそらく、Convertvhd.exeは通常の方法で作成した容量固定の仮想ハードディスクファイル(拡張子「.VHDX」)を、拡張子「.VHDPMEM」の仮想ハードディスクファイルに変換するものなのでしょう。
しかし、Windows 10 バージョン1803やWindows Server, version 1803でさまざまなオプションで試してみましたが、変換することはできませんでした(画面5)。Windows 10 バージョン1709やWindows Server, version 1709では試していませんが、「/?」オプションのヘルプ表示と同様、例外エラーが発生することになるでしょう。
謎のConvertvhd.exeの存在は、Windows Server, version 1709以降のHyper-Vで利用可能になった、NVDIMM対応の新機能まで導いてくれました。この新機能に関しては試せる環境がないので、「へぇ、こんなこともできるようになったんだ」としか言えませんが、説明不足でちゃんと機能しないようなコンポーネント(筆者の使い方が間違っているのかもしれませんが)が正式リリースに同梱されるWindows 10って、常に先を走ってますね。
岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(Oct 2008 - Sep 2016)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows Server 2016テクノロジ入門-完全版』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.
Server & Storage 記事ランキング