Powershell Hilfe zu Get-VM
Guten Morgen Admins,
ich habe mal wieder ein Problem beim scripten per Powershell.
Ich kriege per variable heraus welche VMs laufen
Ziel ist es, diese in einer Schleife einzeln nacheinander herunterzufahren, zu exportieren und anschliessend wieder zu starten.
Wie ich das dann innerhalb der Schleife realisiere ist nicht mein Problem!
gibt die 3 derzeit laufen VMs zurück:
Server1
Server2
Server5
Wie kann ich diese VMs jetzt einzeln per for Schleife oder ähnlichem Konstrukt abarbeiten?
Die Ausgabe kann ich auf jeden Fall nicht wie folgt bearbeiten, da es sich nicht um einen array handelt.
Musss ich diese Ausgabe erst zu einem array machen?
Schönen Sonntag
Potshock
ich habe mal wieder ein Problem beim scripten per Powershell.
Ich kriege per variable heraus welche VMs laufen
Ziel ist es, diese in einer Schleife einzeln nacheinander herunterzufahren, zu exportieren und anschliessend wieder zu starten.
Wie ich das dann innerhalb der Schleife realisiere ist nicht mein Problem!
$VM_statusOn = Get-VM | ? state -eq "running" | %{($_.Name)}
echo $VM_statusOn
Server1
Server2
Server5
Wie kann ich diese VMs jetzt einzeln per for Schleife oder ähnlichem Konstrukt abarbeiten?
Die Ausgabe kann ich auf jeden Fall nicht wie folgt bearbeiten, da es sich nicht um einen array handelt.
Musss ich diese Ausgabe erst zu einem array machen?
for ($i=0; $i -lt $VM_statusOn.length; $i++) {
echo "Folgende VM laeuft und wird gestoppt:"
echo $VM_statusOn
Anweisung1
Anweisung2
Anweisung3
}
Schönen Sonntag
Potshock
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 451026
Url: https://administrator.de/contentid/451026
Ausgedruckt am: 05.11.2024 um 00:11 Uhr
2 Kommentare
Neuester Kommentar
Wie kann ich diese VMs jetzt einzeln per for Schleife oder ähnlichem Konstrukt abarbeiten?
Hm die Frage die ich mir stelle ist, wie du die erste Zeile hinbekommen hast und jetzt diese Frage stellst, du hast sie dir eigentlich schon mit der ersten Zeile selbst beantwortet, denn das %{} ist eine Foreach-Schleife B-)$VM_statusOn = Get-VM | ? state -eq "running" | %{$_.Name}
# Variante 1
Foreach($vm in $VM_statusON){
Write-host $vm
}
# Variante 2
$VM_statusOn | %{write-host $_}
# Variante 3
0..($VM_statusON.Count -1) | %{Write-host $VM_statusON[$_]}
# Variante 4
for ($i=0; $i -lt $VM_statusOn.length; $i++) {
Write-host $VM_statusOn[$i]
}