PowerShell Invoke-Command Ergebnis innerhalb einer Schleife prüfen?

SirMaoh

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

ich möchte gerne per Powershell herausfinden (und folgende Befehle darauf warten lassen), bis eine Hyper-V VM bereit ist, Befehle über Invoke-Command entgegenzunehmen. Dazu ist mir nachfolgender Befehl "gelungen".

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

Ich habe die Prüfung für die Schleife leider nur über das $? lösen können, das geht doch aber bestimmt auch als direkte Prüfung innerhalb des until (oder noch eleganter), oder? :)
 
Mein Problem ist leider, dass ich das Invoke-Command nicht in dem Bedingungs-Teil der Schleife untergebracht bekomme. Das klappt nur, wenn ich es in geschweifte Klammern stecke, aber dann liefert es immer FALSE zurück.

do {echo "SV3 ist noch nicht bereit...";Start-Sleep -Seconds 10;} until({invoke-command -VMName SV3 -Credential $cred -scriptblock {hostname} -ErrorAction SilentlyContinue} -eq $True);
 
while ($True) {
$result = Invoke-Command -VMName SV3 -Credential $cred -ScriptBlock { hostname } -ErrorAction SilentlyContinue
if ($?) {
break
}
Write-Host "SV3 ist noch nicht bereit..."
Start-Sleep -Seconds 10
}
 
  • Gefällt mir
Reaktionen: TheChange
Zurück
Oben