If-Koubou

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

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

Šajā Geek skolu izdevumā mēs palīdzēsim jums saprast spēcīgo PowerShell skriptu valodu, kas tiek būvēta tieši Windows, un ir ļoti noderīga, lai to 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 sērijas pamatā ir PowerShell 3, kas tiek piegādāts kopā ar Windows 8 un Server 2012. Ja izmantojat operētājsistēmu Windows 7, pirms turpināt, lūdzu, lejupielādējiet PowerShell 3 atjauninājumu.

Iepazīstiet konsoli un ISE

Ir divi veidi, kā mijiedarboties ar PowerShell no kastes, konsoles un integrētās skriptošanas vides - pazīstams 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 lodziņu, pēc tam ievadot powershell_ise un nospiežot enter.

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 konsole, 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 powerhell, pēc tam nospiediet enter.

REPL parāda, ka tas ir lieliski tūlītējai izpratnei: 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 savu pirmo PowerShell komandu! 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, kurai vēlaties palīdzēt komandas Get-help parametram Name (Vārds), piemēram:

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

Jūs, iespējams, vēlaties uzzināt, kā visu šo tekstu interpretēt, es domāju, kāpēc sintakses sadaļā ir divas informācijas, un kāpēc tur ir tik daudz iekavu 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ūs tikai 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 par parametra nosaukumu un tā veidu nozīmē, ka tas ir neobligāts parametrs, un bez tā komanda darbosies tikai labi.
  • Kvadrātiekavas par parametru nosaukumu nozīmē, ka parametri ir pozīcijas parametrs.
  • Rindā pa labi no parametra leņķveida kvadrātiekavās tiek rādīts datu tips, ko gaidījis parametrs.

Lai gan jums vajadzētu iemācīties lasīt palīdzības faila sintakse, ja jūs nekad neesat pārliecināts par kādu 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 katram būs nedaudz vairāk par to parametrs.

Get-Palīdzība -Name Update-Help -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-Palīdzība -Name * pakalpojums *

Protams, visa šī informācija, iespējams, nebūs lietderīga par nūju, bet ticiet man, veltiet laiku un uzziniet, kā izmantot palīdzības sistēmu. Tas ir ērts visu laiku, pat progresīviem rakstniekiem, kuri to jau gadiem ir darījuši.

Drošība

Tas nebūtu pareizi ieviesti, nenorādot drošību.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.

Visvienkāršākā aizsardzības forma izriet no tā, 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 jums jau ir C diska sakne, varat izmantot sekojošo:

. \ runtime.ps1

Visbeidzot, PowerShell ir kaut kas saukts par Izpildes politiku, 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. Ir 4 ievērojamas izpildes politikas:

  • Ierobežots: Šī ir PowerShell noklusējuma konfigurācija. Š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 skripta un konfigurācijas failiem, kas tiek lejupielādēti no interneta, ir saistīts ciparparaksts no uzticama izdevēja. Skripti, kas darbojas no vietējā datora, nav jāparaksta. Pirms skripta palaišanas nav nevienas uzvednes.
  • Neierobežots: 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 redzētu, kāda ir jūsu pašreizējā izpildes politika, atveriet PowerShell konsoli un ierakstiet:

Get-ExecutionPolicy

Attiecībā uz šo kursu un lielāko daļu citu apstākļu, RemoteSigned politika ir vislabākā, tāpēc dodieties uz priekšu un mainiet savu politiku, izmantojot tālāk norādīto.

Piezīme. Tas jādara, izmantojot PowerShell konsole.

Set-ExecutionPolicy RemoteSigned

Tas viss ir šai laikam ļaudīm, rītdien redzēsim kādu PowerShell jautrību.

Atruna: pienācīgs termiņš PowerShell komandai 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 mani piebildēt @ tybgibb vai vienkārši atstāt komentāru.