nowhereman
Goto Top

Powershell: Prüfen, ob eine VM vorhanden ist oder nicht

Hallo zusammen

Ich stehe momentan etwas auf dem Schlauch. Ich möchte gerne in einer Hyper-V Umgebung prüfen, ob eine VM vorhanden ist oder nicht. Wenn diese vorhanden ist, sollen mehrere Befehle ausgeführt werden. Wenn nicht, sollen andere Befehle abgearbeitet werden.

Wie realisiere ich dies möglichst einfach in Powershell?

Danke für eure Hilfe.

Gruss

Nowhereman

Content-ID: 220288

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

Ausgedruckt am: 26.11.2024 um 18:11 Uhr

106543
106543 24.10.2013 um 08:22:30 Uhr
Goto Top
Hi,

schon etwas her, dass ich mit Powershell gearbeitet habe, deswegen verzeihe mir bitte, dass ich nicht unbedingt die richtige Syntax liefere, aber ein bisschen googlen sollte das ganze dann ansehlich werden lassen.
Ich erinnere mich, dass es einen Befehl á la "testpath" gibt, mit dem man prüfen kann, ob ein bestimmter Pfad/Ordner vorhanden ist. Vielleicht solltest du überprüfen ob der Pfad der VM vorhanden ist. Wenn "JA" -> Befehle, wenn "NEIN" -> andere Befehle (kleine IF-Selektion).
Hoffe ich konnte helfen.

Grüße
Exze
nowhereman
nowhereman 24.10.2013 um 09:12:04 Uhr
Goto Top
Hi Exze

Das geht mit Testpath nicht, es kann ja gut sein, dass der Pfad zu der virtuellen Maschine nicht immer gleich ist. Der Namen der virtuellen Maschine ist immer derselbe. Dann auf das Verzeichnis zu prüfen, wäre nicht sinnvoll.

Gruss

Nowhereman
DerWoWusste
DerWoWusste 24.10.2013 um 09:18:33 Uhr
Goto Top
Moin.

Das Problem wird nicht deutlich. Natürlich kann Powershell abfragen, ob Maschine xy existiert und in welchem Zustand (suspended/running/...) diese ist. Fehlt Dir die Syntax?
colinardo
colinardo 24.10.2013 aktualisiert um 09:35:52 Uhr
Goto Top
Hallo Nowhereman,
$vm = get-VM -name "MyVirtualMachine" -computer HYPERVHOST -ErrorAction SilentlyContinue  
if ($vm){
    #VM existiert, nun tu was mit der Maschine...z.B, ob sie läuft
    echo "Status der Maschine: $($vm.State)"  
}
siehe auch: http://technet.microsoft.com/en-us/library/hh848479.aspx und http://technet.microsoft.com/en-us/library/hh848559.aspx

Grüße Uwe
nowhereman
nowhereman 24.10.2013 um 09:50:15 Uhr
Goto Top
Genau, der Syntax fehlt mir. Wie ich eine Maschine abfragen kann in welchem Zustand diese ist, habe ich hinbekommen, jedoch nicht, ob dieses tatsächlich existiert. Ich habe Probleme mit dem Errorhandling. Es funktioniert nicht alles, solange die VM existiert, existiert diese jedoch nicht, gibt Powershell eine Fehlermeldung aus und beendet das Script.

Schlussendlich sollte es so sein, dass wenn die VM existiert, diese gelöscht wird und eine neue erstellt wird und wenn diese nicht existiert, die VM zum ersten mal angelegt werden soll. Hintergrund ist, dass ich eine physikalische Festplatte als VHDX direkt in eine Hyper-V Maschine integrieren will und das immer wieder ein einem gewissen Intervall.
nowhereman
nowhereman 24.10.2013 um 09:56:49 Uhr
Goto Top
Zitat von @colinardo:
Hallo Nowhereman,
> $vm = get-VM -name "MyVirtualMachine" -computer HYPERVHOST -ErrorAction SilentlyContinue  
> if ($vm){
>     #VM existiert, nun tu was mit der Maschine...z.B, ob sie läuft
>     echo "Status der Maschine: $($vm.State)"  
> }
> 
siehe auch: http://technet.microsoft.com/en-us/library/hh848479.aspx und http://technet.microsoft.com/en-us/library/hh848559.aspx

Grüße Uwe

Hallo Uwe

Ich werde mir das mal anschauen, danke. So etwas hatte ich auch schon getestet, vielleicht habe ich einfach einen Überlegungsfehler gemacht.

Gruss

Nowhereman
nowhereman
nowhereman 25.10.2013 um 11:13:00 Uhr
Goto Top
Zitat von @colinardo:
Hallo Nowhereman,
> $vm = get-VM -name "MyVirtualMachine" -computer HYPERVHOST -ErrorAction SilentlyContinue  
> if ($vm){
>     #VM existiert, nun tu was mit der Maschine...z.B, ob sie läuft
>     echo "Status der Maschine: $($vm.State)"  
> }
> 
siehe auch: http://technet.microsoft.com/en-us/library/hh848479.aspx und http://technet.microsoft.com/en-us/library/hh848559.aspx

Grüße Uwe

Hallo Uwe

Nur als Rückmeldung: Es hat funktioniert. Danke für deine Hilfe.

Gruss

Nowhereman