/ / Geek mokykla: Sužinokite, kaip automatizuoti „Windows“ naudojant „PowerShell“

Geek mokykla: Sužinokite, kaip automatizuoti „Windows“ naudojant „PowerShell“

Šiame „Geek School“ leidime mes jums padėsime suprasti galingą „PowerShell“ scenarijų kalbą, kuri yra įmontuota tiesiai į „Windows“ ir yra ypač naudinga žinoti IT aplinkoje.

Nors ši serija nėra suskirstyta įegzaminas, „PowerShell“ mokymasis yra vienas iš svarbiausių dalykų, kuriuos galite padaryti kaip tinklo administratorius, taigi, jei yra vienas dalykas, kurio norite išmokti, kad padėtumėte savo IT karjerai, tai jis. Be to, tai labai smagu.

Įvadas

„PowerShell“ yra galingiausias „Microsoft“ siūlomas automatizavimo įrankis, turintis ir apvalkalą, ir scenarijų kalbą.

Atminkite, kad ši serija pagrįsta „PowerShell 3“, kuri pristatoma kartu su „Windows 8“ ir „Server 2012“. Jei naudojate „Windows 7“, prieš tęsdami atsisiųskite „PowerShell 3“ naujinį.

Susipažinkite su pultu ir ISE

Yra du „PowerShell“ sąveikos būdaiiš dėžutės, konsolė ir integruota scenarijų aplinka, dar vadinama ISE. ISE labai patobulėjo nuo šlykščios versijos, kuri buvo pristatyta kartu su „PowerShell 2“. Ją galima atidaryti paspaudus „Win + R“ klaviatūros derinį, kad būtų parodytas vykdymo laukas, tada įvesdami Powershell_ise ir paspausdami „Enter“.

vaizdas

Kaip matote ISE sportą, išsiskyrė vaizdaskad jūs galite greitai skriptuoti, kol vis tiek matote rezultatą apatinėje ISE pusėje. Apatinė ISE pusė, kurioje spausdinami scenarijaus rezultatai, taip pat gali būti naudojama kaip REPL eilutė, panašiai kaip komandinė eilutė. „V3 ISE“ pagaliau pridėjo „intellisense“ palaikymą tiek scenarijų srityje, tiek ir interaktyviojoje konsolėje.

vaizdas

vaizdas

Arba galite bendrauti su „PowerShell“naudodamas „PowerShell“ konsolę, kurią naudoju daugumai šios serijos. „PowerShell“ konsolė elgiasi panašiai kaip komandų eilutė - jūs tiesiog įvedate komandas ir ji išspinduliuoja rezultatus. Norėdami atidaryti „Windows PowerShell“ konsolę, dar kartą paspauskite klaviatūros kombinaciją „Win + R“, kad atidarytumėte vykdymo laukelį, ir įveskite „Powershell“, tada paspauskite „Enter“.

vaizdas

Tokie REPL raginimai yra nuostabūs akimirksniupasitenkinimas: įvedate komandą ir gaunate rezultatus. Nors konsolė nesiūlo integruotosios paieškos, ji siūlo vadinamąjį skirtuko užpildymą, kuris veikia beveik tas pats - tiesiog pradėkite rašyti komandą ir paspauskite tabuliavimo klavišą, kad galėtumėte peržiūrėti galimas atitiktis.

vaizdas

vaizdas

Pagalbos sistemos naudojimas

Ankstesnėse „PowerShell“ versijose pagalbos failai buvoįtraukta įdiegus „Windows“. Tai iš esmės buvo geras sprendimas, tačiau mums iškilo nemaža problema. Kai „PowerShell“ pagalbos komandai teko nustoti dirbti su pagalbos failais, „PowerShell“ kūrėjai vis dar užsiėmė kodavimu ir pakeitimų darymu. Tai reiškė, kad išsiuntus „PowerShell“ pagalbos failai buvo neteisingi, nes juose nebuvo naujesnių kodo pakeitimų. Norėdami išspręsti šią problemą, „PowerShell 3“ nepateikiami jokie pagalbos failai ir joje yra atnaujinama pagalbos sistema. Tai reiškia, kad prieš pradėdami ką nors, atsisiųsite naujausius pagalbos failus. Tai galite padaryti atidarę „PowerShell“ konsolę ir paleisdami:

