連載
» 2018年09月25日 05時00分 公開

その知識、ホントに正しい? Windowsにまつわる都市伝説(119):最新Windows 10で見つけた謎のコマンド「Convertvhd.exe」の正体は……

Windows 10 バージョン1709には、システムディレクトリに「convertvhd.exe」というコマンドが追加されました。Hyper-VのPowerShellコマンドレットの一つ「Convert-VHD」に似ていますが、果たしてその正体は……。

[山市良,テクニカルライター]
「Windowsにまつわる都市伝説」のインデックス

Windowsにまつわる都市伝説

何をしてもダンマリのコマンド「Convertvhd.exe」

 先日、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)。

画面1 画面1 Windows 10 バージョン1803のシステムディレクトリにあった見慣れないコマンド「Convertvhd.exe」。実行しても何も起きない

 Microsoftの公式サイトを検索しても、このコマンドツールの説明を見つけることはできませんでした。ヘルプにも公式ドキュメントにも説明がないコンポーネントが知らぬ間に追加されるのは、筆者としては少しというか、かなり気持ちが悪いです。それらしき名前をかたるマルウェアの類いなんじゃないか、と心配になる人もきっといるでしょう。

 ちなみに、Hyper-VのConvert-VHDコマンドレットは、仮想ハードディスクファイルの形式(VHDX/VHD)、種類(容量固定/容量可変/差分)、ブロックサイズを変換するコマンドレットです。

 このコマンドツールがいつから存在していたのか、確認してみました。Windows Server 2016(ビルド14393.x、Windows 10 バージョン1607と同一ビルド)やWindows 10 Creators Update(バージョン1703、ビルド15063.x)には存在しません(画面2)。

画面2 画面2 Windows 10 バージョン1703やWindows Server 2016には「Convertvhd.exe」は存在しない(Hyper-Vの役割の有効/無効に関係なく)

 どうやら、Windows 10 Fall Creators Update(バージョン1709、ビルド16299.x)およびWindows Server, version 1709(ビルド16299.x)で追加された、比較的新しいコマンドツールのようです。そして、Windows 10 バージョン1709やWindows Server, version 1709のコマンドツールでは、「例外(Exception)」エラーが発生するものの「/?」オプションが機能し、使用方法が表示されました(画面3)。

画面3 画面3 Windows 10 バージョン1709とWindows Server, version 1709には「Convertvhd.exe」が存在し、例外エラーとともにヘルプが表示された

「Strings.exe」でWindows 10 バージョン1803のヘルプを確認する

 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.
……

拡張子「.VHDPMEM」を鍵に公式ドキュメントを検索すると……

 Stringsユーティリティーで得られた重要なヒントである拡張子「.VHDPMEM」でMicrosoftの公式サイトを検索してみたところ、すぐにWindows Server, version 1709の新機能のドキュメントにたどり着きました。以下のHyper-V仮想マシン向けの2つの機能に関連するもののようです。

  • VMの記憶域クラスメモリのサポート
  • 仮想永続メモリ(Virtualized Persistent Memory:vPMEM)

 この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で利用可能であるかどうかは分かりません。

もしかして「Convertvhd.exe」は機能不全?

 拡張子「.VHDPMEM」の仮想ハードディスクファイルは、Convertvhd.exeを使用しなくても、Hyper-Vの「New-VHD」コマンドレットで作成できます(画面4)。

画面4 画面4 「New-VHD」コマンドレットで拡張子「.VHDPMEM」を指定すると、PMEMコントローラーに接続可能な仮想ハードディスクを準備できる

 おそらく、Convertvhd.exeは通常の方法で作成した容量固定の仮想ハードディスクファイル(拡張子「.VHDX」)を、拡張子「.VHDPMEM」の仮想ハードディスクファイルに変換するものなのでしょう。

 しかし、Windows 10 バージョン1803やWindows Server, version 1803でさまざまなオプションで試してみましたが、変換することはできませんでした(画面5)。Windows 10 バージョン1709やWindows Server, version 1709では試していませんが、「/?」オプションのヘルプ表示と同様、例外エラーが発生することになるでしょう。

画面5 画面5 拡張子「.VHDX」の通常の容量固定仮想ハードディスクをConvertvhd.exeで変換しようとしたが、何も起こらない

 謎の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.

「Windows 7」サポート終了 対策ナビ

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。