potshock
Goto Top

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!

$VM_statusOn = Get-VM | ? state -eq "running" | %{($_.Name)}  
echo $VM_statusOn
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?

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

Content-ID: 451026

Url: https://administrator.de/contentid/451026

Ausgedruckt am: 05.11.2024 um 00:11 Uhr

139708
Lösung 139708 12.05.2019 aktualisiert um 10:58:19 Uhr
Goto Top
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]
}
Gruß wireguard
potshock
potshock 12.05.2019 aktualisiert um 11:06:13 Uhr
Goto Top
Hi wirguard,

danke Dir, hatte wohl ein ziemlich dickes Brett vorm Kopf!
Aber um bei der Wahrheit zu bleiben:
| %{$_.Name} hatte ich ergoogelt und es war mir gar nicht klar, dass das eine Foreach-Schleife ist face-wink!

Potshock