15Jul

Geeki kool: õppida, kuidas automatiseerida Windows PowerShelliga

Selles Geeki kooli väljaandes aitame teil mõista võimsat PowerShelli skriptikeedi, mis on ehitatud otse Windowsi ja on väga kasulik IT-keskkonnas.

Kuigi see seeria ei ole eksami ümber struktureeritud, on PowerShelli õppimine üks olulisemaid asju, mida saate võrguadministraatorina teha, nii et kui teie IT-karjääris on üks asi, mida soovite õppida, on see just nii. Lisaks on see lõbus.

Sissejuhatus

PowerShell on kõige võimsam automatiseerimisvahend, mida Microsoft peab pakkuma, ning nii shell kui ka skriptikeelt.

Pidage meeles, et see seeria põhineb PowerShell 3-l, mis toimetatakse koos operatsioonisüsteemidega Windows 8 ja Server 2012. Kui kasutate Windows 7, laadige enne jätkamist alla PowerShell 3 värskendus.

Vasta konsoolile ja ISE

-le. PowerShelliga saab kontaktist ja integreeritud skriptimiskeskkonnast koosneda kahel viisil - tuntud ka kui ISE-d. ISE on märkimisväärselt paranenud PowerShell 2-ga kaasas olevast kohutavast versioonist ning seda saab avada, vajutades Win + R klaviatuuri kombinatsiooni, et avada töökäik, seejärel tippides powershell_ise ja vajutades enter.

Nagu näete ISE-i spordiala, on see jagatud vaade, nii et saate kiiresti skripti, samal ajal kui ISE-i alumisel poolel on tulemusi võimalik näha. ISE-i alumises osas, kus teie skripti tulemusi on trükitud, saab kasutada ka REPL-i käsku - täpselt nagu käsureale. V3 ISE lisas lõpuks intellisense'i toetuse nii skript kui ka interaktiivne konsool.

Teise võimalusena võite PowerShelliga suhelda PowerShelli konsooli kasutades, mida ma kasutan enamiku selle seeria jaoks. PowerShelli konsool käitub sarnaselt käsureale - lihtsalt sisestate käsud ja see eraldab tulemusi. Windows PowerShelli konsooli avamiseks vajutage veelkord Win + R klaviatuuri kombinatsiooni, et avada käivituskast ja tippige powerhell, seejärel vajutage sisestusklahvi enter.

REPL näitab, et see on suurepärane kiireks rahulikuks: sisestate käsu ja saad tulemusi. Kui konsool ei paku inteeni, pakub see midagi saki valmimist, mis toimib peaaegu samamoodi - lihtsalt alustage käsu kirjutamist ja vajutage tabelit võimalike vastete tsükliseks.

Abisüsteemi

kasutamine Varasemates PowerShelli versioonides olid Windowsi installimisel kaasatud abifailid. Enamasti oli see hea lahendus, kuid jättis meile märkimisväärse probleemi. Kui PowerShelli abipersonal peaks abifaile töötama lõpetama, olid PowerShelli arendajad ikkagi hõivatud kodeerimise ja muudatuste tegemisega. See tähendas seda, et PowerShelli saadetud ajal olid abifailid valed, kuna need ei sisaldanud uuemaid koodi muudatusi. Selle probleemi lahendamiseks ei paku PowerShell 3 kasti abifailidest ja sisaldab ajakohastatavat abisüsteemi. See tähendab, et enne, kui teete midagi, soovite alla laadida uusimad abifailid. Seda saate teha, avada PowerShelli konsooli ja käivitada:

värskenduse abi

Õnnitleme oma esimese PowerShelli käsu käivitamisel! Tõsi on see, et uuendus-abi käsul on palju rohkem võimalusi kui lihtsalt seda käitada ja nende nägemiseks tahame käsu abi vaadata. Käsu abi vaatamiseks edastate lihtsalt käsu nimi, mida soovite aidata käsku Get-Help parameetri Nimi, näiteks:

Get-Help -nimi-värskendus-abi

Oled ilmselt mõtlesid, kuidas tõlgendadaMuidugi, kogu tekst, ma mõtlen, miks on süntaksiosakonna all kaks informatsiooni ja miks on kõik kohad nii palju sulgudes? Esimene asi esimene: põhjuseks on kaks plokki teavet süntaksi sektsioonis, sest need esindavad erinevaid käskluse käivitamise viise. Need on tehniliselt nimetatavad parameetrite komplektid, mida saab kasutada ainult korraga( te ei saa segada erinevate komplektide parameetreid).Ülaltoodud ekraanipildil näete, et parameetri parameetril on SourcePath parameeter, samas kui alumine parameeter ei ole. Selle põhjuseks on see, et kasutaksite top parameetrite komplekti( seda, mis sisaldab SourcePathi), kui uuendate oma abifaile oma võrgu teisest masinast, mis oli neid juba alla laadinud, kuid kui te ei sooviks määrata lähtetekstitahtsin lihtsalt Microsofti viimaseid faile haarata.

