我正在尝试使用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
所以它归结为我想要:
答案 0 :(得分:0)
没关系,看起来这是我的用户错误。 VM已在VM启动后设置值。看起来必须在VM启动之前设置参数(或者应该重新启动VM)。