Geek mokykla Sužinokite, kaip automatizuoti „Windows“ su „PowerShell“
Šiame Geek mokyklos leidime padėsime suprasti galingą „PowerShell“ skriptų kalbą, kuri yra sukurta tiesiai į „Windows“, ir labai naudinga žinoti IT aplinkoje.
Nors ši serija nėra struktūrizuota aplink egzaminą, mokymasis „PowerShell“ yra vienas iš svarbiausių dalykų, kuriuos galite padaryti kaip tinklo administratorius, todėl jei yra vienas dalykas, kurį norite išmokti padėti savo IT karjerai, tai yra taip. Be to, tai smagu.
Įvadas
„PowerShell“ yra galingiausia automatizavimo priemonė, kurią turi pasiūlyti „Microsoft“, ir jos apvalkalas ir skriptų kalba.
Atminkite, kad ši serija pagrįsta „PowerShell 3“, kuri siunčiama su „Windows 8“ ir „Server 2012“. Jei naudojate „Windows 7“, prieš tęsdami atsisiųskite „PowerShell 3“ naujinimą.
Susipažinkite su konsole ir ISE
Yra du būdai, kaip bendrauti su „PowerShell“ iš dėžutės, konsolės ir integruotos scenarijų aplinkos, taip pat žinomas kaip „ISE“. ISE gerokai pagerėjo nuo baisios versijos, kuri buvo pristatyta su „PowerShell 2“ ir gali būti atidaryta paspausdami „Win + R“ klaviatūros derinį, kad būtų rodomas paleisties langas, tada įvesdami powershell_ise ir paspausdami Enter.
Kaip matote „ISE“ sportą, galite suskirstyti vaizdą, kad galėtumėte greitai skriptuoti ir vis tiek matyti rezultatą apatinėje ISE pusėje. Apatinė ISE pusė, kurioje spausdinami jūsų scenarijaus rezultatai, taip pat gali būti naudojamas kaip REPL eilutė - panašiai kaip komandų eilutė. V3 ISE pagaliau pridėjo palaikymą intellisense tiek scenarijų srityje, tiek ir interaktyvioje konsolėje.
Arba galite bendrauti su „PowerShell“ naudodami „PowerShell“ konsolę, kurią naudosiu daugumai šios serijos. „PowerShell“ konsolė elgiasi panašiai kaip komandų eilutė - tiesiog įvedate komandas ir ištraukite rezultatus. Norėdami atidaryti „Windows PowerShell“ konsolę, dar kartą paspauskite „Win + R“ klaviatūros derinį, kad atidarytumėte paleisties langelį ir įveskite „powershell“, tada paspauskite „Enter“.
REPL nurodymai, kaip šis, yra nuostabūs greito pasitenkinimo atveju: įvesite komandą ir gausite rezultatus. Nors konsolė nesiūlo intellisense, ji siūlo kažką, vadinamą skirtuko užbaigimu, kuris veikia daug panašiai - tiesiog pradėkite rašyti komandą ir paspauskite skirtuką, jei norite pereiti per galimas atitiktis.
Pagalbos sistemos naudojimas
Ankstesnėse „PowerShell“ versijose diegiant „Windows“ buvo įtraukti pagalbos failai. Tai buvo geras sprendimas daugeliu atvejų, tačiau mums teko didelė problema. Kai „PowerShell“ pagalbos komanda turėjo nustoti dirbti su pagalbos failais, „PowerShell“ kūrėjai vis dar užsiėmė kodavimu ir pakeitimais. Tai reiškė, kad kai „PowerShell“ išsiųsta, pagalbos failai buvo neteisingi, nes juose nebuvo naujesnių kodo pakeitimų. Norėdami išspręsti šią problemą, „PowerShell 3“ be pagalbos failų iškelia laukelį ir apima atnaujinamą pagalbos sistemą. Tai reiškia, kad prieš ką nors darydami norėsite atsisiųsti naujausius pagalbos failus. Tai galite padaryti atidarydami „PowerShell“ konsolę ir paleisdami:
„Update-Help“
Sveikiname, kad vykdėte pirmąją „PowerShell“ komandą! Tiesa ta, kad „Update-Help“ komanda turi daug daugiau galimybių nei tiesiog tiesiog ją paleisti, ir norėdami juos matyti, norime peržiūrėti komandai teikiamą pagalbą. Jei norite peržiūrėti komandai teikiamą pagalbą, tiesiog perkelkite komandos, kurią norite padėti, pavadinimą į „Get-Help“ komandos pavadinimą, pvz .:
„Get-Help -Name Update“ žinynas
Jūs tikriausiai įdomu, kaip interpretuoti visą tą tekstą bet kokiu atveju, turiu omenyje, kodėl pagal sintaksės skyrių yra dvi daug informacijos ir kodėl ten yra tiek daug skliaustų? Pirmieji dalykai pirmiausia: priežastis, dėl kurios sintaksės skyriuje yra du informacijos blokai, yra todėl, kad jie yra skirtingi būdai paleisti komandą. Tai yra techniškai vadinami parametrų rinkiniai, ir jūs galite naudoti tik vieną kartą (jūs negalite maišyti parametrų iš skirtingų rinkinių). Pirmiau pateiktame ekrane galite matyti, kad viršutiniame parametrų rinkinyje yra SourcePath parametras, o apačioje nėra. Priežastis yra ta, kad jūs naudosite viršutinį parametrų rinkinį (tą, kuriame yra „SourcePath“), jei atnaujinote savo pagalbos failus iš kito tinklo, kuris jau buvo juos atsisiuntęs, įrenginį, o jums nereikės nurodyti šaltinio kelio, jei tik norėjau paimti naujausius „Microsoft“ failus.
Norėdami atsakyti į antrąjį klausimą, yra tam tikra sintaksė, kuri padeda failams sekti ir čia:
- Kvadratiniai skliausteliai aplink parametrų pavadinimą ir jo tipą reiškia, kad tai yra neprivalomas parametras, o komanda veiks tik gerai.
- Kvadratiniai skliaustai aplink parametrų pavadinimą reiškia, kad parametrai yra pozicioninis parametras.
- Dešiniojo kampo skliausteliuose parametro dešinėje esantis dalykas nurodo duomenų tipą, kurio parametras laukia.
Nors turėtumėte išmokti skaityti pagalbos failo sintaksę, jei jūs kada nors nesate tikri dėl tam tikro parametro, tiesiog pridėkite - iki galo gauti pagalbos komandą ir pereikite prie parametrų sekcijos, kur jis šiek tiek daugiau apie kiekvieną pasakys apie kiekvieną parametras.
„Get-Help -Name Update-Help“ - pilnas
Paskutinis dalykas, apie kurį reikia žinoti apie pagalbos sistemą, yra tai, kaip galite jį naudoti norint atrasti komandas, kurios yra labai paprastos. Matote, „PowerShell“ beveik visur priima pakaitos simbolius, todėl jų naudojimas kartu su „Get-Help“ komanda leidžia lengvai atrasti komandas. Pvz., Ieško komandų, susijusių su „Windows“ paslaugomis:
„Get-Help -Name“ paslauga *
Žinoma, visa ši informacija gali nebūti patogu šikšnosparniui, bet pasitikėkite manimi, paimkite laiką ir sužinokite, kaip naudotis pagalbos sistema. Jis yra patogus visą laiką, net ir pažengusiems scenaristams, kurie tai daro jau daugelį metų.
Saugumas
Tai nebūtų tinkamas įvadas, nenurodant saugumo. Didžiausias „PowerShell“ komandos rūpestis yra tas, kad „PowerShell“ tampa naujausiu ir didžiausiu užpuolimo tašku scenarijų „kiddies“. Jie įdiegė keletą saugumo priemonių, kad užtikrintų, jog tai neįvyks, todėl pažvelkime į juos.
Pagrindinė apsaugos forma atsiranda dėl to, kad PS1 failo plėtinys (plėtinys, naudojamas žymėti „PowerShell“ scenarijų) nėra užregistruotas „PowerShell“ priegloboje, o tai faktiškai užregistruota „Notepad“. Tai reiškia, kad dukart spustelėjus failą, jis bus atidarytas su užrašu, o ne paleisti.
Antra, negalite paleisti scenarijų iš apvalkalo tiesiog įvesdami scenarijaus pavadinimą, turite nurodyti visą scenarijaus kelią. Taigi, jei norite paleisti scenarijų C diske, turėtumėte įvesti:
C: reg.ps1
Arba, jei jau esate „C“ diske, galite naudoti šiuos veiksmus:
.ru.ps1
Galiausiai „PowerShell“ turi kažką vadinamą „Vykdymo politika“, kuri neleidžia jums paleisti jokių senų scenarijų. Iš tiesų, pagal nutylėjimą negalite paleisti jokių scenarijų ir, jei norite leisti juos paleisti, reikia pakeisti vykdymo politiką. Yra 4 pastebimos vykdymo taisyklės:
- Apribota: Tai yra numatytoji konfigūracija „PowerShell“. Šis nustatymas reiškia, kad, nepaisant jo parašo, negalima paleisti jokių scenarijų. Vienintelis dalykas, kurį galima paleisti „PowerShell“ su šiuo nustatymu, yra individuali komanda.
- AllSigned: Šis nustatymas leidžia scenarijus paleisti „PowerShell“. Scenarijus turi turėti susietą skaitmeninį parašą iš patikimo leidėjo. Prieš paleisdami scenarijus iš patikimų leidėjų bus eilutė.
- RemoteSigned: Šis nustatymas leidžia paleisti scenarijus, tačiau reikalauja, kad iš interneto atsisiunčiami scenarijai ir konfigūracijos failai būtų susiję su patikimu leidėjo skaitmeniniu parašu. Skriptai, paleisti iš vietinio kompiuterio, nereikia pasirašyti. Prieš paleisdami scenarijų nėra jokių raginimų.
- Neribota: Tai leidžia paleisti nepasirašytus scenarijus, įskaitant visus scenarijus ir konfigūracijos failus, parsisiųstus iš interneto. Tai apims failus iš „Outlook“ ir „Messenger“. Čia rizika yra scenarijų be parašo ar saugumo. Mes atnaujinome, kad niekada nesate mums šio nustatymo.
Jei norite sužinoti, kokia yra dabartinė vykdymo politika, atidarykite „PowerShell“ konsolę ir įveskite:
Get-ExecutionPolicy
Šiam kursui ir kitoms aplinkybėms nuotolinio pasirašymo politika yra geriausia, todėl eikite į priekį ir pakeiskite savo politiką naudodami toliau nurodytus veiksmus.
Pastaba: Tai reikės atlikti iš padidintos „PowerShell“ konsolės.
Set-ExecutionPolicy RemoteSigned
Tai viskas šiam laikui žmonėms, rytoj jus pamatysime dar daugiau „PowerShell“.
Atsakomybės apribojimas: tinkamas „PowerShell“ komandos terminas yra cmdlet, ir nuo šiol mes naudosime šią teisingą terminiją. Tiesiog manė, kad tikslingiau juos vadinti šiam įvedimui.
Jei turite kokių nors klausimų, galite tweet me @taybgibb arba tiesiog palikti komentarą.