Hyper-V: Invoke-Command Bereitschaft per Powershell prüfen?

SirMaoh

Cadet 4th Year
Registriert
Aug. 2021
Beiträge
77
Guten Tag zusammen,

ich würde gerne per Powershell vom Hyper-V Host aus in Erfahrung bringen, ob eine frisch installierte Windows-VM bereit ist, per Invoke-Command Befehle zu erhalten. Da es eine frische (automatisiert erstellte) VM ist, kenne ich nur den Namen der VM, jedoch nicht den Namen des Gastbetriebsystems. Ebenfalls ist dort die Firewall aktiviert und der Remotezugriff noch nicht aktiviert.

Im Internet habe ich nur als gängige Funktion "Test-Connection" gefunden, das hilft mir hier allerdings nicht. Hat hier jemand vielleicht eine Idee? :)
 
Mir ist es gelungen vom Invoke-Command ein true oder false zurückgemeldet zu bekommen, je nachdem ob es geklappt hat oder nicht.
invoke-command -VMName SV2 -Credential $cred -scriptblock {hostname} -ErrorAction SilentlyContinue | Out-Null; $?
1676298369446.png


Manuell funktioniert das also. Wenn ich das Ganze allerdings in eine do-Schleife stecke, läuft sie unendlich lange weiter, da das true anscheinend nicht richtig übergeben / geprüft wird. Sieht hier jemand vielleicht den Fehler? :)
do {echo "SV2 nicht erreichbar, warte 5 Sekunden ...";Start-Sleep -Seconds 5;} until ({invoke-command -VMName SV2 -Credential $cred -scriptblock {hostname} -ErrorAction SilentlyContinue | Out-Null; $?} -eq $True);
 
Habe selbst eine funktionierende, wenn auch unschöne Lösung gefunden :)

do {echo "SV3 ist noch nicht bereit...";Start-Sleep -Seconds 10;invoke-command -VMName SV3 -Credential $cred -scriptblock {hostname} -ErrorAction SilentlyContinue} until($? -eq $True);
 
Zurück
Oben