如何从WMI接口检索xenstore参数

时间:2013-12-08 01:00:11

标签: powershell citrix xen

我正在尝试使用WMI从xenstore中检索一些参数(具体来说,我希望在创建后使用this script更改VM IP地址)。

根据this article,似乎我应该能够做类似的事情:

来自xenserver CLI:

xe vm-param-set uuid=e66660e9-85e1-1f99-3229-1dfa7d1065a8 xenstore-data:data/TempValue=test

然后在powershell脚本中:

$base = gwmi -n root\wmi -cl CitrixXenStoreBase 
$sid = $base.AddSession("MyNewSession") 
$session = gwmi -n root\wmi -q "select * from CitrixXenStoreSession where SessionId=$($sid.SessionId)" 
$output = $session.GetValue("data/TempValue").value
log "$output"

但这似乎并没有找到我期望的价值。

我注意到的一件事是,如果我从powershell脚本设置值,它似乎在运行上一个脚本时一致地检索该值:

$base = gwmi -n root\wmi -cl CitrixXenStoreBase 
$sid = $base.AddSession("MyNewSession") 
$session = gwmi -n root\wmi -q "select * from CitrixXenStoreSession where SessionId=$($sid.SessionId)" 
$session.SetValue("data/TempValue","This is a string")

它似乎保留了跨会话的设置值,但是当我回到CLI并尝试查找值时,我什么也得不到:

xe vm-param-list uuid=e66660e9-85e1-1f99-3229-1dfa7d1065a8 | grep TempValue

所以它归结为我想要:

  1. 了解如何在执行xe vm-param-set命令后在WMI脚本中检索xenstore参数。
  2. 了解如何在xenserver CLI中设置参数的方式与上面示例中$ session.SetValue的工作方式相同。

1 个答案:

答案 0 :(得分:0)

没关系,看起来这是我的用户错误。 VM已在VM启动后设置值。看起来必须在VM启动之前设置参数(或者应该重新启动VM)。