Wie man Benutzereingaben in PowerShell anfordert

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

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:

Benutzereingabe in PowerShell anfordern - Ausgabe 1

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:

Eingabeaufforderung für Benutzer in PowerShell - Ausgabe 2

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:

Benutzereingabe in PowerShell auffordern - Ausgabe 3

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:

Benutzereingabe in PowerShell anfordern - Ausgabe 4

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:

Benutzereingabe in PowerShell anfordern - Ausgabe 5

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.

Genießen Sie unsere Tutorials? Abonnieren Sie DelftStack auf YouTube, um uns bei der Erstellung weiterer hochwertiger Videoanleitungen zu unterstützen. Abonnieren
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website