Mik azok az automatikus változók a PowerShellben

Mik Azok Az Automatikus Valtozok A Powershellben



PowerShell Automatikus változók ” nélkülözhetetlenek a rendszerfelügyelethez, az automatizáláshoz és a szkriptelési tevékenységekhez. Ezeket a változókat a PowerShell futtatókörnyezete beépítette, és helyőrzőként szolgál bizonyos információk tárolására és hivatkozására egy parancsfájl vagy parancs végrehajtása során. Ezen automatikus változók hatékony megértése és felhasználása nagymértékben növelheti a PowerShell-szkriptek hatékonyságát és funkcionalitását.

Ennek a cikknek az a célja, hogy feltárja az „automatikus változók” fogalmát a PowerShellben, azok jelentőségét, és azt, hogy miként használhatók fel különböző forgatókönyvekben.







Mik azok az automatikus változók a PowerShellben?

Kezdésként nézzük meg a „ Automatikus változók ”. Ezek a változók előre meghatározottak, és a PowerShell automatikusan létrehozza őket a szkript végrehajtása során. Ezek különböző célokat szolgálnak, beleértve a rendszerről szóló információkat, a parancssori argumentumokat, a szkripttel kapcsolatos részleteket és még sok mást.



A PowerShell számos „Automatikus változót” kínál, és mindegyikük külön célt szolgál a szkript-végrehajtás során. Ezek a változók a következők:



1. $PSVersionTable

A PowerShell egyik alapvető automatikus változója a „ $PSVersionTable ”. Ez a változó lehetővé teszi a szkriptfejlesztők számára, hogy megbizonyosodjanak a PowerShell használt verziójáról, ami kulcsfontosságú lehet bizonyos funkciók és funkciók kompatibilitása és elérhetősége szempontjából.





A következő tulajdonságok kapcsolódnak ehhez a változóhoz:

PSV-verzió: A PowerShell verziószámát adja vissza.



PSE-kiadás: A PowerShell 4 és korábbi verziók, valamint a PowerShell 5.1 teljes funkcionalitású Windows-verziók esetén ennek a tulajdonságnak az értéke „Asztali”. Ez a jellemző a Core értékkel rendelkezik a PowerShell 6 és újabb verzióihoz, valamint a Windows PowerShell 5.1 értéke alacsony terhelésű kiadásokhoz, például a Windows Nano Server vagy a Windows IoT.

GitCommitId: Lekéri a forrásfájlok GitHub véglegesítési azonosítóját.

TE: Naplózza a PowerShell által használt számítógéprendszer adatait.

Felület: Visszaadja az operációs rendszer támogató platformját. A Unix értéket jelent Linuxon és macOS-en. Nézze meg a $IsMacOs és a $IsLinux oldalait.

PSCompatibleVersions: Az aktuális verzióval kompatibilis PowerShell-verziók kerülnek visszaadásra.

PSRemotingProtocolVersion: A PowerShell távfelügyeleti protokoll verziószámát adja vissza.

Sorozati verzió: A szerializációs módszer verzióját adja vissza.

WSManStackVersion: A WS-Management verem verziószámát adja vissza.

$ PSVversionTable

2. $Args

Egy másik lényeges automatikus változó a PowerShellben a „ $Args ”, amely egy parancsfájlnak vagy függvénynek átadott parancssori argumentumok tömbjét tartalmazza. Ez a változó felhatalmazza a fejlesztőket arra, hogy dinamikusan dolgozzák fel és kezeljék a megadott argumentumokat a szkripteiken belül.

Függvény definiálásakor használhatja a 'param' kulcsszót a paraméterek deklarálásához, vagy hozzáadhat egy vesszővel elválasztott paraméterlistát zárójelben a függvény neve után. Az eseményművelet „$Args” változója olyan objektumokat tárol, amelyek helyőrzőként szolgálnak a kezelt esemény eseményparaméterei számára:

az egyes ( $arg ban ben $Args ) {
Write-Host $arg
}

3. $MyInvocation

A ' $MyInvocation ” változó alapvető háttéradatokat ad a jelenleg futó szkriptről vagy eljárásról. Olyan tulajdonságokat kínál, mint a szkript neve, sorszáma, és hogy a szkript interaktívan vagy nem interaktívan fut-e. Ezek a tulajdonságok segítenek a szkriptfejlesztőknek elágazási logikát megvalósítani, hibakezelési mechanizmusokat meghatározni, vagy értelmes naplózást és jelentéskészítést generálni:

$ MyInvocation

4. $Error

Egy kevésbé ismert automatikus változó $Error ”, hatékonyan rögzíti a szkript végrehajtása során előforduló hibaüzeneteket vagy kivételeket. A „$Error” hozzáférhet bizonyos hibarészletek, például kivételüzenetek, veremnyomok vagy hibakódok lekéréséhez, lehetővé téve a részletes elemzést és hibakeresést.

A legutóbbi hibát a ' tömb első hibaobjektuma jelenti $Error[0] “. Használhatja az ErrorAction közös beállítást „Ignore” értékkel, hogy megakadályozza a hibák hozzáadását a „$Error” tömbhöz.

Tegyük fel, hogy egy pontos parancsot írtunk be:

