【发布时间】:2013-12-08 01:00:10
【问题描述】:
我正在尝试使用 WMI 从 xenstore 检索一些参数(具体来说,我希望在创建 VM IP 地址后使用this script 更改它)。
根据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
所以归根结底,我想要么:
- 了解如何在执行 xe vm-param-set 命令后在 WMI 脚本中检索 xenstore 参数。
- 了解如何在 xenserver CLI 中设置参数,其方式与上述示例中 $session.SetValue 的工作方式相同。
【问题讨论】:
标签: powershell citrix xen