Transmiterea parametrilor către un script Windows PowerShell
Puteți configura scripturile să accepte parametri în același mod în care o fac cmdleturile. Aceasta este o metodă bună pentru ca utilizatorii să furnizeze informații, deoarece este în concordanță cu modul în care utilizatorii furnizează intrări pentru cmdlet-uri. Consecvența face mai ușor de înțeles pentru utilizatori.
Pentru a identifica variabilele care vor stoca valorile parametrilor, utilizați un bloc Param(). Numele variabilelor sunt definite între paranteze. Sintaxa pentru utilizarea unui bloc Param() este:
Param(
[string]$ComputerName ,
[int]$EventID
)
Numele variabilelor definite în blocul Param() sunt, de asemenea, numele parametrilor. În exemplul anterior, scriptul care conține acest bloc Param() are parametrii -ComputerName și -EventID care pot fi utilizați. Când introduceți numele parametrilor pentru script, puteți utiliza completarea tabulatorilor la fel ca și pentru parametrii cmdlet-urilor. Sintaxa pentru rularea unui script cu parametri este:
.\GetEvent.ps1 -ComputerName LON-DC1 -EventID 5772
Notă
Parametrii sunt poziționali în mod implicit. Dacă numele parametrilor nu sunt specificate, atunci valorile parametrilor sunt transmise parametrilor în ordine. De exemplu, prima valoare după numele scriptului este plasată în prima variabilă de parametru.
Notă
Dacă nu puneți un bloc Param() în script, puteți transmite în continuare date în script utilizând parametri fără nume. Valorile furnizate după numele scriptului sunt disponibile în interiorul scriptului din $args matrice.
Definirea tipurilor de variabile
Este o bună practică să definiți tipuri de variabile într-un bloc Param(). Când definiți tipurile de variabile, dacă un utilizator introduce o valoare care nu poate fi convertită în acel tip de variabilă, se generează o eroare. Aceasta este o metodă de validare a datelor introduse de utilizatori.
Puteți utiliza tipul de variabilă de comutare pentru un parametru atunci când există o opțiune pe care doriți să o activați sau să o dezactivați. Când scriptul este executat, prezența parametrului setează variabila la $true. Dacă parametrul nu este prezent, atunci valoarea pentru o variabilă este $false. De exemplu, într-un script care afișează de obicei unele informații de stare pentru utilizatori, puteți crea un parametru -quiet care suprimă toate ieșirile pe ecran.
O variabilă de comutare este în general preferată unei variabile booleene pentru parametri, deoarece sintaxa pentru utilizatori este mai simplă. Utilizatorii nu trebuie să includă o valoare sau $true$false .
Valori implicite
Puteți defini valori implicite pentru parametrii din blocul Param(). Valorile implicite pe care le definiți sunt utilizate numai dacă utilizatorul nu furnizează o valoare pentru parametru. Acest lucru asigură că fiecare parametru necesar are o valoare.
Următorul exemplu ilustrează modul de setare a unei valori implicite:
Param(
[string]$ComputerName = "LON-DC1"
)
Solicitarea contribuției utilizatorului
De asemenea, puteți solicita introducerea dacă utilizatorul nu furnizează o valoare a parametrului. Acest lucru asigură că utilizatorul furnizează o valoare pentru un parametru atunci când nu există o valoare implicită logică pe care o puteți specifica.
Următorul exemplu descrie modul de solicitare a utilizatorilor pentru introducere:
Param(
[int]$EventID = Read-Host "Enter event ID"
)
Notă
Puteți configura opțiuni avansate suplimentare pentru parametrii dintr-un script, cum ar fi obligativitatea unui parametru, utilizând atributul Parameter() din blocul Param().
Lectură suplimentară: Pentru mai multe informații despre atributul Parameter(), consultați about_Functions_Advanced_Parameters.