Brug Read-Host-cmdlet'en i Windows PowerShell-scripts
Du kan bruge Read-Host-cmdlet'en til at hente input fra brugere, mens et script kører. Prompten kan dukke op i starten af et script eller efter at scriptet allerede har behandlet nogle data. For eksempel, efter at have forespurgt Active Directory-domæneservices (AD DS) brugerobjekter og vist det hentede nummer, kunne scriptet spørge, om det skulle fortsætte eller stoppe. Alternativt kan scriptet anmode om det specifikke hændelses-id, som der skal søges efter. Syntaksen for Read-Host-cmdlet'en er:
$answer = Read-Host "How many days"
I det forrige eksempel stoppes behandlingen af scriptet, og brugeren bliver bedt om at angive tekst på følgende måde:
How many days:
Ved prompten angiver brugeren et svar og vælger derefter Enter. Det svar, som brugeren leverer, placeres i variablen $answer.
Når du får vist tekst som en del af Read-Host-, føjes der altid et kolon (:) til slutningen af teksten. Der er ingen parameter til at undertrykke denne adfærd. Men hvis du bruger Read-Host- uden at vise tekst, vises der ikke noget kolon. Du kan kombinere en Write-Host-kommando med Read-Host for at vise tekst og undgå, at et kolon tilføjes, som vist i følgende eksempel:
Write-Host "How many days? " -NoNewline
$answer = Read-Host
Seddel
Input fra Read-Host er begrænset til 8190 tegn i Windows PowerShell 5.1.
Du kan skjule det input, brugerne indtaster ved prompten, ved at bruge parameteren -AsSecureString . Med denne parameter vises de tegn, brugeren typer, som stjerner (*), og svaret samles som et SecureString-objekt. Der kræves et SecureString-objekt til scenarier som f.eks. angivelse af adgangskoder, hvor data ikke skal gemmes som klartekst i hukommelsen.