最新Windows 10で見つけた謎のコマンド「Convertvhd.exe」の正体は……:その知識、ホントに正しい? Windowsにまつわる都市伝説(119)
Windows 10 バージョン1709には、システムディレクトリに「convertvhd.exe」というコマンドが追加されました。Hyper-VのPowerShellコマンドレットの一つ「Convert-VHD」に似ていますが、果たしてその正体は……。
何をしてもダンマリのコマンド「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)。
Microsoftの公式サイトを検索しても、このコマンドツールの説明を見つけることはできませんでした。ヘルプにも公式ドキュメントにも説明がないコンポーネントが知らぬ間に追加されるのは、筆者としては少しというか、かなり気持ちが悪いです。それらしき名前をかたるマルウェアの類いなんじゃないか、と心配になる人もきっといるでしょう。
ちなみに、Hyper-VのConvert-VHDコマンドレットは、仮想ハードディスクファイルの形式(VHDX/VHD)、種類(容量固定/容量可変/差分)、ブロックサイズを変換するコマンドレットです。
- Convert-VHD[英語](Windows IT Pro Center)
このコマンドツールがいつから存在していたのか、確認してみました。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)。
「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)
- Windows Server バージョン1709の新機能(Windows IT Pro Center)
この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)。
おそらく、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.
関連記事
- 今度はWindows 7のWindows Updateでトラブル──でも、解決策はあります!
2017年12月4日ごろから、Windows 7で「Windows Update」を実行できないというトラブルに遭遇しているユーザーが少なからずいるようです。Microsoftによる公式なアナウンスや回避策は今のところないようですが、取り急ぎ、問題を解消できる可能性がある方法を紹介します。 - 年の初めに再確認、2018年にサポートが終了するMicrosoft製品は?
Microsoftは同社の製品およびサービスについて、明確なサポートポリシー(ただし、途中で変更あり)に基づき、更新プログラムを含むサポートを提供しています。2018年は主に10年前にリリースされた製品がサポート終了を迎えます。どのような製品があるのか、年の初めに再確認し、使用していないかどうかを調べておきましょう。 - Windows 10 Fall Creators Updateがやってきた! 急いでアップグレードするその前に……
Windows 10の最新バージョン「Windows 10 Fall Creators Update バージョン1709(ビルド16299)」がリリースされました。「出勤しようとしたら、突然、アップグレードが始まって困った」「早く帰りたいのにPCの電源を落とせない」なんてことにならないよう、まだ準備ができていない、そして、まだWindows Updateで検出されないのであれば、今が備えるチャンスですよ。 - はじめてのWindows 10入門講座――最新OSとうまく付き合っていく方法
本連載では、Windowsユーザーとしての筆者が、日々遭遇する疑問の調査やトラブル解決を取り上げてきましたが、たびたび深入りし過ぎ、一般ユーザーには余計な情報を提供したかもと反省しています。そこで今回は、はじめてWindows 10に触れるという方に向けて、Windows 10とうまく付き合うヒントを紹介します。