Atnaujinimas - pagalba

vaizdas

vaizdas

Sveikiname paleidus pirmąjį „PowerShell“komanda! Tiesa yra ta, kad komanda „Atnaujinti-Pagalba“ turi daug daugiau parinkčių, nei tiesiog ją paleidžia, ir norėdami pamatyti jas, norėsime peržiūrėti komandos pagalbą. Norėdami peržiūrėti komandos pagalbą, tiesiog perduokite komandos, kuriai norite padėti, pavadinimą komandos „Gauti žinynas“ parametrui Pavadinimas, pavyzdžiui:

Gauti pagalbą - vardo atnaujinimo pagalba

vaizdas

Tikriausiai jums įdomu, kaip viską interpretuotibet kokiu atveju, turiu omenyje tai, kodėl sintaksės skyriuje yra daug informacijos ir kodėl visur yra tiek skliaustų? Pirmiausia: sintaksės skyriuje yra du informacijos blokai, nes jie nurodo skirtingus komandos vykdymo būdus. Tai techniškai vadinami parametrų rinkiniais ir jūs galite naudoti tik vieną vienu metu (negalima maišyti parametrų iš skirtingų rinkinių). Aukščiau pateiktoje ekrano kopijoje galite pamatyti, kad viršutiniame parametrų rinkinyje yra „SourcePath“ parametras, o apačioje nėra. Priežastis ta, kad naudodami viršutinį parametrų rinkinį (tą, kuris apima „SourcePath“), jei atnaujintumėte pagalbos failus iš kito tinklo kompiuterio, kuris juos jau atsisiuntė, tuo tarpu jums nereikėtų nurodyti šaltinio kelio, jei tiesiog norėjau patraukti naujausius „Microsoft“ failus.

Norint atsakyti į antrą klausimą, yra tam tikra sintaksė, kuri padeda failams sekti ir yra čia:

  • Kvadratiniai skliaustai aplink parametro pavadinimą ir jo tipą reiškia, kad jis yra pasirenkamas parametras, o komanda be jo veiks puikiai.
  • Krašto skliaustai aplink parametrų pavadinimą reiškia, kad parametrai yra padėties parametras.
  • Dalis, esanti kampo skliausteliuose esančio parametro dešinėje, nurodo duomenų tipą, kurio tikimasi iš parametro.

Nors jūs turėtumėte išmokti skaityti pagalbos failąsintaksė, jei nesate tikri dėl tam tikro parametro, tiesiog pridėkite - užpildykite komandos gavimo pagalbos pabaigą ir pereikite prie parametrų skyriaus, kur jis jums papasakos šiek tiek daugiau apie kiekvieną parametrą.

„Pagalba gaukite“ - „Vardo atnaujinimas“ - pagalba “

vaizdas

Paskutinis dalykas, kurį reikia žinoti apie pagalbąsistema yra tokia, kaip galite ją naudoti komandoms atrasti, o tai iš tikrųjų labai lengva. Matote, „PowerShell“ pakaitos simbolius priima beveik bet kur, todėl juos naudojant kartu su komanda „Gauti žinyną“ galite lengvai rasti komandas. Pavyzdžiui, aš ieškau komandų, susijusių su „Windows Services“:

Gaukite pagalbos - vardo * paslauga *

vaizdas

Žinoma, visa ši informacija gali būti nenaudingašikšnosparnio, bet pasitikėk manimi, skirk laiko ir išmokk naudotis pagalbos sistema. Tai naudinga visą laiką, net pažengusiems scenaristams, kurie tai daro daugelį metų.

Saugumas

