Refnex 10 Geschrieben 17. Oktober 2016 Melden Teilen Geschrieben 17. Oktober 2016 Hallo Zusammen, Ich muss ein Kleines Script in Powershell erstellen das Folgendes erledigt: Ausgangs Situation ist ein Cluster mit mehreren Nodes, Das script soll ermitteln Auf welchem Node gerade eine VM Läuft und welcher Node der Owner ist (Bevorzugter Besitzer Node ist ) Wenn ddie VM auf dem Falschen Node Läuft soll soll sie Via Live Migration verschoben werden. Ich habe versuch mit Folgenden Die Situation zu ermitteln: Die Ist situation: $Array_VM_is = @(Get-ClusterGroup | select Name, OwnerNode) Dies gibt mir auch schön aus Auf Welchem Node Gerade Die VMs laufen und Pumpt sie in ein Array. Die Soll Situation: $Array_VM_want =@(Get-ClusterGroup | Get-ClusterOwnerNode ) Zeigt mir dann an welcher der Owner (Bevorzugter Besitzer Node ist ) Wie kann ich nun am besten diese Zwei spalten, Array_VM_is "OwnerNode" mit der Spalte aus Array_VM_want "OwnerNodes" Vergleichen und mir die Falschen Maschienen ausgeben lassen ? Ich habe es schon versucht mit forEach ($Node in $Array_VM_is) { if ($Array_VM_want.OwnerNodes -contains $Node.OwnerNode){ echo $Node.OwnerNode } } #echo $compare jedoch bekomme ich hier nur Die HyperV Nodes Ausgegeben im Format: Name ID State HyperV-Host (Id des Node) Up/Down Das Selbe Ergebniss wenn ich versuche sie mit compare zu Vergleichen Compare-Object -ReferenceObject $Array_VM_is.OwnerNode -DifferenceObject $Array_VM_want.OwnerNodes Kann mir hier jemand weiterhelfen ? Gruss Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 17. Oktober 2016 Melden Teilen Geschrieben 17. Oktober 2016 probiers mal direkt: $New = $Array_VM | Where {$Array_VM_want -NotContains $_} $New.OwnerNodes Zitieren Link zu diesem Kommentar
Refnex 10 Geschrieben 17. Oktober 2016 Autor Melden Teilen Geschrieben 17. Oktober 2016 (bearbeitet) Hi Sorry war noch unterwegs, Kannst du das etwas Spezifizieren ? Meinst du so ? # Auslesen der Ist Situation Ausgabe Name und Host auf dem die VM derzeit läuft $Array_VM_is = @(Get-ClusterGroup | select Name, OwnerNode) # Auslesen des Prefferiertem Node $Array_VM_want =@(Get-ClusterGroup | Get-ClusterOwnerNode ) #| select OwnerNodes $New = $Array_VM_is | Where {$Array_VM_want -NotContains $_} $New.OwnerNodes Dort bekomme ich Gar kein ergebniss wenn ich mir die Variable New.OwnerNodes ausgeben lasse Lasse ich mir aber die Variable New.OwnerNode " ACHTUNG ohne S " bekomme ich das gleiche ergebniss wie vorher. Name ID State HyperV-Host (Id des Node) Up/Down Hierzu sei auch gesagt das bei den Beiden Abfragen in zu den VM und den Hosts die Parameter bei den VM´s in (wo sie Momentan laufen ) als OwnerNode ( ohne s ) angegeben werden und bei der Abfrage Wo sie laufen sollten der Node als OwnerNodes ( mit s ) angegeben wird. Bin echt a bissal ratlos bearbeitet 17. Oktober 2016 von Refnex Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 17. Oktober 2016 Melden Teilen Geschrieben 17. Oktober 2016 Schau mal bitte, ob Dir das hier weiterhilft: $Wanted = Get-ClusterGroup | Get-ClusterOwnerNode $Is = Get-ClusterGroup | select Name, OwnerNode Foreach($w in $Wanted){ Foreach($i in $Is){ If($w.ClusterObject -eq $i.Name){ $Result = [PSCustomObject] @{ 'Name' = $i.Name 'OwnerNodes' = $w.OwnerNodes 'OwnerNode' = $i.OwnerNode } } } Write-Output $Result } Zitieren Link zu diesem Kommentar
Beste Lösung Refnex 10 Geschrieben 18. Oktober 2016 Autor Beste Lösung Melden Teilen Geschrieben 18. Oktober 2016 Perfect super danke das hat mir sehr geholfen Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.