16.10.3. virt-win-reg を使用する
レジストリーキーを読み取るには、ゲスト仮想マシン (またはそのディスクイメージ) の名前とレジストリーキーの名前を指定します。目的のキーの名前を囲むには、一重引用符を使用する必要があります。
# virt-win-reg WindowsGuest \ 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall' \ | less
出力は、Windows の
.REG
ファイルで使用される標準のテキストベースの形式です。
注記
この形式では文字列の移植可能なエンコード方法が適切に定義されていないため、文字列には 16 進引用符が使用されます。これは、あるマシンから別のマシンに
.REG
ファイルを転送するときに忠実度を確保する唯一の方法です。
この単純な Perl スクリプトを介して virt-win-reg の出力をパイプ処理することにより、16 進引用符で囲まれた文字列を印刷可能にすることができます。
perl -MEncode -pe's?hex\((\d+)\):(\S+)?$t=$1;$_=$2;s,\,,,g;"str($t):\"".decode(utf16le=>pack("H*",$_))."\""?eg'
変更をオフラインゲスト仮想マシンの Windows レジストリーにマージするには、最初に
.REG
ファイルを準備する必要があります。この作業に関するドキュメントは、ここで入手できます。.REG
ファイルを準備したら、次のように入力します。
# virt-win-reg --merge WindowsGuest input.reg
これにより、ゲスト仮想マシンのレジストリーが更新されます。