Ce sunt variabilele automate în PowerShell

Ce Sunt Variabilele Automate In Powershell



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.