Teisele küsimusele vastamiseks on olemas teatud süntaks, mis aitab faile järgida ja siin on see:

  • nurksulgud ümber parameetri nime ja selle tüübi tähendavad, et see on vabatahtlik parameeter ja käsk toimib lihtsalt ilma selleta.
  • Parameetrite ümber asuvad nurksulgud tähendavad, et parameetrid on positsiooni parameeter.
  • Nurga all olevate parameetrite parameeter ütleb teile, millist tüüpi andmed parameeter ootab.

Kuigi sa peaksid õppima lugema abifaili süntaksi, kui te pole kunagi kindel konkreetse parameetri kohta, lisage see lihtsalt - lõpeta oma abi saamise käsk ja kerige parameetrite sektsiooni alla, kus see annab teile veidi rohkem teavetiga parameeter.

Get-Help -Name Update-Abi-täielik

Viimane asi, mida vaja teada abisüsteemilt, on see, kuidas saate seda käskude avastamiseks kasutada, mis on tegelikult väga lihtne. Näete, PowerShell aktsepteerib metamärke peaaegu kõikjal, nii et nende kasutamine koos käsku Get-Help võimaldab teil käske lihtsalt avastada. Näiteks otsin Windowsi teenustega tegelevaid käske:

Get-Help -Name * teenus *

Muidugi ei pruugi kogu see teave olla nutikate jaoks kasulik, kuid usalda mind, võta aega ja õppida kasutamaabisüsteem. See on kasulik kogu aeg, isegi arenenud kirjanikele, kes on seda juba aastaid teinud.

Turvalisus

See ei oleks õige sissetoomine ilma turvalisust mainimata. PowerShelli meeskonna suurimaks mureks on see, et PowerShell saab uusima ja suurima rünnaku punkti skriptikeskkondadele. Nad on kehtestanud mõned turvameetmed, et veenduda, et seda ei juhtu, nii et vaatame neid.

Põhiline kaitse on tingitud asjaolust, et PS1-faililaiend( PowerShell-skripti tähistav laiend) ei ole registreeritud PowerShelli hostis, mis on tegelikult Notepadis registreeritud. See tähendab, et kui te topeltklõpsate failil, avaneb selle asemel, et see töötab.

Teiseks ei saa skripte shellist käivitada lihtsalt skripti nime sisestamisega, peate määrama kogu skripti. Nii et kui soovid käivitada skripti oma C-draivil, peaksite tippima:

C: \ runme.ps1

Või kui sa oled juba C draivi juurest, võite kasutada järgmist:

. \ Runme.ps1

Lõpuks on PowerShellil midagi käsku Execution Policies, mis peatab teid ainult ühegi vana skripti käivitamise eest. Tegelikult ei saa te vaikimisi käivitada ühtegi skripti ja peate oma täitmispoliitikat muutma, kui soovite, et teil oleks neid käivitada. Seal on 4 silmapaistvat täitmispoliitikat:

  • piiratud : see on PowerShellis vaikimisi seadistus. See seade tähendab, et ükski skript ei pruugi käivituda, sõltumata selle allkirjast. Ainuke asi, mida PowerShellis selle seadistusega saab käivitada, on individuaalne käsk.
  • AllSigned: See seade lubab skriptidel töötada PowerShellis. Skriptil peab olema usaldusväärsele väljaandjale seotud digitaalallkiri. Enne skriptide käivitamist usaldusväärsetest kirjastajatest kuvatakse viip.
  • RemoteSigned : see seade võimaldab skripte käitada, kuid nõuab, et internetis allalaaditud skripti- ja konfiguratsioonifailid on seotud usaldusväärsele väljaandjale seotud digitaalallkirjaga. Kohalikust arvutist käivitatavad skriptid ei pea olema allkirjastatud. Enne skripti käivitamist pole viipasid.
  • Piiranguteta : see võimaldab allkirjastamata skripte käitada, sealhulgas kõiki Interneti-kaudu allalaaditud skripte ja konfiguratsioonifaile. See hõlmab Outlooki ja Messengeri faile. Risk on siin skriptideta ilma allkirja ja turvalisuseta. Me tuletasime uuesti meelde, et sa ei ole kunagi meile seda seadistust.

Selleks, et näha, milline on teie praeguse täitmispoliitikaga seatud, avage PowerShelli konsool ja tippige:

Get-ExecutionPolicy

Sellel kursusel ja enamikul muudel asjaoludel on RemoteSigned Policy parim, nii et jätkake ja muutke oma eeskirju, kasutades järgmist.

Märkus: seda tuleb teha kõrgendatud PowerShelli konsoolis.

Set-ExecutionPolicy RemoteSigned

See on kõik sellel ajal inimestele, näeme teid homme mõnede PowerShelli lõbu eest.

vastutusest loobumine: PowerShelli käskluse nõuetekohane termin on cmdlet, ja nüüd kasutame seda õiget terminoloogiat. See tundus sobivam, kui kutsusite neid käske selle sissejuhatuseks.

Kui teil on küsimusi, võite mulle kirja panna @ tybgibb või lihtsalt jätke kommentaar.