Wie man Benutzereingaben in PowerShell anfordert
-
Verwenden Sie
Read-Host
, um eine Benutzereingabe in PowerShell anzufordern -
Verwenden Sie die
Mandatory
-Parameter, um eine Benutzereingabe in PowerShell anzufordern -
Verwenden Sie
PromptForChoice
, um eine Benutzereingabe in PowerShell anzufordern - Fazit

In der PowerShell-Skripterstellung ist die Interaktion mit Benutzern zur Eingabe von Informationen eine gängige Anforderung. Ob zur Anpassung, Entscheidungsfindung oder Navigation, die Aufforderung der Benutzer zur Eingabe ist entscheidend.
Dieser Artikel untersucht verschiedene Methoden zur Aufforderung der Benutzereingabe in PowerShell, einschließlich der Methode Read-Host
, der Methode mit dem Parameter Mandatory
und der Methode PromptForChoice
. Jede Methode bietet einzigartige Fähigkeiten und eignet sich für unterschiedliche Szenarien, wodurch die Interaktivität und Benutzerfreundlichkeit von PowerShell-Skripten verbessert wird.
Verwenden Sie Read-Host
, um eine Benutzereingabe in PowerShell anzufordern
Das Cmdlet Read-Host
fordert die Benutzereingabe an und liest eine Zeile Eingabe von der Konsole. Das Read-Host
kann nur 1022
Zeichen als Eingabe von einem Benutzer akzeptieren.
Der Parameter -Prompt
wird verwendet, um einen Text anzugeben, der Informationen darüber bereitstellt, was eingegeben werden soll. Er fügt einen Doppelpunkt :
zu dem von Ihnen eingegebenen Text hinzu.
Beispiel:
Read-Host -Prompt "Enter your name"
In diesem Beispiel, wenn wir Read-Host
verwenden, wird der Benutzer mit der Nachricht "Geben Sie Ihren Namen ein"
aufgefordert und das Skript hält die Ausführung an, während es auf die Eingabe wartet. Nachdem der Benutzer seinen Namen eingegeben und Enter gedrückt hat, fährt das Skript mit der Ausführung fort.
Da wir jedoch die Eingabe nicht in einer Variablen erfassen oder speichern und auch keine nachfolgenden Aktionen basierend auf der empfangenen Eingabe durchführen, zeigt dieses Beispiel hauptsächlich die Grundfunktionalität von Read-Host
, ohne eine weitergehende Verarbeitung der Benutzereingabe.
Ausgabe:
Das Read-Host
hält die Ausführung an und erhält die Eingabe. Wenn ein Benutzer den Wert an der Eingabeaufforderung eingibt, gibt es denselben Wert zurück.
Es akzeptiert keine Eingabe aus der PowerShell-Pipeline. Hier ist ein weiteres Beispiel:
$name = Read-Host "Enter your name"
Write-Output "Hello, $name!"
In diesem Beispiel verwenden wir Read-Host
, um den Benutzer aufzufordern, seinen Namen einzugeben. Der String "Geben Sie Ihren Namen ein"
dient als Aufforderungsnachricht.
Die Benutzereingabe wird in der Variablen $name
gespeichert. Anschließend verwenden wir Write-Output
, um eine personalisierte Begrüßungsnachricht anzuzeigen, die den vom Benutzer eingegebenen Wert integriert.
Mit dem Cmdlet Read-Host
können wir die Eingabe als sicheren String speichern, wodurch es ein unschätzbares Werkzeug zum Sammeln sensibler Informationen wie Passwörter wird. Dieses Cmdlet ermöglicht es uns, Benutzer nach sicheren Daten zu fragen und gleichzeitig die Vertraulichkeit und Sicherheit zu gewährleisten.
Ausgabe:
Der Parameter -AsSecureString
zeigt Sterne *
anstelle der Zeichen an, die der Benutzer als Eingabe eingibt. Mit diesem Parameter ist die Ausgabe von Read-Host
ein System.Security.SecureString
-Objekt.
Read-Host "Enter password" -AsSecureString
In diesem Beispiel verwenden wir Read-Host
mit dem Parameter -AsSecureString
, um den Benutzer aufzufordern, ein Passwort sicher einzugeben. Die Aufforderungsnachricht "Passwort eingeben"
wird dem Benutzer angezeigt.
Wenn der Benutzer das Passwort eingibt, wird es auf dem Bildschirm maskiert, um die Vertraulichkeit zu gewährleisten. Das Passwort wird dann als sicherer String in der Variablen $password
gespeichert, bereit für die weitere Verarbeitung oder Validierung.
Ausgabe:
Verwenden Sie die Mandatory
-Parameter, um eine Benutzereingabe in PowerShell anzufordern
In PowerShell ist die Methode mit dem Parameter Mandatory
eine leistungsstarke Möglichkeit, um Benutzer nach Eingaben zu fragen, während sichergestellt wird, dass bestimmte Parameter für die Skriptausführung erforderlich sind. Durch die Kennzeichnung von Parametern als Mandatory
können Skriptautoren die Bereitstellung wesentlicher Eingabewerte erzwingen, wodurch die Zuverlässigkeit und Benutzerfreundlichkeit des Skripts verbessert wird.
Hier ist ein Beispiel für die Funktion Name
, die bei der Ausführung nach der Benutzereingabe fragt.
Beispiel:
function Name {
param(
[Parameter(Mandatory)]
[string]$name
)
Write-Output "Your name is $name."
}
Name
In diesem Beispiel definieren wir eine PowerShell-Funktion namens Name
mit einem einzigen Parameter namens name
. Durch die Angabe von [Parameter(Mandatory)]
stellen wir sicher, dass der Benutzer einen Wert für den Parameter name
angeben muss, wenn die Funktion aufgerufen wird.
Die Funktion gibt dann eine Nachricht aus, die den bereitgestellten Namen mit Write-Output
integriert.
Ausgabe:
Verwenden Sie PromptForChoice
, um eine Benutzereingabe in PowerShell anzufordern
In PowerShell bietet die Methode PromptForChoice
eine strukturierte Möglichkeit, Benutzer mit einer Auswahl von Optionen aufzufordern und ihre Wahl als Eingabe zu empfangen. Diese Methode ist besonders nützlich, wenn Benutzern ein Menü oder eine Liste von Auswahlmöglichkeiten präsentiert wird, was eine interaktivere und benutzerfreundliche Skriptausführung ermöglicht.
Beispiel:
$choicePrompt = "Choose an option:"
$choices = [System.Management.Automation.Host.ChoiceDescription[]]@(
"&Option 1",
"&Option 2",
"&Option 3"
)
$defaultChoice = 0
$result = $host.UI.PromptForChoice("Title", $choicePrompt, $choices, $defaultChoice)
Write-Output "You selected $($choices[$result].Label)"
In diesem Beispiel definieren wir eine Aufforderungsnachricht und ein Array von Auswahlmöglichkeiten und geben den Standardauswahlindex an. Wir verwenden dann die Methode PromptForChoice
, um das Aufforderungsdialogfeld mit den bereitgestellten Auswahlmöglichkeiten anzuzeigen.
Die Auswahl des Benutzers wird in der Variablen $result
gespeichert, die wir verwenden, um das gewählte Optionslabel abzurufen und es dem Benutzer anzuzeigen.
Ausgabe:
Fazit
Die Aufforderung zur Benutzereingabe in PowerShell ist entscheidend für die Erstellung interaktiver und benutzerfreundlicher Skripte. Durch die Nutzung von Methoden wie Read-Host
, Mandatory
-Parametern und PromptForChoice
können Skriptautoren effizient Benutzereingaben sammeln und gleichzeitig Zuverlässigkeit und Sicherheit gewährleisten.
Ob es sich um das Sammeln einfacher Texteingaben, das Durchsetzen obligatorischer Parameter oder das Präsentieren von Benutzern mit einem strukturierten Satz von Auswahlmöglichkeiten handelt, diese Methoden ermächtigen Skriptautoren, robuste und vielseitige Automatisierungslösungen zu erstellen. Durch das Verständnis und die Nutzung dieser Techniken können PowerShell-Skriptautoren die Benutzerfreundlichkeit und Effektivität ihrer Skripte verbessern und den unterschiedlichen Bedürfnissen von Benutzern und Administratoren gerecht werden.