Wie man mit plink aus dem Powershell-Skript „Zugriff verweigert“ abfängt

952
igor

Ich habe ein Powershell-Skript, das den folgenden Befehl aufruft:

plink -batch -ssh $defUser@$srv -pw $defPassword -m $executeCommandFile

Das Problem, dass $ defPassword nicht immer gleich ist / richtig ist. Wie kann ich einen Zugriff mit verweigertem Zugriff von plink abrufen?

Etwas wie das:

if (plink -batch -ssh $defUser@$srv -pw $defPassword -ne "Access denied")  \\execute -m $executeCommandFile else \\use different $defPassword(for example $defPassword2) and then execute 

Ich denke, es ist wie try \ catch, aber mit plink verwendetem Passwort

0

1 Antwort auf die Frage

0
JosefZ

"Access is denied"Nachricht erscheint im Fehlerstrom. Sie können die Windows PowerShell-Umleitungsoperatoren beispielsweise wie folgt verwenden:

$aux = . plink -batch -ssh $defUser@$srv -pw $defPassword -m $executeCommandFile *>&1 if ( $aux -match '^Access.*denied' ) { ### the specified string found: use different $defPassword } else { ### success $aux ### show plink results } 

Beachten Sie, dass 2>&1dies ausreichen könnte:

  • *>&1sendet alle Ausgabetypen ( *) an den Erfolgsausgabestrom;
  • 2>&1sendet Fehler ( 2) und Erfolgsausgabe ( 1) an den Erfolgsausgabestrom.