„PowerShell“ Automatiniai kintamieji “ yra būtini sistemos valdymo, automatizavimo ir scenarijų kūrimo veiklai. Šiuos kintamuosius įtaiso PowerShell vykdymo laikas ir jie naudojami kaip vietos žymekliai, skirti saugoti ir nurodyti konkrečią informaciją vykdant scenarijų arba komandą. Veiksmingas šių automatinių kintamųjų supratimas ir naudojimas gali labai padidinti „PowerShell“ scenarijų efektyvumą ir funkcionalumą.
Šiuo straipsniu siekiama ištirti „PowerShell“ automatinių kintamųjų sampratą, jų reikšmę ir tai, kaip juos galima panaudoti įvairiuose scenarijuose.
Kas yra „PowerShell“ automatiniai kintamieji?
Norėdami pradėti, įsigilinkime į „“ apibrėžimą Automatiniai kintamieji “. Šie kintamieji yra iš anksto nustatyti ir automatiškai sukuriami PowerShell scenarijaus vykdymo metu. Jie naudojami įvairiems tikslams, įskaitant informacijos apie sistemą teikimą, komandinės eilutės argumentus, su scenarijumi susijusią informaciją ir daug daugiau.
„PowerShell“ siūlo keletą „automatinių kintamųjų“ ir kiekvienas iš jų tarnauja tam tikram scenarijaus vykdymo tikslui. Šie kintamieji yra tokie:
1. $PSVersionTable
Vienas iš pagrindinių automatinių „PowerShell“ kintamųjų yra „ $PSVersionTable “. Šis kintamasis leidžia scenarijų kūrėjams išsiaiškinti, kokia PowerShell versija naudojama, o tai gali būti labai svarbu svarstant tam tikrų funkcijų ir funkcijų suderinamumą ir prieinamumą.
Su šiuo kintamuoju yra susietos šios savybės:
PSVversija: Grąžina PowerShell versijos numerį.
PSE leidimas: „PowerShell 4“ ir senesnėse versijose, taip pat „PowerShell 5.1“ visose „Windows“ versijose šios ypatybės reikšmė yra „Desktop“. Šios charakteristikos vertė yra Core, skirta „PowerShell 6“ ir naujesnėms versijoms, taip pat „Windows PowerShell 5.1“, skirta mažai aprėpti leidimams, pvz., „Windows Nano Server“ arba „Windows IoT“.
GitCommitId: Gauna šaltinio failų „GitHub“ įsipareigojimo ID.
TU: Registruoja informaciją apie kompiuterio sistemą, kurią naudoja PowerShell.
Platforma: Grąžina operacinės sistemos palaikymo platformą. „Unix“ turi vertę „Linux“ ir „MacOS“. Patikrinkite $IsMacOs ir $IsLinux.
PSCompatibleVersions: Grąžinamos su dabartine versija suderinamos „PowerShell“ versijos.
PSRemotingProtocolVersion: Grąžina PowerShell nuotolinio valdymo protokolo versijos numerį.
Serializacijos versija: Grąžina serializavimo metodo versiją.
WSManStackVersion: Grąžina WS-Management dėklo versijos numerį.
$ PSVersionTable
2. $Args
Kitas svarbus automatinis „PowerShell“ kintamasis yra „ $Args “, kuriame yra komandinės eilutės argumentų, perduodamų scenarijui arba funkcijai, masyvas. Šis kintamasis suteikia kūrėjams galimybę dinamiškai apdoroti ir manipuliuoti pateiktais argumentais savo scenarijuose.
Apibrėždami funkciją, parametrams deklaruoti galite naudoti raktinį žodį „param“ arba skliausteliuose po funkcijos pavadinimo galite pridėti kableliais atskirtą parametrų sąrašą. Įvykio veiksmo kintamajame „$Args“ saugomi objektai, kurie naudojami kaip apdorojamo įvykio įvykio parametrų rezervuotos vietos:
kiekvienam ( $arg in $Args ) {Rašymo priegloba $arg
}
3. $MyInvocation
„ $MyInvocation “ kintamasis suteikia esminius foninius duomenis apie šiuo metu vykdomą scenarijų arba procedūrą. Ji siūlo tokias ypatybes kaip scenarijaus pavadinimas, scenarijaus eilutės numeris ir tai, ar scenarijus vykdomas interaktyviai, ar neinteraktyviai. Šios ypatybės padeda scenarijų kūrėjams įgyvendinti šakojimo logiką, apibrėžti klaidų valdymo mechanizmus arba generuoti prasmingą registravimą ir ataskaitų teikimą:
$ MyInvocation
4. $Error
Mažiau žinomas automatinis kintamasis “ $Klaida “, efektyviai užfiksuoja visus klaidų pranešimus ar išimtis, atsirandančias vykdant scenarijų. „$Error“ galima pasiekti norint gauti konkrečią klaidų informaciją, pvz., išimčių pranešimus, krūvos pėdsakus arba klaidų kodus, kad būtų galima atlikti išsamią analizę ir derinti.
Paskutinę klaidą žymi pirmasis klaidos objektas masyve ' $Error[0] “. Galite naudoti bendrąją ErrorAction parinktį su reikšme „Ignore“, kad klaidos nebūtų įtrauktos į „$Error“ masyvą.
Tarkime, kad įvedėme tikslią komandą:
ip [ onfig
Dabar, jei įvesime cmdlet „$ Error“:
$ Klaida
5. $PSCmdlet
Kai dirbate su PowerShell moduliais, automatinis kintamasis ' $PSCmdlet “ įsigalioja. Šis kintamasis suteikia prieigą prie dabartinio iškviečiamo cmdlet arba funkcijos egzemplioriaus, palengvindamas tiesioginę sąveiką su jo savybėmis ir metodais.
Naudodami „$PSCmdlet“, pažangūs scenarijų kūrėjai gali tiksliai sureguliuoti ir pagerinti modulių veikimą išplėsdami arba modifikuodami integruotas funkcijas. Galite naudoti objekto atributus ir metodus savo cmdlet arba funkcijos kode, atsižvelgdami į naudojimo kriterijus:
funkcija typeof-psCmdlet {[ cmdletBinding ( ) ] param ( )
aidas 'tipas ' $psCmdlet yra $($psCmdlet.GetType() .Pilnas vardas)'
}
typeof-psCmdlet
Be pirmiau minėtų kintamųjų, „PowerShell“ apima automatinius kintamuosius, tokius kaip $HOME, $PROFILE, $PWD ir daug daugiau, kurie naudojami įvairiems tikslams, pavyzdžiui, prieigai prie įvesties, sekimo klaidų, aplinkos informacijos gavimo, parametrų valdymo ir daug daugiau. Šie kintamieji išvardyti toliau:
Automatiniai kintamieji | apibūdinimas |
$$ | Laiko paskutinį prieigos raktą ankstesnėje eilutėje, gautą PowerShell seanso. |
$? | Išsaugo paskutinės komandos vykdymo būseną. |
$^ | Yra pirmasis paskutinės seanso gautos eilutės prieigos raktas. |
$_ | Atstovauja esamą objektą dujotiekyje. |
$ConsoleFileName | Yra konsolės failo (.psc1) kelias, kuris buvo neseniai naudotas seanso metu. |
$EnabledExperimentalFeatures | Pateikiamas įgalintų eksperimentinių funkcijų sąrašas. |
$Įvykis | Yra „PSEventArgs“ objektas, vaizduojantis apdorojamą įvykį. |
$EventArgs | Jame yra pirmasis apdorojamo įvykio įvykio argumentas. |
$EventSubscriber | Atstovauja apdorojamo įvykio prenumeratorių. |
$ExecutionContext | Atstoja „PowerShell“ pagrindinio kompiuterio vykdymo kontekstą. |
$false | Reiškia Būlio reikšmę „False“. |
$foreach | Jame yra „kiekvienam“ ciklo skaitiklis. |
$HOME | Jame yra visas vartotojo namų katalogo kelias. |
$Host | Atstovauja dabartinei „PowerShell“ prieglobos programai. |
$ įvestis | Naudojamas kaip visų įvesčių, perduodamų funkcijai ar scenarijui, skaitiklis. |
$IsCoreCLR | Nurodo, ar seansas vykdomas naudojant .NET Core Runtime (CoreCLR). |
$IsLinux | Nurodo, ar sesija vykdoma Linux operacinėje sistemoje. |
$IsMacOS | Nurodo, ar sesija vykdoma MacOS operacinėje sistemoje. |
$IsWindows | Nurodo, ar seansas vykdomas „Windows“ operacinėje sistemoje. |
$LASTEXITCODE | Saugo paskutinės vietinės programos arba PowerShell scenarijaus išėjimo kodą. |
$ Matches | Sudėtyje yra suderintų eilučių iš operatorių „-match“ ir „-notmatch“. |
$NestedPromptLevel | Stebi esamą raginimo lygį įdėtose komandose arba derinimo scenarijuose. |
$null | Nurodo nulinę arba tuščią reikšmę. |
$PID | Jame yra PowerShell seanso proceso identifikatorius (PID). |
$PROFILIS | Jame yra visas dabartinio vartotojo ir pagrindinio kompiuterio programos „PowerShell“ profilio kelias. |
$PSBoundParameters | Saugo scenarijui ar funkcijai perduodamų parametrų ir jų reikšmių žodyną. |
$PSCommandPath | Jame yra visas vykdomo scenarijaus kelias ir failo pavadinimas. |
$PSCulture | Atspindi dabartinės „PowerShell“ veikimo erdvės kultūrą. |
$PSEdition | Yra PowerShell leidimo informacija. |
$PSHOME | Jame yra visas „PowerShell“ diegimo katalogo kelias. |
$PSItem | Tas pats kaip $_, reiškia dabartinį objektą konvejeryje. |
$PSScriptRoot | Jame yra visas vykdomojo scenarijaus pirminio katalogo kelias. |
$PSSenderInfo | Pateikiama informacija apie vartotoją, kuris pradėjo PSS sesiją. |
$PSUICulture | Atspindi vartotojo sąsajos (UI) kultūrą, sukonfigūruotą operacinėje sistemoje. |
$ PWD | Nurodo dabartinį PowerShell seanso darbo katalogą. |
$Siuntėjas | Apima objektą, kuris sugeneravo įvykį. |
$ShellId | Jame yra dabartinio apvalkalo identifikatorius. |
$StackTrace | Išsaugo naujausios klaidos dėklo pėdsaką. |
$jungiklis | Jame yra teiginio „Perjungti“ skaitiklis. |
$tai | Nurodo klasės egzempliorių scenarijų blokuose, kurie praplečia klases. |
$tiesa | Reiškia Būlio reikšmę „True“. |
Visus „automatinius kintamuosius“ programoje „PowerShell“ galima rasti vykdant toliau pateiktą komandą:
Gauti kintamąjį
Išvada
“ Automatiniai kintamieji “ sudaro PowerShell scenarijų pagrindą, leidžiantį kūrėjams gauti informacijos apie sistemą, komandinės eilutės argumentus, scenarijaus vykdymo kontekstą ir kt. Naudodami automatinius kintamuosius, tokius kaip „$PSVersionTable“, „$Args“, „$MyInvocation“, „$Error“ ir kitus, „PowerShell“ scenarijų kūrėjai gali sukurti supaprastintą sistemos administravimo praktiką.