Hvað er Windows PowerShell og með hverju er það borðað? Hluti 1: Helstu eiginleikar

Sögulega séð eru skipanalínuforrit í Unix kerfum betur þróuð en á Windows, en með tilkomu nýrrar lausnar hefur staðan breyst.

Windows PowerShell gerir kerfisstjórum kleift að gera sjálfvirk flest venjubundin verkefni. Með því geturðu breytt stillingum, stöðvað og ræst þjónustu og einnig framkvæmt viðhald á flestum uppsettum forritum. Það væri rangt að líta á bláa gluggann sem annan skipanatúlk. Þessi nálgun endurspeglar ekki kjarna nýjunga sem Microsoft hefur lagt til. Reyndar eru möguleikar Windows PowerShell miklu víðtækari: í stuttri greinaröð munum við reyna að komast að því hvernig Microsoft lausnin er frábrugðin þeim verkfærum sem við þekkjum betur.

Hvað er Windows PowerShell og með hverju er það borðað? Hluti 1: Helstu eiginleikar

Helstu eiginleikar 

Auðvitað er Windows PowerShell fyrst og fremst forskriftarskel, upphaflega byggð á .NET Framework og síðar á .NET Core. Ólíkt skeljum sem taka við og skila textagögnum vinnur Windows PowerShell með .NET flokkum sem hafa eiginleika og aðferðir. PowerShell gerir þér kleift að keyra algengar skipanir og gefur þér einnig aðgang að COM, WMI og ADSI hlutum. Það notar ýmsar geymslur, svo sem skráarkerfið eða Windows skrásetninguna, til að fá aðgang að þeim svokallaða. veitendur. Vert er að benda á möguleikann á að fella PowerShell keyranlega íhluti inn í önnur forrit til að útfæra ýmsar aðgerðir, þ.m.t. í gegnum grafískt viðmót. Hið gagnstæða er líka satt: mörg Windows forrit veita aðgang að stjórnunarviðmótum sínum í gegnum PowerShell. 

Windows PowerShell gerir þér kleift að:

  • Breyta stýrikerfisstillingum;
  • Stjórna þjónustu og ferlum;
  • Stilla hlutverk og íhluti miðlara;
  • Settu upp hugbúnað;
  • Stjórna uppsettum hugbúnaði í gegnum sérstök viðmót;
  • Fella inn keyranlega hluti í forritum þriðja aðila;
  • Búðu til forskriftir til að gera stjórnunarverkefni sjálfvirk;
  • Vinna með skráarkerfið, Windows skrásetninguna, vottorðaverslunina osfrv.

Skel og þróunarumhverfi

Það er til Windows PowerShell í tvennu formi: til viðbótar við stjórnborðshermi með skipanaskel er til Integrated Scripting Environment (ISE). Til að fá aðgang að skipanalínuviðmótinu skaltu einfaldlega velja viðeigandi flýtileið úr Windows valmyndinni eða keyra powershell.exe úr Run valmyndinni. Blár gluggi mun birtast á skjánum, áberandi frábrugðinn hæfileikum antediluvian cmd.exe. Það er sjálfvirk útfylling og aðrir eiginleikar sem notendur stjórnunarskelja þekkja fyrir Unix kerfi.

Hvað er Windows PowerShell og með hverju er það borðað? Hluti 1: Helstu eiginleikar

Til að vinna með skelina þarftu að muna eftir flýtilykla:

  • Upp og niður örvarnar fletta í gegnum ferilinn til að endurtaka áður slegnar skipanir;
  • Hægri örin í lok línu endurritar fyrri skipun staf fyrir staf;
  • Ctrl+Home eyðir innrituðum texta frá bendillstöðu til upphafs línunnar;
  • Ctrl+End eyðir texta frá bendilinum til enda línunnar.

F7 sýnir glugga með vélrituðum skipunum og gerir þér kleift að velja eina þeirra. Stjórnborðið vinnur einnig með textavali með músinni, afrita-líma, staðsetningu bendils, eyðingu, bakhlið - allt sem okkur líkar.

Hvað er Windows PowerShell og með hverju er það borðað? Hluti 1: Helstu eiginleikar
Windows PowerShell ISE er fullkomið þróunarumhverfi með kóðaritara sem styður flipa og auðkenningu á setningafræði, skipanahönnuður, innbyggðum villuleitarforriti og öðrum forritunargleði. Ef þú skrifar bandstrik á eftir skipanafninu í ritstjóra þróunarumhverfisins færðu allar tiltækar færibreytur í fellilistanum, sem gefur til kynna tegundina. Þú getur ræst PowerShell ISE annað hvort með flýtileið úr kerfisvalmyndinni eða með því að nota keyrsluskrána powershell_ise.exe.

