Geek Kool Õpi automatiseerima Windowsi PowerShelli abil
Selles Geek Schooli väljaandes aitame teil mõista võimsat PowerShelli skriptikeelt, mis on ehitatud otse Windowsi ja on äärmiselt kasulik IT-keskkonnas teada saada.
Kuigi see seeria ei ole eksami ümber struktureeritud, on PowerShelli õppimine üks tähtsamaid asju, mida saate teha võrguadministraatorina, nii et kui on üks asi, mida soovite oma IT-karjääri aitamiseks õppida, on see nii. Lisaks on see lõbus.
Sissejuhatus
PowerShell on kõige võimsam automatiseerimisvahend, mida Microsoft peab pakkuma, ning selle nii kodeering kui ka skriptikeel.
Pange tähele, et see seeria põhineb PowerShell 3-l, mis saadetakse koos Windows 8 ja Server 2012. Kui teil on Windows 7, laadige enne jätkamist alla PowerShelli 3 värskendus.
Tutvuge konsooliga ja ISE-ga
PowerShelliga saab kasti, konsooli ja integreeritud skriptimiskeskkonda - ka tuntud kui ISE - kaks suhtlemisviisi. ISE on PowerShell 2-ga kaasas olnud varjatud versioonist märkimisväärselt paranenud ja seda saab avada Win + R klaviatuurikombinatsiooni abil, et käivitada käivituskast, seejärel kirjutada powerhell_ise ja vajutada sisestusklahvi.
Nagu näete, on ISE spordis jagatud vaade, et saaksite kiiresti skriptida, olles siiski võimeline nägema tulemust ISE alumises osas. ISE alumist poolt, kus teie skripti tulemused on trükitud, saab kasutada ka REPL-i käskuna - sarnaselt käsuviibuga. V3 ISE lisas lõpuks intellisense toetuseks nii skripti paneelis kui ka interaktiivses konsoolis.
Teise võimalusena saate PowerShelli abil suhelda PowerShelli konsooliga, mida ma enamiku selle seeria puhul kasutan. PowerShelli konsool käitub sarnaselt käsureale - sisestate lihtsalt käsud ja see väljendab tulemused. Windows PowerShelli konsooli avamiseks vajuta uuesti Win + R klaviatuurikombinatsioon, et avada käivituskast ja kirjutada powerhell, seejärel vajutage enter.
REPL-i sellised küsimused on koheseks rahuldamiseks fantastilised: sisestate käsu ja saad tulemusi. Kuigi konsool ei paku intellisense'd, pakub see midagi, mida nimetatakse vahekaardi lõpetamiseks, mis toimib palju samamoodi - alustage lihtsalt käsu kirjutamist ja vajutage vahekaarti võimalike vastete läbimiseks..
Abisüsteemi kasutamine
Varasemates PowerShelli versioonides lisati Windowsi installimisel abifailid. See oli enamasti hea lahendus, kuid jättis meile olulise probleemi. Kui PowerShelli abimeeskond pidi lõpetama abifailide töötamise, olid PowerShelli arendajad endiselt hõivatud kodeerimisel ja muudatuste tegemisel. See tähendas, et kui PowerShell saadeti, olid abifailid valed, kuna need ei sisaldanud koodis tehtud uuemaid muudatusi. Selle probleemi lahendamiseks ei ole PowerShell 3 mingit abifaili välja lülitatud ning sisaldab uuendatud abisüsteemi. See tähendab, et enne, kui teete midagi, soovite alla laadida uusimad abifailid. Seda saate teha, avades PowerShelli konsooli ja käivitades:
Update-Help
Õnnitleme esimest PowerShelli käsku! Tõde on see, et käsku Update-Help on palju rohkem võimalusi kui lihtsalt selle käivitamine ja nende vaatamiseks tahame vaadata käsu abi. Käsu abi vaatamiseks edastage lihtsalt selle käsu nimi, mida soovite aidata, käsu Get-Help parameetrile Name (Nimi), näiteks:
Get-Help -Nimi värskendus-Abi
Olete ilmselt mõelnud, kuidas tõlgendada kõike seda teksti igal juhul, ma mõtlen, miks on süntaksilõigu all kaks palju teavet ja miks on kogu koht nii palju sulgusid? Esimesed asjad: põhjus, miks süntaksi sektsiooni all on kaks teabeplokki, on see, et need kujutavad endast erinevaid viise käsu käivitamiseks. Neid nimetatakse tehniliselt parameetrikomplektideks ja te saate kasutada ainult ühte korraga (te ei saa erinevate komplektide parameetreid segada). Ülaltoodud pildil näete, et ülemisel parameetrikomplektil on SourcePath parameeter, kui põhi ei ole. Põhjuseks on see, et te kasutaksite parimat parameetrit (see, mis sisaldab SourcePathi), kui sa värskendasid oma abifaile mõnest teisest võrgus olevast seadmest, mis olid juba alla laadinud, samas kui te ei pea määrama allika teed, kui te lihtsalt tahtsin haarata Microsofti uusimad failid.
Teise küsimuse vastamiseks on teatud süntaks, mis aitab faile järgida ja siin on:
- Parameetri nime ja selle tüübi ümber olevate nelinurkade sulgudes on tegemist valikulise parameetriga ja käsk töötab ilma selleta.
- Parameetrite nime ümber olevate nelinurkade sulgudes on parameetrid positsiooniparameetrid.
- Parameetrist paremale jääv asi nurkade sulgudes annab teile teada, millist tüüpi andmetele parameeter ootab.
Kui peaksite õppima lugema abifaili süntaksit, kui te olete kunagi kindel konkreetse parameetri kohta, lisage lihtsalt -parameetri lõppu käsule ja sirvige parameetrite sektsiooni, kus see teile igaühest veidi rohkem räägib parameeter.
Get-Help -Nimi värskendus-Abi - Täielik
Viimane asi, mida peate abisüsteemi kohta teadma, on see, kuidas seda kasutada käskude avastamiseks, mis on tegelikult väga lihtne. Näete, et PowerShell aktsepteerib metamärke peaaegu kõikjal, nii et nende kasutamine koos käsu Get-Help võimaldab käske kergesti avastada. Näiteks otsin käske, mis tegelevad Windowsi teenustega:
Teenuse Get-Help -Nimi * teenus *
Muidugi ei pruugi kogu see teave olla nahkhiirest mugav, kuid usalda mind, võtke aega ja õppige, kuidas abisüsteemi kasutada. See on kasulik kogu aeg, isegi arenenud skriptijad, kes on seda juba aastaid teinud.
Turvalisus
See ei oleks nõuetekohane sissejuhatus ilma turvalisust mainimata. PowerShelli meeskonna suurim mure on see, et PowerShellist saab uusim ja suurim rünnakupunkt skriptide jaoks. Nad on kasutusele võtnud mõned turvameetmed, et veenduda, et see ei juhtu, nii vaatame neid.
Kõige lihtsam kaitse vorm tuleneb asjaolust, et PS1-faililaiend (PowerShelli skripti tähistamiseks kasutatav laiendus) ei ole registreeritud PowerShelli hostis, mis on tegelikult registreeritud Notepadis. See tähendab, et kui te topeltklõpsate failil, mis avaneb notepadiga, mitte töötab.
Teiseks ei saa skripte kesta abil käivitada, kirjutades lihtsalt skripti nime, peate määrama skripti täieliku tee. Seega, kui soovid käivitada skripti C-draivilt, peaksite kirjutama:
C: runsps1
Või kui olete juba C-draivi juurest, saate kasutada järgmist:
.ru.ps1
Lõpuks on PowerShellil midagi, mida nimetatakse täitmispõhimõteteks, mis peatavad teil mõne vana skripti käitamise. Tegelikult ei saa te vaikimisi käivitada ühtegi skripti ja peate muutma oma täitmispoliitikat, kui soovite neid käivitada. Seal on 4 märkimisväärset täitmispoliitikat:
- Piiratud: See on PowerShelli vaikekonfiguratsioon. See säte tähendab, et ükski skript ei tööta, olenemata selle allkirjast. Ainus asi, mida selle seadega PowerShellis saab käivitada, on individuaalne käsk.
- AllSigned: See säte lubab skriptidel töötada PowerShellis. Skriptil peab olema usaldusväärse kirjastajaga seotud digitaalne allkiri. Enne skriptide käivitamist usaldusväärsetelt kirjastajatelt ilmub küsimus.
- RemoteSigned: See seade lubab skripte käivitada, kuid nõuab, et Internetist allalaaditud skriptid ja konfiguratsioonifailid oleksid seotud usaldusväärse kirjastajaga. Kohalikust arvutist käivitatavad skriptid ei pea olema allkirjastatud. Enne skripti käivitamist ei kuvata ühtegi teadet.
- Piiramatu: See võimaldab allkirjastamata skripte käivitada, sealhulgas kõik Internetist alla laaditud skriptid ja konfiguratsioonifailid. See hõlmab faile Outlookist ja Messengerist. Siin on oht, et skripte kasutatakse ilma allkirja või turvalisuseta. Uuendasime seda, et sa ei määra seda seadet.
Et näha, milline on teie praeguse täitmise poliitika, avage PowerShelli konsool ja tüüp:
Get-ExecutionPolicy
Sellel kursusel ja enamikel muudel asjaoludel on RemoteSigned Policy parim, nii et jätkake ja muutke oma poliitikat järgmiste meetoditega.
Märkus: See tuleb teha kõrgendatud PowerShell konsoolist.
Set-ExecutionPolicy RemoteSigned
See on kõik selleks ajaks inimesed, näeme sind homme veel mõne PowerShelli jaoks.
Disclaimer: PowerShelli käsu õige termin on cmdlet ja nüüd kasutame seda õiget terminoloogiat. Lihtsalt tundus sobivam kutsuda neid selle sissejuhatuse käskudeks.
Kui teil on küsimusi, võite mulle @taybgibb või lihtsalt kommenteerida.