0

Hyper-V には、ホストとゲスト VM の間でキーと値のペアを送信する KVP コンポーネントが含まれています。

値を送受信するためのコード サンプルは、WMIのPowerShellの Windows ゲストで利用できます。

ただし、私のゲストはこのサービスの Linux バージョンを使用しています。

このサービスにキーと値のペアを照会するサンプル Linux スクリプトはどこにありますか?

4

3 に答える 3

0

特定のファイルのキーと値のペアを読み取る bash スクリプトを次に示します。

#!/bin/bash
fname=$1
echo "Reading $fname"
nb=$(wc -c < $1)
nkv=$(( nb / (512+2048) ))
for n in $(seq 0 $(( $nkv - 1 )) ); do
        offset=$(( $n * (512 + 2048) ))
        k=$(dd if=$fname count=512 bs=1 skip=$offset status=none | sed 's/\x0.*//g')
        v=$(dd if=$fname count=2048 bs=1 skip=$(( $offset + 512 )) status=none | sed 's/\x0.*//g')
        echo "$k = $v"
done
于 2020-11-10T08:13:20.807 に答える
-1

Java での同じ機能:

String guest_param_file="/var/lib/hyperv/.kvp_pool_3";
if (new File(guest_param_file).exists())
{                
   try
   {
      BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(guest_param_file),"UTF-8"));
      char [] ckey=new char[512] ;
      char [] cvalue=new char[2048] ;
      while (true)
      {
        int charcount=br.read(ckey);
        if (charcount==-1)
        {
           break;
        }
        br.read(cvalue);
        String key=new String(ckey).trim();
        String value=new String(cvalue).trim();
        System.out.println( key+" = "+value);
     }
     br.close();

   }
   catch (UnsupportedEncodingException ex)
   {
   }
   catch (FileNotFoundException ex)
   {
   }
   catch (IOException ex)
   {
   }
 }
于 2015-02-05T12:59:49.003 に答える