Hvað er Windows PowerShell og með hverju er það borðað? Hluti 1: Helstu eiginleikar

Cmdlets 

Í Windows PowerShell er svokallað. cmdlets. Þetta eru sérhæfðir .NET flokkar sem bjóða upp á margvíslega virkni. Þeir eru nefndir Action-Object (eða Sagnorð-Nafnorð, ef þú vilt), og bandstrik aðskilin copula líkist sögn og efni í náttúrulegum málsetningum. Til dæmis þýðir Fá-hjálp bókstaflega "Fá-hjálp", eða í PowerShell samhengi: "Sýna-hjálp". Reyndar er þetta hliðstæða man skipunarinnar í Unix kerfum og ætti að biðja um handbækur í PowerShell á þennan hátt, en ekki með því að hringja í cmdlets með --help eða /? takkanum. Ekki gleyma PowerShell skjölunum á netinu: Microsoft hefur það nokkuð ítarlegt.

Til viðbótar við Get, nota cmdlets aðrar sagnir til að tákna aðgerðir (og ekki aðeins sagnir, strangt til tekið). Í listanum hér að neðan gefum við nokkur dæmi:

Add - Bæta við;
Clear - skýr;
Enable - kveikja á;
Disable - slökkva;
New - búa til;
Remove - eyða;
Set - spyrja;
Start - hlaupa;
Stop - hætta;
Export - útflutningur;
Import - flytja inn.

Það eru kerfis-, notenda- og valfrjálsir cmdlets: Sem afleiðing af framkvæmd skila þeir allir hlut eða fjölda hluta. Þau eru ekki hástafaviðkvæm, þ.e. Frá sjónarhóli stjórnatúlksins er enginn munur á Get-Hjálp og fá-hjálp. Táknið ';' er notað fyrir aðskilnað, en það er aðeins nauðsynlegt ef nokkrir cmdlets eru keyrðir á einni línu. 

Windows PowerShell cmdlets eru flokkaðir í einingar (NetTCPIP, Hyper-V, osfrv.), og það er Get-Command cmdlet til að leita eftir hlutum og aðgerðum. Þú getur sýnt hjálp fyrir það svona:

Get-Help Get-Command

Hvað er Windows PowerShell og með hverju er það borðað? Hluti 1: Helstu eiginleikar

Sjálfgefið er að skipunin sýnir stutta hjálp, en færibreytur (rök) eru sendar til cmdlets eftir þörfum. Með hjálp þeirra geturðu til dæmis fengið nákvæma (breytu -Ítarlegar) eða fulla (breytu -Full) hjálp, auk sýna dæmi (breytu -Dæmi):

Get-Help Get-Command -Examples

Hjálp í Windows PowerShell er uppfærð með Update-Help cmdlet. Ef skipanalínan reynist of löng er hægt að færa cmdlet rökin yfir á þá næstu með því að skrifa þjónustustafinn '`' og ýta á Enter - bara að klára að skrifa skipunina á eina línu og halda áfram á annarri virkar ekki.

Hér eru nokkur dæmi um algengar cmdlets: 

Get-Process - sýna ferli í gangi í kerfinu;
Get-Service — sýna þjónustu og stöðu þeirra;
Get-Content - birta innihald skráarinnar.

Fyrir oft notaða cmdlets og ytri tól, hefur Windows PowerShell stutt samheiti - samnefni (af ensku. Alias). Til dæmis er dir samnefni fyrir Get-ChildItem. Listinn yfir samheiti inniheldur einnig hliðstæður skipana frá Unix kerfum (ls, ps, o.s.frv.), og Get-Help cmdlet er kallað með hjálparskipuninni. Hægt er að skoða heildarlista yfir samheiti með því að nota Get-Alias ​​​​cmdlet:

Hvað er Windows PowerShell og með hverju er það borðað? Hluti 1: Helstu eiginleikar

Forskriftir, aðgerðir, einingar og PowerShell tungumálið

Windows PowerShell forskriftir eru geymdar sem einfaldar textaskrár með .ps1 endingunni. Þú getur ekki ræst þau með því að tvísmella: þú þarft að hægrismella til að kalla fram samhengisvalmyndina og velja hlutinn „Keyra í PowerShell“. Frá stjórnborðinu þarftu annað hvort að tilgreina alla slóðina að handritinu eða fara í viðeigandi möppu og skrifa skráarnafnið. Keyrsla forskrifta er einnig takmörkuð af kerfisstefnu og til að athuga núverandi stillingar geturðu notað Get-ExecutionPolicy cmdlet, sem mun skila einu af eftirfarandi gildum:

