PowerShell „ Variabile automate ” sunt esențiale pentru gestionarea sistemului, automatizarea și activitățile de scripting. Aceste variabile sunt încorporate de runtime PowerShell și servesc ca substituenți pentru a stoca și a face referire la informații specifice în timpul execuției unui script sau a unei comenzi. Înțelegerea și utilizarea eficientă a acestor variabile automate poate îmbunătăți considerabil eficiența și funcționalitatea scripturilor PowerShell.
Acest articol își propune să exploreze conceptul de „variabile automate” în PowerShell, semnificația acestora și modul în care pot fi utilizate în diferite scenarii.
Ce sunt variabilele automate în PowerShell?
Pentru început, să pătrundem în definiția „ Variabile automate ”. Aceste variabile sunt predefinite și sunt create automat de PowerShell în timpul execuției scriptului. Acestea servesc diferitelor scopuri, inclusiv furnizarea de informații despre sistem, argumente de linie de comandă, detalii legate de script și multe altele.
PowerShell oferă mai multe „variabile automate” și fiecare dintre ele servește un scop distinct în execuția scriptului. Aceste variabile sunt, după cum urmează:
1. $PSVersionTable
Una dintre variabilele automate fundamentale din PowerShell este „ $PSVersionTable ”. Această variabilă permite dezvoltatorilor de scripturi să stabilească versiunea de PowerShell utilizată, ceea ce poate fi crucial atunci când se ia în considerare compatibilitatea și disponibilitatea anumitor caracteristici și funcționalități.
Următoarele proprietăți sunt asociate cu această variabilă:
PSVersion: Returnează numărul versiunii PowerShell.
Ediția PS: Pentru PowerShell 4 și versiuni anterioare, precum și pentru PowerShell 5.1 pe versiunile Windows cu funcții complete, această proprietate are valoarea „Desktop”. Această caracteristică are valoarea Core pentru PowerShell 6 și versiunile ulterioare, precum și Windows PowerShell 5.1 pentru ediții cu amprentă redusă, cum ar fi Windows Nano Server sau Windows IoT.
GitCommitId: Preia ID-ul de comitere GitHub al fișierelor sursă.
TU: Înregistrează informații despre sistemul computerizat pe care PowerShell îl folosește.
Platformă: Returnează platforma de suport a sistemului de operare. Unix are valoare pe Linux și macOS. Verificați $IsMacOs și $IsLinux.
PSCompatibleVersions: Versiunile PowerShell care sunt compatibile cu versiunea curentă sunt returnate.
PSRemotingProtocolVersion: Returnează numărul versiunii pentru protocolul de gestionare la distanță PowerShell.
SerializationVersion: Returnează versiunea metodei de serializare.
WSManStackVersion: Returnează numărul versiunii stivei WS-Management.
$ PSVersionTable
2. $Args
O altă variabilă automată esențială în PowerShell este „ $Args ”, care conține o serie de argumente de linie de comandă transmise unui script sau funcție. Această variabilă dă putere dezvoltatorilor să proceseze și să manipuleze argumentele furnizate în mod dinamic în cadrul scripturilor lor.
Când definiți o funcție, puteți fie să utilizați cuvântul cheie „param” pentru a declara parametrii, fie puteți adăuga o listă de parametri separați prin virgulă în paranteze după numele funcției. Variabila „$Args” a unei acțiuni de eveniment stochează obiecte care servesc ca substituenți pentru parametrii evenimentului gestionat:
pentru fiecare ( $arg în $Args ) {Scrie-gazdă $arg
}
3. $MyInvocation
„ $MyInvocation ” variabila oferă date cruciale de fundal despre scriptul sau procedura care rulează în prezent. Oferă proprietăți precum numele scriptului, numărul liniei de script și dacă scriptul este rulat interactiv sau non-interactiv. Aceste proprietăți ajută dezvoltatorii de scripturi să implementeze logica de ramificare, să definească mecanisme de gestionare a erorilor sau să genereze înregistrări și raportări semnificative:
$ Invocarea mea
4. $Eroare
O variabilă automată mai puțin cunoscută „ $Eroare ”, captează în mod eficient orice mesaje de eroare sau excepții care apar în timpul execuției scriptului. „$Error” poate fi accesat pentru a prelua detalii specifice de eroare, cum ar fi mesaje de excepție, urme de stivă sau coduri de eroare, permițând analiza detaliată și depanare.
Cea mai recentă eroare este reprezentată de primul obiect de eroare din matrice „ $Eroare[0] „. Puteți utiliza opțiunea comună ErrorAction cu valoarea „Ignorare” pentru a opri adăugarea erorilor în tabloul „$Error”.
Să presupunem că am tastat o comandă precisă:
ip [ onfig
Acum, dacă introducem cmdletul „$Error”:
$ Eroare
5. $PSCmdlet
Când lucrați cu module PowerShell, variabila automată „ $PSCmdlet ” intră în vigoare. Această variabilă oferă acces la instanța curentă a cmdlet-ului sau funcției invocate, facilitând interacțiunea directă cu proprietățile și metodele sale.
Folosind „$PSCmdlet”, dezvoltatorii de scripturi avansați pot ajusta și îmbunătăți comportamentul modulelor prin extinderea sau modificarea funcționalităților încorporate. Puteți utiliza atributele și metodele obiectului în cmdlet-ul sau codul funcției ca răspuns la criteriile de utilizare:
funcţie typeof-psCmdlet {[ cmdletBinding ( ) ] param ( )
ecou „tip de ` $psCmdlet este $($psCmdlet.GetType() .Numele complet)'
}
typeof-psCmdlet
În plus față de variabilele menționate mai sus, PowerShell cuprinde variabile automate precum $HOME, $PROFILE, $PWD și multe altele, care servesc diferitelor scopuri, cum ar fi accesarea intrărilor, urmărirea erorilor, preluarea informațiilor despre mediu, gestionarea parametrilor și multe altele. Aceste variabile sunt enumerate mai jos:
Variabile automate | Descriere |
$$ | Deține ultimul token din linia anterioară primită de sesiunea PowerShell. |
$? | Stochează starea de execuție a ultimei comenzi. |
$^ | Conține primul simbol din ultima linie primită de sesiune. |
$_ | Reprezintă obiectul curent din conductă. |
$ConsoleFileName | Conține calea fișierului consolei (.psc1) cel mai recent utilizat în sesiune. |
$EnabledExperimentalFeatures | Conține o listă a funcțiilor experimentale activate. |
$Event | Conține un obiect „PSEventArgs” reprezentând evenimentul în curs de procesare. |
$EventArgs | Conține primul argument al evenimentului în curs de procesare. |
$EventSubscriber | Reprezintă abonatul evenimentului în curs de procesare. |
$ExecutionContext | Reprezintă contextul de execuție al gazdei PowerShell. |
$fals | Reprezintă valoarea booleană „False”. |
$foreach | Conține enumeratorul unei bucle „for-Each”. |
$HOME | Conține calea completă a directorului principal al utilizatorului. |
$Host | Reprezintă aplicația gazdă curentă pentru PowerShell. |
$input | Servește ca un enumerator pentru toate intrările transmise unei funcții sau unui script. |
$IsCoreCLR | Indică dacă sesiunea rulează pe .NET Core Runtime (CoreCLR). |
$IsLinux | Indică dacă sesiunea rulează pe un sistem de operare Linux. |
$IsMacOS | Indică dacă sesiunea rulează pe un sistem de operare MacOS. |
$IsWindows | Identifică dacă sesiunea rulează pe un sistem de operare Windows. |
$LASTEXITCODE | Stochează codul de ieșire al ultimului program nativ sau script PowerShell. |
$Match-uri | Conține șiruri potrivite de la operatorii „-match” și „-notmatch”. |
$NestedPromptLevel | Urmărește nivelul curent de prompt în comenzi imbricate sau scenarii de depanare. |
$null | Reprezintă o valoare nulă sau goală. |
$PID | Conține identificatorul de proces (PID) al sesiunii PowerShell. |
$PROFILE | Conține calea completă a profilului PowerShell pentru utilizatorul curent și aplicația gazdă. |
$PSBoundParameters | Conține un dicționar de parametri trecuți unui script sau funcție și valorile acestora. |
$PSCommandPath | Conține calea completă și numele fișierului scriptului care se execută. |
$PSCulture | Reflectă cultura spațiului curent de rulare PowerShell. |
$PSEdition | Conține informațiile ediției PowerShell. |
$PSHOME | Conține calea completă a directorului de instalare PowerShell. |
$PSIarticol | La fel ca $_, reprezintă obiectul curent din conductă. |
$PSScriptRoot | Conține calea completă a directorului părinte al scriptului care se execută. |
$PSSenderInfo | Conține informații despre utilizatorul care a pornit PSSession. |
$PSUICulture | Reflectă cultura interfeței cu utilizatorul (UI) configurată în sistemul de operare. |
$PWD | Reprezintă directorul de lucru curent al sesiunii PowerShell. |
$Sender | Conține obiectul care a generat un eveniment. |
$ShellId | Conține identificatorul shell-ului curent. |
$StackTrace | Stochează urmărirea stivei pentru cea mai recentă eroare. |
$switch | Conține enumeratorul declarației „Switch”. |
$aceasta | Se referă la instanța unei clase în blocuri de script care extind clasele. |
$adevarat | Reprezintă valoarea booleană „True”. |
Toate „variabilele automate” din PowerShell pot fi găsite rulând comanda de mai jos:
Get-Variable
Concluzie
„ Variabile automate ” formează coloana vertebrală a scripturilor PowerShell, permițând dezvoltatorilor să obțină informații despre sistem, argumentele liniei de comandă, contextul de execuție a scriptului și multe altele. Prin valorificarea variabilelor automate precum „$PSVersionTable”, „$Args”, „$MyInvocation”, „$Error” și altele, dezvoltatorii de scripturi PowerShell pot crea practici simplificate de administrare a sistemului.