15Jul

Geek skola: Uzziniet, kā automatizēt Windows ar PowerShell

click fraud protection

Šajā izdevumā Geek skola, mēs palīdzēsim jums saprast spēcīgu PowerShell skriptu valoda, kas ir iebūvēta tieši Windows, un ir ļoti noderīgi, lai uzzinātu IT vidē.

Lai gan šī sērija nav strukturēta ap eksāmenu, mācīšanās PowerShell ir viena no vissvarīgākajām lietām, ko varat darīt kā tīkla administratoru, tādēļ, ja ir kāda lieta, ko vēlaties iemācīties, lai palīdzētu IT karjerai, tas tā ir. Plus, tas ir daudz jautrības.

Ievads

PowerShell ir visspēcīgākais automatizācijas rīks, ko Microsoft var piedāvāt, un tā gan apvalks, gan skriptu valoda.

Lūdzu, ņemiet vērā, ka šī sērija ir balstīta uz PowerShell 3, kas tiek piegādāts kopā ar Windows 8 un Server 2012. Ja jūs izmantojat operētājsistēmu Windows 7, lūdzu, lejupielādējiet PowerShell 3 atjauninājumu pirms turpināt.

Meet Console un ISE

Ir divi veidi, kā mijiedarboties ar PowerShell no kastes, konsoles un integrētās skriptu vides - pazīstama arī kā ISE.ISE ir ievērojami uzlabojies no slēptās versijas, kas tika piegādātas kopā ar PowerShell 2, un to var atvērt, nospiežot Win + R tastatūras kombināciju, lai atvērtu palaišanas kārbu, pēc tam ievadot powershell_ise un nospiežot enter.

instagram viewer

Kā jūs varat redzēt ISE sporta sadalīts skats, lai jūs varētu ātri skriptu, bet joprojām var redzēt rezultātu ISE apakšējā pusē.ISE apakšējā puse, kurā tiek drukāti jūsu skripta rezultāti, var tikt izmantota kā REPL uzvedne - līdzīgi kā komandu uzvedne. V3 ISE beidzot pievienoja atbalstu intellisense gan skripta rūts, gan interaktīvā konsolē.

Alternatīvi, jūs varat mijiedarboties ar PowerShell, izmantojot PowerShell konsoli, kuru es izmantošu lielākajai daļai šīs sērijas. PowerShell konsole rīkojas tāpat kā komandu uzvedne - jūs vienkārši ievadāt komandas, un tas izstaro rezultātus. Lai atvērtu Windows PowerShell konsole, atkal nospiediet Win + R tastatūras kombināciju, lai atvērtu palaišanas lodziņu, un ierakstiet powershell, pēc tam nospiediet enter.

REPL uzvedņi, piemēram, ir lieliski tūlītējai atdevei: jūs ievadāt komandu un saņemat rezultātus. Kaut arī konsolē nav intellisense, tas piedāvā kaut ko sauc par cilnes pabeigšanu, kas darbojas līdzīgi - vienkārši sāciet rakstīt komandu un nospiediet cilni, lai apskatītu iespējamās spēles.

Palīdzības sistēmas izmantošana

Iepriekšējās versijās PowerShell palīdzības faili tika iekļauti, kad instalējāt sistēmu Windows. Tas lieliski bija labs risinājums, bet mums bija būtiska problēma. Kad PowerShell palīdzības komandai nācās pārtraukt strādāt ar palīdzības failiem, PowerShell izstrādātāji joprojām bija aizņemti kodēti un veicot izmaiņas. Tas nozīmēja, ka, nosūtot PowerShell, palīdzības faili bija nepareizi, jo tajos nebija iekļautas jaunākās koda izmaiņas. Lai atrisinātu šo problēmu, PowerShell 3 nesatur palīgfailus no lodziņa un ietver atjaunināmu palīdzības sistēmu. Tas nozīmē, ka pirms jūs darāt visu, ko vēlaties lejupielādēt jaunākos palīdzības failus. To var izdarīt, atverot PowerShell konsole un palaižot:

Update-Palīdzība

Apsveicam ar pirmās PowerShell komandas darbību! Patiesība ir tāda, ka komandu Update-Help ir daudz vairāk iespēju nekā vienkārši to izpildot, un, lai tos apskatītu, mēs vēlēsimies apskatīt komandas palīdzību. Lai apskatītu palīdzību komandai, jūs vienkārši ievadāt komandas nosaukumu, kuru vēlaties palīdzēt komandas Get-Help parametram Name( Vārds), piemēram:

Get-Help -Name Update-Help

Jums, iespējams, rodas jautājums, kā interpretētJebkurā gadījumā viss teksts, es domāju, kāpēc sintakses sadaļā ir divas informācijas, un kāpēc tur ir tik daudz skavu visā vietā?Vispirms vispirms: iemesls, kādēļ sintakses sadaļā ir divi informācijas bloki, ir tādēļ, ka tie norāda dažādus komandu palaišanas veidus. Tie ir tehniski saukti par parametru komplekti, un jūs to varat izmantot tikai vienlaicīgi( jūs nevarat sajaukt parametrus no dažādām kopām).Iepriekš redzamajā ekrānuzņēmumā redzams, ka augšējā parametru kopai ir parametrs SourcePath, bet apakšējā - nav. Iemesls tam ir tāds, ka jūs izmantotu augšējo parametru kopu( tādu, kas ietver SourcePath), ja tiktu atjaunināti palīdzības faili no citas ierīces jūsu tīklā, kas tos jau ir lejupielādējuši, bet jums nav nepieciešams norādīt avota ceļu, ja jūstikai gribēja greifers jaunākos failus no Microsoft.