ip [ onfig

Most, ha beírjuk a „$Error” parancsmagot:

$ Hiba

5. $PSCmdlet

Amikor PowerShell modulokkal dolgozik, az automatikus változó $PSCmdlet ” lép életbe. Ez a változó hozzáférést biztosít a meghívott parancsmag vagy függvény aktuális példányához, megkönnyítve a közvetlen interakciót annak tulajdonságaival és módszereivel.

A „$PSCmdlet” használatával a haladó szkriptfejlesztők finomhangolhatják és javíthatják a modulok viselkedését a beépített funkciók bővítésével vagy módosításával. Használhatja az objektum attribútumait és metódusait a parancsmagban vagy a függvénykódban a használati feltételeknek megfelelően:

funkció typeof-psCmdlet {
[ cmdletBinding ( ) ] param ( )
visszhang 'típusa'. $psCmdlet van $($psCmdlet.GetType() .Teljes név)'
}

typeof-psCmdlet

A fent említett változókon kívül a PowerShell olyan automatikus változókat foglal magában, mint a $HOME, $PROFILE, $PWD és még sok más, amelyek különböző célokat szolgálnak, mint például a bemenet elérése, a hibák követése, a környezeti információk lekérése, a paraméterek kezelése és még sok más. Ezeket a változókat az alábbiakban soroljuk fel:

Automatikus változók Leírás
$$ A PowerShell-munkamenet által kapott előző sor utolsó tokent tartalmazza.
$? Tárolja az utolsó parancs végrehajtási állapotát.
$^ A munkamenet által fogadott utolsó sor első tokenjét tartalmazza.
$_ Az aktuális objektumot jelöli a folyamatban.
$ConsoleFileName A munkamenetben legutóbb használt konzolfájl (.psc1) elérési útját tartalmazza.
$EnabledExperimentalFeatures Az engedélyezett kísérleti funkciók listáját tartalmazza.
$Event Tartalmaz egy „PSEventArgs” objektumot, amely a feldolgozás alatt álló eseményt reprezentálja.
$EventArgs A feldolgozás alatt álló esemény első eseményargumentumát tartalmazza.
$EventSubscriber A feldolgozás alatt álló esemény esemény-előfizetőjét jelöli.
$ExecutionContext A PowerShell-gazda végrehajtási környezetét képviseli.
$false A „False” logikai értéket képviseli.
$foreach Tartalmazza a „for-Each” ciklus felsorolóját.
$HOME Tartalmazza a felhasználó kezdőkönyvtárának teljes elérési útját.
$Host A PowerShell jelenlegi gazdagép-alkalmazását jelöli.
$bemenet Felsorolóként szolgál a függvénynek vagy szkriptnek átadott összes bemenethez.
$IsCoreCLR Azt jelzi, hogy a munkamenet a .NET Core Runtime (CoreCLR) rendszeren fut-e.
$IsLinux Azt jelzi, ha a munkamenet Linux operációs rendszeren fut.
$IsMacOS Azt jelzi, ha a munkamenet MacOS operációs rendszeren fut.
$IsWindows Azonosítja, hogy a munkamenet Windows operációs rendszeren fut-e.
$LASTEXITCODE Tárolja az utolsó natív program vagy PowerShell-szkript kilépési kódját.
$ Matches Egyező karakterláncokat tartalmaz a „-match” és „-notmatch” operátorokból.
$NestedPromptLevel Nyomon követi az aktuális prompt szintet a beágyazott parancsokban vagy hibakeresési forgatókönyvekben.
$null Nulla vagy üres értéket jelent.
$PID A PowerShell-munkamenet folyamatazonosítóját (PID) tartalmazza.
$PROFIL Tartalmazza az aktuális felhasználó és gazdagép alkalmazás PowerShell-profiljának teljes elérési útját.
$PSBoundParameters A szkriptnek vagy függvénynek átadott paraméterek és azok értékeinek szótárát tartalmazza.
$PSCommandPath Tartalmazza a végrehajtott szkript teljes elérési útját és fájlnevét.
$PSCulture A jelenlegi PowerShell-futási terület kultúráját tükrözi.
$PSEdition A PowerShell-kiadás adatait tartalmazza.
$PSHOME A PowerShell telepítési könyvtárának teljes elérési útját tartalmazza.
$PSItem Ugyanaz, mint a $_, az aktuális objektumot jelöli a folyamatban.
$PSScriptRoot Tartalmazza a végrehajtó szkript szülőkönyvtárának teljes elérési útját.
$PSSenderInfo A PSS-sessiont elindító felhasználóról tartalmaz információkat.
$PSUICulture Az operációs rendszerben konfigurált felhasználói felület (UI) kultúráját tükrözi.
$PWD A PowerShell-munkamenet aktuális munkakönyvtárát jelöli.
$Sender Tartalmazza az eseményt generáló objektumot.
$ShellId Az aktuális shell azonosítóját tartalmazza.
$StackTrace Tárolja a verem nyomkövetését a legutóbbi hibához.
$kapcsoló Tartalmazza a „Switch” utasítás felsorolóját.
$ezt Az osztályokat kiterjesztő szkriptblokkokban lévő osztály példányára utal.
$igaz A „True” logikai értéket képviseli.

A PowerShell összes „automatikus változója” megtalálható az alábbi parancs futtatásával:

Get-Variable

Következtetés

' Automatikus változók ” alkotják a PowerShell-szkriptelés gerincét, lehetővé téve a fejlesztők számára, hogy információkat szerezzenek a rendszerről, a parancssori argumentumokról, a szkript-végrehajtási környezetről stb. Az olyan automatikus változók felhasználásával, mint a „$PSVersionTable”, „$Args”, „$MyInvocation”, „$Error” és mások, a PowerShell-szkript fejlesztői egyszerűsített rendszeradminisztrációs gyakorlatokat hozhatnak létre.