Utilizarea cmdletului Read-Host în scripturile Windows PowerShell
Puteți utiliza cmdletul Read-Host pentru a obține intrări de la utilizatori în timp ce rulează un script. Solicitarea de intrare a utilizatorului ar putea fi o solicitare de pornire a scriptului sau bazată pe rezultatele procesării care s-au întâmplat deja în script. De exemplu, după efectuarea unei interogări pentru obiectele de utilizator Active Directory Domain Services (AD DS) și afișarea numărului de obiecte recuperate, scriptul poate solicita o decizie dacă să continuați sau să opriți. Alternativ, scriptul ar putea solicita ID-ul de eveniment specific pentru care să se caute. Sintaxa pentru cmdletul Read-Host este:
$answer = Read-Host "How many days"
Exemplul anterior oprește procesarea scriptului și solicită utilizatorului text după cum urmează:
How many days:
La solicitare, utilizatorul introduce un răspuns și apoi selectează Enter. Răspunsul pe care îl oferă utilizatorul este plasat în variabila $answer.
Când afișați text ca parte a utilizării Read-Host, două puncte (:) sunt întotdeauna adăugate la sfârșitul textului. Nu există niciun parametru pentru a suprima comportamentul. Cu toate acestea, dacă utilizați Read-Host fără a afișa text, nu se afișează două puncte. Puteți combina o comandă Write-Host cu Read-Host pentru a afișa text și a evita adăugarea a două puncte, așa cum se arată în următorul exemplu:
Write-Host "How many days? " -NoNewline
$answer = Read-Host
Notă
Intrarea de la Read-Host este limitată la 1022 de caractere.
Puteți masca intrarea pe care utilizatorii o introduc la solicitare utilizând parametrii -MaskInput sau -AsSecureString . Ambii parametri fac ca caracterele introduse de utilizator să fie afișate ca asteriscuri (*). Când se utilizează -MaskInput , răspunsul este colectat ca obiect String. Când se utilizează -AsSecureString , răspunsul este colectat ca obiect SecureString. Un obiect SecureString este necesar pentru scenarii precum setarea parolelor, în care datele nu trebuie stocate ca text clar în memorie.