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-Key: 451026

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

Printed on: April 25, 2024 at 04:04 o'clock

Mitglied: 139708
Solution 139708 May 12, 2019 updated at 08:58:19 (UTC)
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
Member: potshock
potshock May 12, 2019 updated at 09:06:13 (UTC)
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