Lai atbildētu uz otro jautājumu, ir noteikts sintakse, kas palīdz failiem sekot, un šeit tas ir:

  • Kvadrātiekavas ap parametra nosaukumu un tā veidu nozīmē, ka tas ir neobligāts parametrs, un bez tā komanda labi darbosies.
  • Kvadrātiekavas par parametru nosaukumu nozīmē, ka parametri ir pozīcijas parametrs.
  • No labās puses uz parametru, kas atrodas leņķveida kvadrātiekavās, tiek rādīts datu tips, ko parametrs gaida.

Lai gan jums vajadzētu iemācīties izlasīt palīdzības faila sintakse, ja jūs nekad neesat pārliecināts par konkrētu parametru, vienkārši pievienojiet -Pilnīgi līdz komandu saņemšanas palīdzības beigām un ritiniet uz leju līdz parametru sadaļai, kur tas pateiks nedaudz vairāk parkatrs parametrs.

Get-Help -Name Update-Palīdzība -Full

Pēdējā lieta, kas jums jāzina par palīdzības sistēmu, ir tā, kā jūs varat to izmantot, lai atklātu komandas, kas patiešām ir ļoti vienkārša. Redzi, PowerShell aizstāj aizstājējzīmes gandrīz jebkurā vietā, tādēļ, izmantojot tos kopā ar komandu Get-Help, jūs varat viegli atpazīt komandas. Piemēram, es meklēju komandas, kas nodarbojas ar Windows pakalpojumiem:

Get-Help-Name-name * pakalpojums *

Protams, visa šī informācija, iespējams, nav noderīga, taču ticiet man, veltiet laiku un uzziniet, kā lietotpalīdzības sistēma. Tas ir ērts visu laiku, pat progresīviem rakstniekiem, kuri to jau gadiem ir darījuši.

Drošība

Tas nebūtu pareizi, bez drošības pieminēšanas. Lielākā PowerShell komandas bažas ir tas, ka PowerShell kļūst par jaunāko un lielāko skriptu kiddies uzbrukuma vietu. Viņi ir ieviesuši dažus drošības pasākumus, lai pārliecinātos, ka tas nenotiek, tāpēc apskatiet tos.

Visbūtiskākais aizsardzības veids ir tas, ka PS1 faila paplašinājums( paplašinājums, ko izmanto, lai apzīmētu PowerShell skriptu) nav reģistrēts PowerShell uzņēmējā, kas faktiski ir reģistrēts Notepad. Tas nozīmē, ka, ja jūs dubultklikšķi uz faila, tas tiks atvērts ar notepad, nevis darbojas.

Otrkārt, jūs nevarat palaist skriptus no čaulas, tikai ierakstot skripta nosaukumu, jums ir jānorāda viss skripta ceļš.Tātad, ja jūs vēlaties palaist skriptu jūsu C diskā, jums vajadzētu rakstīt:

C: \ runme.ps1

Vai arī, ja jūs jau esat C diska sakne, varat izmantot šādu:

. \ Runme.ps1

Visbeidzot, PowerShell ir kaut kas saukts par Execution Policies, kas apturēs jūs no jebkura vecā skripta izpildes. Faktiski pēc noklusējuma jūs nevarat palaist nekādus skriptus, un jums ir jāmaina izpildes politika, ja vēlaties, lai jūs varētu tos palaist. Pastāv 4 ievērojamas izpildes politikas:

  • Restricted : šī ir noklusējuma konfigurācija PowerShell.Šis iestatījums nozīmē to, ka neviens skripts nevar palaist, neatkarīgi no tā paraksta. Vienīgais, ko PowerShell var palaist ar šo iestatījumu, ir atsevišķa komanda.
  • AllSigned: Šis iestatījums ļauj skriptiem palaist PowerShell. Skriptam ir jābūt saistītam ar digitālo parakstu no uzticama izdevēja. Pirms skriptu palaišanas no uzticamiem izdevējiem, tiks parādīts uzaicinājums.
  • RemoteSigned : šis iestatījums ļauj palaist skriptus, bet tas prasa, lai skriptam un konfigurācijas failiem, kas tiek lejupielādēti no interneta, ir saistīts digitālais paraksts no uzticama izdevēja. Skripti, kas darbojas no vietējā datora, nav jāparaksta. Pirms skripta palaišanas nav nevienas uzvednes.
  • Neierobežota : tas ļauj neparakstīt skriptus, ieskaitot visus skriptus un konfigurācijas failus, kas lejupielādēti no interneta. Tas ietvers failus no Outlook un Messenger. Risks šeit ir skripti bez paraksta vai drošības. Mēs atkārtoti uzsākām, ka jūs nekad neizmantojat šo iestatījumu.

Lai noskaidrotu, kāda ir jūsu pašreizējā izpildes politika, atveriet PowerShell konsole un ierakstiet:

Get-ExecutionPolicy

Šim kursam un lielākajai daļai citu apstākļu labākā ir RemoteSigned politika, tādēļ turpiniet un mainiet savu politiku, izmantojot tālāk norādīto.

Piezīme. Tas būs jādara no paaugstinātas PowerShell konsole.

Set-ExecutionPolicy RemoteSigned

Tas viss šai laika cilvēkiem, redzēt jūs rīt daži PowerShell jautri.

atruna: atbilstošs termins komandai PowerShell ir cmdlet, un no šī brīža mēs izmantosim šo pareizo terminoloģiju. Tas tikai jutās piemērotāk, lai izsauktu viņiem šīs ievades komandas.

Ja jums ir kādi jautājumi, varat tweet me @taybgibb, vai vienkārši atstāt komentāru.