Wat zijn automatische variabelen in PowerShell

Wat Zijn Automatische Variabelen In Powershell



PowerShell's ' Automatische variabelen ” zijn essentieel voor systeembeheer, automatisering en scriptingactiviteiten. Deze variabelen zijn ingebouwd door de PowerShell-runtime en dienen als tijdelijke aanduidingen om specifieke informatie op te slaan en ernaar te verwijzen tijdens de uitvoering van een script of opdracht. Het effectief begrijpen en gebruiken van deze automatische variabelen kan de efficiëntie en functionaliteit van PowerShell-scripts aanzienlijk verbeteren.

Dit artikel is bedoeld om het concept van 'Automatische variabelen' in PowerShell, hun betekenis en hoe ze in verschillende scenario's kunnen worden gebruikt, te verkennen.







Wat zijn automatische variabelen in PowerShell?

Laten we om te beginnen eens kijken naar de definitie van ' Automatische variabelen ”. Deze variabelen zijn vooraf gedefinieerd en worden automatisch gemaakt door PowerShell tijdens de uitvoering van het script. Deze hebben verschillende doelen, waaronder het verstrekken van informatie over het systeem, opdrachtregelargumenten, scriptgerelateerde details en nog veel meer.



PowerShell biedt verschillende 'automatische variabelen' en elk heeft een eigen doel bij het uitvoeren van scripts. Deze variabelen zijn als volgt:



1. $PSVersionTable

Een van de fundamentele automatische variabelen in PowerShell is ' $PSVersionTable ”. Met deze variabele kunnen scriptontwikkelaars nagaan welke versie van PowerShell wordt gebruikt, wat cruciaal kan zijn bij het overwegen van de compatibiliteit en beschikbaarheid van bepaalde functies en functionaliteiten.





De volgende eigenschappen zijn gekoppeld aan deze variabele:

PSVersie: Retourneert het PowerShell-versienummer.



PSE Editie: Voor PowerShell 4 en eerder, evenals PowerShell 5.1 op Windows-versies met volledige functionaliteit, heeft deze eigenschap de waarde 'Desktop'. Dit kenmerk heeft de waarde van Core voor PowerShell 6 en later, evenals Windows PowerShell 5.1 voor low-footprint-edities zoals Windows Nano Server of Windows IoT.

GitCommitId: Haalt de GitHub commit-ID van de bronbestanden op.

JIJ: Registreert informatie over het computersysteem dat PowerShell gebruikt.

Platform: Retourneert het ondersteunende platform van het besturingssysteem. Unix heeft waarde op Linux en macOS. Bekijk $IsMacOs en $IsLinux.

PSCompatibele versies: PowerShell-versies die compatibel zijn met de huidige versie worden geretourneerd.

PSRemotingProtocolVersie: Retourneert het versienummer voor het PowerShell-protocol voor extern beheer.

Serialisatieversie: Retourneert de versie van de serialisatiemethode.

WSManStackVersie: Retourneert het versienummer van de WS-Management-stack.

$ PSVersionTable

2. $argumenten

Een andere essentiële automatische variabele in PowerShell is ' $argumenten ”, die een reeks opdrachtregelargumenten bevat die aan een script of functie zijn doorgegeven. Deze variabele stelt ontwikkelaars in staat om de verstrekte argumenten dynamisch binnen hun scripts te verwerken en te manipuleren.

Bij het definiëren van een functie kunt u het sleutelwoord 'param' gebruiken om de parameters te declareren of u kunt een door komma's gescheiden lijst met parameters tussen haakjes achter de functienaam toevoegen. De variabele '$Args' van een gebeurtenisactie slaat objecten op die dienen als tijdelijke aanduidingen voor de gebeurtenisparameters van de gebeurtenis die wordt afgehandeld:

voor elk ( $arg in $argumenten ) {
Schrijf-Host $arg
}

3. $MijnInvocatie

De ' $MijnAanroeping ” variabele geeft cruciale achtergrondgegevens over het script of de procedure die momenteel wordt uitgevoerd. Het biedt eigenschappen zoals de scriptnaam, het scriptregelnummer en of het script interactief of niet-interactief wordt uitgevoerd. Deze eigenschappen helpen scriptontwikkelaars bij het implementeren van vertakkingslogica, het definiëren van foutafhandelingsmechanismen of het genereren van zinvolle logboekregistratie en rapportage:

$ MijnAanroeping

4. $Fout

Een minder bekende automatische variabele “ $Fout ”, vangt effectief alle foutmeldingen of uitzonderingen op die optreden tijdens de uitvoering van het script. '$Error' is toegankelijk om specifieke foutdetails op te halen, zoals uitzonderingsberichten, stacktraceringen of foutcodes, waardoor gedetailleerde analyse en debugging mogelijk is.

De meest recente fout wordt weergegeven door het eerste foutobject in de array ' $Fout[0] “. U kunt de algemene optie ErrorAction gebruiken met de waarde 'Negeren' om te voorkomen dat de fouten worden toegevoegd aan de array '$Error'.

Stel dat we een nauwkeurig commando hebben getypt:

