Verwenden des Cmdlets „Read-Host“ in Windows PowerShell-Skripts

Abgeschlossen

Sie können das Read-Host-Cmdlet verwenden, um Eingaben von Benutzern abzurufen, während ein Skript ausgeführt wird. Die Anforderung nach einer Benutzereingabe kann eine Aufforderung sein, das Skript zu starten, oder auf Ergebnissen der Verarbeitung basieren, die bereits im Skript geschehen ist. Nach dem Ausführen einer Abfrage für Active Directory Domain Services-Benutzerobjekte (AD DS) und Anzeigen der Anzahl der abgerufenen Objekte könnte das Skript beispielsweise zu einer Entscheidung darüber auffordern, ob der Vorgang fortgesetzt oder beendet werden soll. Alternativ kann das Skript die spezifische Ereignis-ID anfordern, nach der gesucht werden soll. Die Syntax für das Cmdlet "Read-Host " lautet:

$answer = Read-Host "How many days"

Im vorherigen Beispiel wird das Verarbeiten des Skripts beendet und der oder die Benutzer*in wie folgt mit einem Text aufgefordert:

How many days:

Nach der Eingabeaufforderung gibt der Benutzer bzw. die Benutzerin eine Antwort ein und drückt dann die EINGABETASTE. Die Antwort des Benutzers oder der Benutzerin wird in der Variable $answer platziert.

Wenn Sie Text als Teil der Verwendung von Read-Host anzeigen, wird immer ein Doppelpunkt (:) am Ende des Texts angefügt. Es gibt keinen Parameter, der dieses Verhalten verhindert. Wenn Sie jedoch "Read-Host " verwenden, ohne Text anzuzeigen, wird kein Doppelpunkt angezeigt. Sie können einen Befehl "Write-Host " mit "Read-Host " kombinieren, um Text anzuzeigen und zu vermeiden, dass ein Doppelpunkt angefügt wird, wie im folgenden Beispiel dargestellt:

Write-Host "How many days? " -NoNewline
$answer = Read-Host

Hinweis

Die Eingabe von Read-Host ist auf 1022 Zeichen beschränkt.

Sie können die Eingabebenutzer an der Eingabeaufforderung maskieren, indem Sie die Parameter "-MaskInput " oder "-AsSecureString " verwenden. Beide Parameter führen dazu, dass die von Benutzer*innen eingegebenen Zeichen als Sternchen (*) angezeigt werden. Wenn -MaskInput verwendet wird, wird die Antwort als String-Objekt erfasst. Wenn -AsSecureString verwendet wird, wird die Antwort als SecureString-Objekt gesammelt. Ein SecureString-Objekt wird für Szenarios wie das Festlegen von Kennwörtern benötigt, bei denen Daten nicht als klarer Text im Arbeitsspeicher gespeichert werden sollten.