Restricted — slökkt er á því að ræsa forskriftir (sjálfgefið);
AllSigned - aðeins opnun skrifta undirrituð af traustum verktaki er leyfð;
RemoteSigned - leyfilegt að keyra undirrituð og eigin forskriftir;
Unrestricted - Leyft að keyra hvaða forskrift sem er.

Stjórnandinn hefur tvo valkosti. Það öruggasta felur í sér að undirrita forskriftir, en þetta er frekar alvarleg galdrar - við munum takast á við það í eftirfarandi greinum. Nú skulum við fara leið minnstu mótstöðunnar og breyta stefnunni:

Set-ExecutionPolicy RemoteSigned

Hvað er Windows PowerShell og með hverju er það borðað? Hluti 1: Helstu eiginleikar
PowerShell verður að keyra sem stjórnandi til að gera þetta, þó að þú getir breytt stefnu fyrir núverandi notanda með sérstakri stillingu.

Forskriftir eru skrifaðar á hlutbundnu forritunarmáli, skipanir sem eru nefndar samkvæmt sömu meginreglu og áður ræddar cmdlets: „Action-Object“ („Verb-Noun“). Megintilgangur þess er að gera stjórnunarverkefni sjálfvirk, en það er fullgild túlkað tungumál sem hefur allar nauðsynlegar smíðar: skilyrt stökk, lykkjur, breytur, fylki, hluti, villumeðferð o.s.frv. Hvaða textaritill er fínn fyrir forskriftir, en það er best að keyra Windows PowerShell ISE.

Þú getur sent færibreytur í handritið, gert þær nauðsynlegar og stillt sjálfgefin gildi. Að auki gerir Windows PowerShell þér kleift að búa til og kalla aðgerðir á sama hátt og cmdlets, með því að nota Function smíða og krullaðar axlabönd. Forskrift með föllum kallast eining og hefur .psm1 endinguna. Einingar verða að vera geymdar í möppum sem eru skilgreindar í PowerShell umhverfisbreytunum. Þú getur skoðað þær með eftirfarandi skipun:

Get-ChildItem Env:PSModulePath | Format-Table -AutoSize

Færibönd

Í síðasta dæminu höfum við notað smíði sem kannast við Unix skel notendur. Í Windows PowerShell gerir lóðrétta stikan þér einnig kleift að senda úttak einnar skipunar í inntak annarrar, en það er verulegur munur á útfærslu leiðslunnar: við erum ekki lengur að tala um sett af stöfum eða einhvers konar texti. Innbyggðir cmdlets eða notendaskilgreindar aðgerðir skila hlutum eða fylkjum hluta og geta einnig tekið á móti þeim sem inntak. Eins og Bourne skelin og margir eftirmenn hennar, gerir PowerShell flókin verkefni auðveldari með leiðslu.

Einfaldasta leiðsludæmið lítur svona út:

Get-Service | Sort-Object -property Status

Hvað er Windows PowerShell og með hverju er það borðað? Hluti 1: Helstu eiginleikar
Get-Service cmdlet er keyrt fyrst og síðan er öll þjónusta sem hún fær send til Sort-Object cmdletsins til að flokka eftir stöðueiginleikanum. Hvaða rök niðurstaða fyrri hluta leiðslunnar er send til fer eftir gerð þeirra - venjulega er það InputObject. Nánar verður fjallað um þetta mál í grein sem er tileinkuð PowerShell forritunarmálinu. 

Ef þú vilt geturðu haldið áfram keðjunni og sent niðurstöðu Sort-Object aðgerðarinnar í annan cmdlet (þau verða keyrð frá vinstri til hægri). Við the vegur, Windows notendur hafa einnig aðgang að smíði fyrir blaðsíðugerð sem allir Unixoids þekkja: 

Get-Service | Sort-Object -property Status | more

Að keyra verkefni í bakgrunni 

Oft er nauðsynlegt að keyra ákveðna skipun í bakgrunni til að bíða ekki eftir niðurstöðu framkvæmd hennar í skellotunni. Windows PowerShell hefur nokkra cmdlet fyrir þessar aðstæður:

Start-Job - setja af stað bakgrunnsverkefni;
Stop-Job — stöðva bakgrunnsverkefnið;
Get-Job - skoða lista yfir bakgrunnsverkefni;
Receive-Job — skoða niðurstöðu bakgrunnsverkefnisins;
Remove-Job — eyða bakgrunnsverkefni;
Wait-Job - flytja bakgrunnsverkefnið aftur á stjórnborðið.

Til að hefja bakgrunnsverkefni notum við Start-Job cmdlet og tilgreinum skipun eða skipanasett í krulluðum axlaböndum:

