Wie eine Schleife in powershell, bis erfolgreich?

%WINDIR%\system32\inetsrv\appcmd.exe set site /site.name:"WebRole_IN_0_CB" /[Path='/'].applicationPool:"ASP.NET v4.0" >>CBLog.log
powershell.exe -command Set-ExecutionPolicy Unrestricted
powershell.exe .\CheckIfSuccessful.ps1

Ich möchte das Skript ausführen, oben und wenn appcmd.exe kann nicht ausgeführt werden es wegen der WebSite, die noch nicht zu und bereit wäre, würde ich bekommen folgende Fehlermeldung in der CBLog.log-Datei.

FEHLER ( Meldung:Cannot find-SITE-Objekt mit der Kennung
"WebRole_IN_0_CB". )

In der CheckIfSuccessful.ps1 würde ich mag, erstellen Sie ein Powershell-Skript, um eine Schleife, die ausgeführt wird, die appcmd-Befehl und prüft die Fehlermeldung wieder. Schläft dann für 5 Sekunden und dann wiederholt, bis er erfolgreich ist.

Wie würde ich dies in Powershell?

sehr geschätzt,

UPDATE:

Ok, vielen Dank für den Tipp mit $lastexitcode, während es sieht vielversprechend aus. Es scheint ich habe Probleme mit der Konvertierung von einzelnen quoates in der Powershell: (Die unten ist Teil meiner ersten appcmd-Befehl)

/[Path='/'].applicationPool:"ASP.NET v4.0"

Wie kann ich zitieren diese in der powershell? Ich habe versucht, um es zu vereinfachen, so dass powershell hat weniger Probleme mit ihm, aber es scheint, mein Befehl ist nun falsch, so heißt es jetzt:

FEHLER ( Meldung:Cannot find-SITE-Objekt mit der Kennung "v4.0". )

 & $Env:WinDir\system32\inetsrv\appcmd.exe set site '/site.name:"WebRole_IN_0_CB"' "/[Path='/'].applicationPool:`"ASP.NET v4.0`"" >CBLog.log
if($lastexitcode -ne '0')
{
    while($lastexitcode -ne '0')
    {
        Start-Sleep -s 5
        & $Env:WinDir\system32\inetsrv\appcmd.exe set site '/site.name:"WebRole_IN_0_CB"' "/[Path='/'].applicationPool:`"ASP.NET v4.0`"" >CBLog.log
    }
}

UPDATE II:
Ich entkam es richtig. Aber trotzdem bekomme ich die Fehlermeldung. Wenn ich das appcmd allein nach dem erstellen dieser Website, die log-Datei ok ist mit ihm. Irgendwelche Vorschläge, bitte?

  • Ok das austretende funktioniert jetzt, aber ich bekomme immer noch die Fehlermeldung, irgendeine Idee was dies sein könnte? Das Skript loops für immer. Auch wenn ich eine Website erstellen, mit diesem Namen. Das logfile wiederholt sich ständig, die ersten Fehler
  • Aus irgendeinem Grund PowerShell nicht wie der Raum. Ich landete meine eigenen AppPool und weisen Sie es auf die Website.
  • jede vollständige Quellcode-Beispiel mit der definitiven Lösung?
InformationsquelleAutor Houman | 2011-11-30
Schreibe einen Kommentar