Tai nebūtų tinkamas įvadas bepaminint saugumą. Didžiausias „PowerShell“ komandos rūpestis yra tas, kad „PowerShell“ tampa naujausiu ir didžiausiu scenarijų vaikų puolimo tašku. Jie įdiegė keletą saugumo priemonių, kad įsitikintų, jog taip neatsitiks, todėl pažvelkime į jas.

Pagrindinė apsaugos forma yra išfaktas, kad PS1 failo plėtinys (plėtinys, naudojamas žymėti „PowerShell“ scenarijų) nėra registruotas „PowerShell“ pagrindiniame kompiuteryje, jis faktiškai yra užregistruotas „Notepad“. Tai reiškia, kad dukart spustelėję failą, jis bus atidarytas naudojant užrašų knygelę, o ne paleistas.

Antra, jūs negalite paleisti scenarijų iš apvalkalotiesiog įvesdami scenarijaus pavadinimą, turite nurodyti visą scenarijaus kelią. Taigi, jei norėtumėte paleisti scenarijų savo C diske, turėtumėte įvesti:

C: runme.ps1

Arba, jei jau esate C disko šaknyje, galite naudoti šiuos dalykus:

.runme.ps1

Galiausiai „PowerShell“ turi tai, kas vadinamaVykdymo politika, kuri neleidžia jums paleisti jokio seno scenarijaus. Tiesą sakant, pagal numatytuosius nustatymus negalite paleisti jokių scenarijų ir turite pakeisti jų vykdymo politiką, jei norite leisti juos vykdyti. Yra 4 reikšmingos vykdymo politikos:

  • Ribotas: Tai yra numatytoji „PowerShell“ konfigūracija. Šis nustatymas reiškia, kad joks scenarijus negali būti vykdomas, nepaisant jo parašo. Vienintelis dalykas, kurį galima paleisti „PowerShell“ naudojant šį parametrą, yra individuali komanda.
  • AllSigned: Šis nustatymas leidžia paleisti scenarijus„PowerShell“. Scenarijus turi būti susijęs su patikimo leidėjo skaitmeniniu parašu. Prieš paleisdami patikimų leidėjų scenarijus, būsite paraginti.
  • „RemoteSigned“: Šis nustatymas leidžia paleisti scenarijus, betreikalauja, kad scenarijus ir konfigūracijos failai, atsisiųsti iš interneto, turėtų susietą patikimo leidėjo skaitmeninį parašą. Skriptai, paleisti iš vietinio kompiuterio, nereikia pasirašyti. Prieš paleidžiant scenarijų, nėra jokių raginimų.
  • Nevaržomas: Tai leidžia paleisti nepasirašytus scenarijus, įskaitantvisus iš interneto atsisiųstus scenarijus ir konfigūracijos failus. Tai apims failus iš „Outlook“ ir „Messenger“. Čia rizikuojate naudoti scenarijus be jokio parašo ar saugumo. Mes rekomendavome, kad niekada nesinaudotume šia nuostata.

Norėdami pamatyti, kokia jūsų dabartinė vykdymo politika nustatyta, atidarykite „PowerShell“ konsolę ir įveskite:

„Get-ExecutionPolicy“

vaizdas

Šiam kursui ir daugeliui kitų aplinkybių geriausia yra „RemoteSigned“ politika, todėl eikite toliau ir pakeiskite savo politiką naudodamiesi šiais būdais.

Pastaba: Tai reikės padaryti iš padidintos „PowerShell“ konsolės.

„Set-ExecutionPolicy RemoteSigned“

vaizdas

Tai viskas, kas šiam laikui, pasimatysime rytoj, jei norite dar daugiau „PowerShell“ pramogų.


Atsakomybės atsisakymas: Tinkamas „PowerShell“ komandos terminas yra cmdlet ir nuo šiol mes naudosime šią teisingą terminiją. Tiesiog buvo tikslingiau juos vadinti komandomis šiam įvadui.


Jei turite klausimų, galite perskaityti žinią @taybgibb arba tiesiog palikti komentarą.