Start-Job {Get-Service}

Hvað er Windows PowerShell og með hverju er það borðað? Hluti 1: Helstu eiginleikar
Bakgrunnsverkefni í Windows PowerShell er hægt að vinna með því að þekkja nöfn þeirra. Fyrst skulum við læra hvernig á að sýna þær:

Get-Job

Hvað er Windows PowerShell og með hverju er það borðað? Hluti 1: Helstu eiginleikar
Nú skulum við sýna niðurstöðu Job1:

Receive-Job Job1 | more

Hvað er Windows PowerShell og með hverju er það borðað? Hluti 1: Helstu eiginleikar
Allt er frekar einfalt.

Fjarframkvæmd skipana

Windows PowerShell gerir þér kleift að framkvæma skipanir og forskriftir, ekki aðeins á staðbundinni tölvu, heldur einnig á ytri tölvu, og jafnvel á heilum hópi véla. Það eru nokkrar leiðir til að gera þetta:

  • Margir cmdlets hafa breytu -ComputerName, en þannig verður til dæmis ekki hægt að búa til færiband;
  • Cmdlet Enter-PSSession gerir þér kleift að búa til gagnvirka lotu á ytri vél; 
  • Með því að nota cmdlet Invoke-Command þú getur keyrt skipanir eða forskriftir á einni eða fleiri fjartengdum tölvum.

Útgáfur af PowerShell

PowerShell hefur breyst mikið frá fyrstu útgáfu árið 2006. Tólið er fáanlegt fyrir mörg kerfi sem keyra á mismunandi vélbúnaðarpöllum (x86, x86-64, Itanium, ARM): Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008/2008 R2, Windows 7, Windows 8, Windows 8.1, Windows RT, Windows RT 8.1, Windows Server 2012/2012 R2, Windows 10, Windows Server 2016, GNU/Linux og OS X. Nýjasta útgáfa 6.2 kom út 10. janúar 2018. Forskriftir skrifaðar fyrir fyrri útgáfur munu líklega virka í síðari útgáfum, en bakflutningur getur verið erfiður vegna þess að PowerShell hefur kynnt mikinn fjölda nýrra cmdlets í gegnum þróunarárin. Þú getur fundið út útgáfu skipanaskeljarins sem er uppsett á tölvunni með því að nota PSVersion eiginleika $PSVersionTable innbyggðu breytunnar:

$PSVersionTable.PSVersion

Hvað er Windows PowerShell og með hverju er það borðað? Hluti 1: Helstu eiginleikar
Þú getur líka notað cmdlet:

Get-Variable -Name PSVersionTable –ValueOnly

Hvað er Windows PowerShell og með hverju er það borðað? Hluti 1: Helstu eiginleikar
Sama er gert með Get-Host cmdlet. Reyndar eru margir möguleikar, en til að nota þá þarftu að læra PowerShell forritunarmálið, sem er það sem við munum gera í næstu grein

Niðurstöður 

Microsoft hefur tekist að búa til virkilega öfluga skel með þægilegu samþættu umhverfi til að þróa forskriftir. Það er frábrugðið þeim verkfærum sem við þekkjum í Unix heimi með djúpri samþættingu við stýrikerfi Windows fjölskyldunnar, sem og hugbúnaði fyrir þau og .NET Core vettvang. PowerShell er hægt að kalla hlutbundin skel vegna þess að cmdlets og notendaskilgreindar aðgerðir skila hlutum eða fylkjum af hlutum og geta tekið þá sem inntak. Við teljum að allir netþjónastjórnendur á Windows ættu að eiga þetta tól: tíminn er liðinn þegar þeir gátu verið án skipanalínunnar. Sérstaklega þarf háþróaða stjórnborðsskel á okkar ódýra VPS sem keyrir Windows Server Core, en það er allt önnur saga.

Hvað er Windows PowerShell og með hverju er það borðað? Hluti 1: Helstu eiginleikar

Aðeins skráðir notendur geta tekið þátt í könnuninni. Skráðu þig inn, takk.

Hvaða efni ætti að fjalla fyrst í næstu greinum í röðinni?

  • 53,2%Forritun í PowerShell123

  • 42,4%PowerShell98 aðgerðir og einingar

  • 22,1%Hvernig á að skrifa undir eigin forskriftir?51

  • 12,1%Vinna með geymslur í gegnum veitendur (veitur)28

  • 57,6%Sjálfvirk tölvustjórnun með PowerShell133

  • 30,7%Hugbúnaðarstjórnun og innfelling PowerShell executables í vörum þriðja aðila71

231 notendur greiddu atkvæði. 37 notendur sátu hjá.

Heimild: www.habr.com

Bæta við athugasemd