Ich habe zwei PS-Skripte (1 Hauptskript und 1 als Modul).PowerShell Passing-Funktion als Parameter
Haupt Skript verwendet Code wie:
Write-Host "Press Y to continue"
Execute (ConstructSshSessions)
Wo Execute
eine Funktion ist, die die Frage des Skripts in der Funktion ConstructSshSessions
fortzusetzen fragt und auszuführen. Wenn die Benutzer keine Y
eingeben, überspringt das Hauptscripts die Funktion ConstructSshSessions
.
Modul verwendet Code wie:
Function Execute($function)
{
$response = read-host
Write-Host "You typed: $response"
if ($response -eq "Y")
{
$function
}
Remove-Variable response
}
Wenn ich den Code ausführen Excecute (ConstructSshSession)
es läuft zunächst das Skript, das die SSH-Sitzungen erstellt, und fragt dann den Benutzer fortzusetzen. Das ist natürlich nicht meine Absicht, aber ich sehe den Fehler nicht.
Ich möchte, dass es die Benutzer fragt, ob es fortfahren kann und dann das Skript ausführen, das als Parameter an die Funktion Execute
gesendet wird.
Vielen Dank für Ihre Antwort. Klingt wie eine solide Antwort. Ich habe vor kurzem mit dem Scripting angefangen und können Sie Ihren Code einem Anfänger erklären? Ich verstehe nicht ganz, was der Code macht. –
Ich habe es bereits mit Ihrem Code herausgefunden. Vielen Dank. Das wird perfekt funktionieren. –
Können Sie mir erklären, warum Sie meine Vorgehensweise nicht empfehlen würden, damit ich aus meinen Fehlern lernen kann? –