Как получить параметры xenstore из интерфейса WMI

Я пытаюсь получить некоторые параметры из xenstore с помощью WMI (в частности, я надеялся использовать этот скрипт для изменения IP-адреса ВМ после ее создания).

Согласно этой статье, кажется, что я должен просто сделать что-то вроде:

Из интерфейса командной строки xenserver:

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. Узнайте, как получить параметр xenstore в сценарии WMI после выполнения команды xe vm-param-set.
  2. Узнайте, как установить параметр в интерфейсе командной строки xenserver так же, как $session.SetValue работает в приведенном выше примере.

person user949286    schedule 08.12.2013    source источник


Ответы (1)


Неважно, похоже, это была ошибка пользователя с моей стороны. Я устанавливал значения после того, как виртуальная машина уже была запущена. Похоже, что параметры должны быть установлены до запуска ВМ (или ВМ должна быть перезапущена).

person user949286    schedule 08.12.2013