Mit dem Read-Host PowerShell-Cmdlet können Sie den Skriptbenutzer interaktiv um Eingabe bitten. Schauen wir uns einige praktische Anwendungen an, wie wir das Read-Host PowerShell-Cmdlet verwenden können.
Eingabeaufforderung mit Read-Host
Das Read-Host-Cmdlet hat in einem PowerShell-Skript zwei Funktionen: Es unterbricht die Ausführung und empfängt Eingaben. Das ist alles. Read-Host ist ein einfaches Cmdlet, das nützlich ist, wenn Informationen vom Benutzer des Skripts benötigt werden.
Am einfachsten verwendet man das Read-Host-Cmdlet, indem man den Parameter Prompt verwendet. Dieser Prompt-Parameter ermöglicht es Ihnen, dem Skriptbenutzer eine Art Hinweis zu geben, was einzugeben ist. Wenn Ihr Skript beispielsweise einen Servernamen benötigt, können Sie Read-Host verwenden, um den Benutzer zur Eingabe des Servernamens aufzufordern, wenn das Skript ausgeführt wird.
Wie unten zu sehen ist, stoppt PowerShell die Ausführung, wenn Read-Host mit dem Prompt-Parameter in der PowerShell-Konsole selbst ausgeführt wird, und zeigt meine Eingabeaufforderung mit einer erklärenden Nachricht an, was wir benötigen.

Lassen Sie uns dies in ein Skript einbinden. Wenn ein Benutzer Informationen an der Eingabeaufforderung eingibt, gibt Read-Host diese Informationen an Ihren Code zurück. Sie können diese Informationen leicht erfassen, indem Sie die Ausgabe einer Variablen zuweisen. Vielleicht möchte ich nach einem Servernamen fragen und dann etwas mit diesem Servernamen tun. Andernfalls möchte ich dem Benutzer eine Warnung senden und ihn wissen lassen, dass ich diesen Servernamen wirklich brauche.
Mit einer einfachen if/then-Konstruktion kann ich sicherstellen, dass der Benutzer einen Servernamen eingibt. Sobald er dies tut, kann ich ihn erfassen und etwas damit tun. Andernfalls sende ich eine Warnmeldung.

Passwortabfrage
Sie sollten wissen, dass es keine gute Idee ist, Passwörter im Klartext in Ihren Skripten zu speichern. Ebenso ist es keine gute Idee, Passwörter im Klartext im Speicher zu haben. Um dies zu umgehen, gibt es in PowerShell das Konzept des sicheren Strings, der eine einfache Zeichenfolge ist, die verschlüsselt wird.
A secure string can any kind of sensitive information; a password is a great example. What does this have to do with Read-Host
? The Read-Host
cmdlet has an AsSecureString
parameter which allows the user to not only store the output as a secure string but also to show asterisk while typing to hide your secret from prying eyes!
Sagen wir, ich habe ein tiefes, dunkles Geheimnis, von dem ich nicht möchte, dass es jemand weiß, aber ich muss dieses Passwort an eine Software weitergeben. Wie Sie unten sehen können, wenn ich AsSecureString
nicht verwende, sind Sie mir auf die Schliche gekommen! Wenn ich jedoch AsSecureString
verwende, ist mein Geheimnis sicher, da jeder eingegebene Buchstabe durch einen Asterisk ersetzt wird und die Ausgabe als sicherer String anstelle einer Klartextzeichenfolge gespeichert wird.

Um auf die Dokumentation von Read-Host
zu verweisen, schauen Sie sich die Microsoft Docs an.