ik p [ onfig

Als we nu de cmdlet '$Error' invoeren:

$ Fout

5. $PSCmdlet

Bij het werken met PowerShell-modules wordt de automatische variabele ' $PSCmdlet ” treedt in werking. Deze variabele biedt toegang tot de huidige instantie van de cmdlet of functie die wordt aangeroepen, waardoor directe interactie met de eigenschappen en methoden wordt vergemakkelijkt.

Met behulp van '$PSCmdlet' kunnen geavanceerde scriptontwikkelaars het gedrag van modules verfijnen en verbeteren door de ingebouwde functionaliteiten uit te breiden of te wijzigen. U kunt de kenmerken en methoden van het object gebruiken in uw cmdlet of functiecode als reactie op de gebruikscriteria:

functie typeof-psCmdlet {
[ cmdletBinding ( ) ] param ( )
echo 'type van ` $psCmdlet is $($psCmdlet.GetType() .Voor-en achternaam)'
}

typeof-psCmdlet

Naast de bovengenoemde variabelen omvat PowerShell automatische variabelen zoals $HOME, $PROFILE, $PWD en nog veel meer, die verschillende doelen dienen, zoals toegang tot invoer, trackingfouten, het ophalen van omgevingsinformatie, het beheren van parameters en nog veel meer. Deze variabelen staan ​​hieronder vermeld:

Automatische variabelen Beschrijving
$$ Bevat het laatste token in de vorige regel dat is ontvangen door de PowerShell-sessie.
$? Slaat de uitvoeringsstatus van de laatste opdracht op.
$^ Bevat het eerste token van de laatste regel dat door de sessie is ontvangen.
$_ Vertegenwoordigt het huidige object in de pijplijn.
$ConsoleFileName Bevat het pad van het consolebestand (.psc1) dat het laatst in de sessie is gebruikt.
$EnabledExperimentele functies Bevat een lijst met ingeschakelde experimentele functies.
$ Evenement Bevat een 'PSEventArgs'-object dat de gebeurtenis vertegenwoordigt die wordt verwerkt.
$EventArgs Bevat het eerste gebeurtenisargument van de gebeurtenis die wordt verwerkt.
$EventAbonnee Vertegenwoordigt de gebeurtenisabonnee van de gebeurtenis die wordt verwerkt.
$ExecutionContext Vertegenwoordigt de uitvoeringscontext van de PowerShell-host.
$vals Vertegenwoordigt de Booleaanse waarde 'False'.
$ voor elk Bevat de teller van een 'for-Each'-lus.
$ THUIS Bevat het volledige pad van de thuismap van de gebruiker.
$Host Vertegenwoordigt de huidige hosttoepassing voor PowerShell.
$invoer Dient als een teller voor alle invoer die wordt doorgegeven aan een functie of script.
$IsCoreCLR Geeft aan of de sessie wordt uitgevoerd op de .NET Core Runtime (CoreCLR).
$IsLinux Geeft aan of de sessie wordt uitgevoerd op een Linux-besturingssysteem.
$IsMacOS Geeft aan of de sessie wordt uitgevoerd op een MacOS-besturingssysteem.
$IsWindows Geeft aan of de sessie wordt uitgevoerd op een Windows-besturingssysteem.
$LASTEXITCODE Slaat de afsluitcode op van het laatste native programma of PowerShell-script.
$ Komt overeen Bevat overeenkomende tekenreeksen van de operatoren '-match' en '-notmatch'.
$NestedPromptLevel Houdt het huidige aanwijzingsniveau bij in geneste opdrachten of foutopsporingsscenario's.
$nul Vertegenwoordigt een null of lege waarde.
$PID Bevat de proces-ID (PID) van de PowerShell-sessie.
$PROFIEL Bevat het volledige pad van het PowerShell-profiel voor de huidige gebruiker en hosttoepassing.
$PSBoundParameters Bevat een woordenboek met parameters die zijn doorgegeven aan een script of functie en hun waarden.
$PSCommandPath Bevat het volledige pad en de bestandsnaam van het script dat wordt uitgevoerd.
$PSCultuur Weerspiegelt de cultuur van de huidige PowerShell-runspace.
$PSeditie Bevat informatie over de PowerShell-editie.
$PSHOME Bevat het volledige pad van de PowerShell-installatiemap.
$PSItem Hetzelfde als $_, vertegenwoordigt het huidige object in de pijplijn.
$PSScriptRoot Bevat het volledige pad van de bovenliggende map van het uitvoerende script.
$PSSenderInfo Bevat informatie over de gebruiker die de PSSession heeft gestart.
$PSUIcultuur Weerspiegelt de cultuur van de gebruikersinterface (UI) die in het besturingssysteem is geconfigureerd.
$PWD Vertegenwoordigt de huidige werkmap van de PowerShell-sessie.
$Afzender Bevat het object dat een gebeurtenis heeft gegenereerd.
$ShellId Bevat de identifier van de huidige shell.
$Stack Trace Slaat de stacktracering op voor de meest recente fout.
$ overschakelen Bevat de teller van de 'Switch'-instructie.
$ dit Verwijst naar de instantie van een klasse in scriptblokken die klassen uitbreiden.
$ waar Vertegenwoordigt de Booleaanse waarde 'True'.

Alle 'automatische variabelen' in PowerShell kunnen worden gevonden door de onderstaande opdracht uit te voeren:

Get-variabele

Conclusie

Automatische variabelen ” vormen de ruggengraat van PowerShell-scripting, waardoor ontwikkelaars informatie over het systeem, opdrachtregelargumenten, scriptuitvoeringscontext en meer kunnen verkrijgen. Door gebruik te maken van automatische variabelen zoals '$PSVersionTable', '$Args', '$MyInvocation', '$Error' en andere, kunnen PowerShell-scriptontwikkelaars gestroomlijnde systeembeheerpraktijken creëren.