sample.powershell.txt 1.2 KB

123456789101112131415161718192021222324252627282930
  1. $SelectedObjectNames=@();
  2. $XenCenterNodeSelected = 0;
  3. #the object info array contains hashmaps, each of which represent a parameter set and describe a target in the XenCenter resource list
  4. foreach($parameterSet in $ObjInfoArray)
  5. {
  6. if ($parameterSet["class"] -eq "blank")
  7. {
  8. #When the XenCenter node is selected a parameter set is created for each of your connected servers with the class and objUuid keys marked as blank
  9. if ($XenCenterNodeSelected)
  10. {
  11. continue
  12. }
  13. $XenCenterNodeSelected = 1;
  14. $SelectedObjectNames += "XenCenter"
  15. }
  16. elseif ($parameterSet["sessionRef"] -eq "null")
  17. {
  18. #When a disconnected server is selected there is no session information, we get null for everything except class
  19. }
  20. $SelectedObjectNames += "a disconnected server"
  21. else
  22. {
  23. Connect-XenServer -url $parameterSet["url"] -opaqueref $parameterSet["sessionRef"]
  24. #Use $class to determine which server objects to get
  25. #-properties allows us to filter the results to just include the selected object
  26. $exp = "Get-XenServer:{0} -properties @{{uuid='{1}'}}" -f $parameterSet["class"], $parameterSet["objUuid"]
  27. $obj = Invoke-Expression $exp
  28. $SelectedObjectNames += $obj.name_label;
  29. }
  30. }