Mājas lapa » » Geek skola Uzziniet, kā automatizēt Windows ar PowerShell

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

    Šajā Geek skolas izdevumā mēs palīdzēsim jums saprast spēcīgo PowerShell skriptu valodu, kas veidota tieši sistēmā Windows, un ir ļoti noderīga, lai uzzinātu IT vidē..

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

    Ievads

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

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

    Iepazīstieties ar konsoli un ISE

    Ir divi veidi, kā sazināties ar PowerShell no kastes, konsoli un integrēto skriptu vidi, kas pazīstama arī kā ISE. ISE ir ievērojami uzlabojusies no šausmīgās versijas, kas tika piegādāta 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 ierakstot powershell_ise un nospiežot Enter.

    Kā jūs varat redzēt ISE sporta dalītu skatu, lai jūs varētu ātri skriptu, kamēr joprojām varēsiet redzēt rezultātu ISE apakšējā daļā. ISE apakšējo pusi, kur tiek drukāti jūsu skripta rezultāti, var izmantot arī kā REPL ātrumu - līdzīgi komandrindai. V3 ISE beidzot pievienoja atbalstu intellisense gan skripta rūtī, gan interaktīvajā konsolē.

    Alternatīvi, jūs varat sazināties ar PowerShell, izmantojot PowerShell konsoli, ko es izmantošu lielākajā daļā šīs sērijas. PowerShell konsole darbojas tāpat kā komandu uzvedne - jūs vienkārši ievadiet komandas un izspiež rezultātus. Lai atvērtu Windows PowerShell konsoli, vēlreiz nospiediet Win + R tastatūras kombināciju, lai atvērtu palaišanas lodziņu un ierakstiet powershell, tad nospiediet enter.

    REPL uzvedņi, piemēram, tas ir pārsteidzošs tūlītējai apmierināšanai: ievadāt komandu un saņemat rezultātus. Kamēr konsole nepiedāvā intellisense, tas piedāvā kaut ko, ko sauc par cilnes pabeigšanu, kas darbojas daudz vienādi - vienkārši sāciet rakstīt komandu un nospiediet cilni, lai ciklu varētu iziet cauri iespējamām atbilstībām.

    Palīdzības sistēmas izmantošana

    Iepriekšējās PowerShell versijās, instalējot Windows, tika iekļauti palīdzības faili. Šis risinājums lielākoties bija labs risinājums, taču mums bija nopietna problēma. Kad PowerShell palīdzības komandai bija jābeidz strādāt ar palīdzības failiem, PowerShell izstrādātāji joprojām bija aizņemti, kodējot un veicot izmaiņas. Tas nozīmēja, ka, nosūtot PowerShell, palīdzības faili bija nepareizi, jo tie nesatur jaunākās izmaiņas, kas tika veiktas kodā. Lai atrisinātu šo problēmu, PowerShell 3 bez palīdzības nesatur lodziņu un ietver atjauninātu palīdzības sistēmu. Tas nozīmē, ka pirms kaut ko darīt, jūs vēlaties lejupielādēt jaunākos palīdzības failus. To var izdarīt, atverot PowerShell konsoli un darbojoties:

    Update-Help

    Apsveicam ar pirmo PowerShell komandu! Patiesība ir tāda, ka komandai Update-Help ir daudz vairāk iespēju nekā vienkārši vienkārši palaist, un, lai redzētu tos, mēs vēlamies apskatīt komandas palīdzību. Lai skatītu komandas palīdzību, vienkārši nododiet komandas nosaukumu, kuru vēlaties palīdzēt, uz komandas Get-Help komandas parametru Name, piemēram:

    Get-Help -Name Update-Help

    Jūs, iespējams, domājat, kā interpretēt visu šo tekstu, es domāju, kāpēc sintakses sadaļā ir divas daudz informācijas un kāpēc visā vietā ir tik daudz kronšteinu? Pirmās lietas vispirms ir iemesls, kāpēc sintakses sadaļā ir divi informācijas bloki, jo tie ir dažādi veidi, kā palaist komandu. Tie ir tehniski sauc par parametru kopām, un jūs varat izmantot tikai vienu reizi (jūs nevarat sajaukt parametrus no dažādām kopām). Iepriekšējā ekrānā redzams, ka augšējam parametru kopumam ir SourcePath parametrs, kamēr apakšējā nav. Iemesls ir tāds, ka jūs izmantotu augšējo parametru kopu (to, kas ietver SourcePath), ja jūs atjauninātu palīdzības failus no citas tīkla tīklā esošās mašīnas, kas jau bija tās lejupielādējusi, kamēr jums nav nepieciešams norādīt avota ceļu, ja tikko vēlējos sagrābt jaunākos Microsoft failus.

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

    • Kvadrāta iekavās ap parametru nosaukumu un tā veidu nozīmē, ka tas ir izvēles parametrs un komanda darbosies tikai labi.
    • Kvadrātiekavas ap parametru nosaukumu nozīmē, ka parametri ir pozicionālais parametrs.
    • Lieta pa labi no parametra leņķveida kronšteinos norāda datu tipu, ko parametrs gaida.

    Lai gan jums vajadzētu iemācīties lasīt palīdzības faila sintaksi, ja jūs kādreiz neesat pārliecināts par konkrētu parametru, vienkārši pievienojiet - līdz gala beigām saņemšanas palīdzības komandu un ritiniet uz leju līdz parametru sadaļai, kur tas nedaudz pastāstīs par katru parametru.

    Get-Help -Name Update-Help-Pilns

    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 ir ļoti viegli. Redzat, ka PowerShell pieņem gandrīz visas vietas, tāpēc to izmantošana kopā ar Get-Help komandu ļauj viegli atklāt komandas. Piemēram, es meklēju komandas, kas nodarbojas ar Windows pakalpojumiem:

    Get-Help -Name * pakalpojums *

    Protams, visa šī informācija, iespējams, nebūs ērta, bet uzticieties man, paņemiet laiku un uzziniet, kā izmantot palīdzības sistēmu. Tas ir ērts visu laiku, pat pieredzējušiem scenārijiem, kas to dara jau vairākus gadus.

    Drošība

    Tas nebūtu pareizi ieviests, nepieminot drošību. PowerShell komandas lielākais uztraukums ir tas, ka PowerShell kļūst par jaunāko un lielāko uzbrukuma punktu skriptu bērniem. Viņi ir ieviesuši dažus drošības pasākumus, lai pārliecinātos, ka tas nenotiek, tāpēc apskatīsim tos.

    Galvenais 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 resursdatorā, kas faktiski reģistrēts pie Notepad. Tas nozīmē, ka, divreiz noklikšķinot uz faila, tas tiks atvērts ar notepad, nevis darbojas.

    Otrkārt, jūs nevarat palaist skriptus no apvalka, vienkārši ierakstot skripta nosaukumu, jums ir jānorāda viss skripta ceļš. Tātad, ja vēlaties palaist skriptu savā C diskdzinī, jums būtu jāievada:

    C: reg.ps1

    Vai arī, ja jau atrodaties C diska saknē, varat izmantot:

    .rms.ps1

    Visbeidzot, PowerShell ir kaut kas saucas Izpildes politika, kas aptur jūs no jebkura veca skripta darbības. Faktiski, pēc noklusējuma, jūs nevarat palaist nevienu skriptu un jāmaina izpildes politika, ja vēlaties to palaist. Ir 4 ievērojamas izpildes politikas:

    • Ierobežota: Šī ir PowerShell noklusējuma konfigurācija. Šis iestatījums nozīmē, ka neviens skripts nevar darboties neatkarīgi no tā paraksta. Vienīgais, kas var tikt palaists PowerShell ar šo iestatījumu, ir individuāla komanda.
    • AllSigned: Šis iestatījums ļauj skriptiem darboties PowerShell. Skriptam ir jābūt saistītam ciparparakstam no uzticama izdevēja. Pirms skriptu palaišanas no uzticamiem izdevējiem būs uzvedne.
    • RemoteSigned: Šis iestatījums ļauj skriptus palaist, bet prasa, lai no interneta lejupielādētie skripti un konfigurācijas faili būtu saistīti ar uzticamu izdevēju. Skripti, kas darbojas no vietējā datora, nav jāparaksta. Pirms skripta palaišanas nav uzvedņu.
    • Neierobežots: Tas ļauj neparakstītiem skriptiem darboties, ieskaitot visus skriptus un konfigurācijas failus, kas lejupielādēti no interneta. Tas ietvers failus no Outlook un Messenger. Risks šeit ir skriptu darbībai bez paraksta vai drošības. Mēs atsākām, ka jūs nekad neesat šo iestatījumu.

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

    Get-ExecutionPolicy

    Šajā kursā un citos apstākļos RemoteSigned Policy ir labākais, tāpēc dodieties uz priekšu un mainiet savu politiku, izmantojot tālāk norādīto.

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

    Set-ExecutionPolicy RemoteSigned

    Tas viss ir par šo laiku ļaudīm, rīt jūs redzēsiet vairāk PowerShell fun.


    Atruna: pareizais termins PowerShell komandai ir cmdlet, un turpmāk mēs izmantosim šo pareizo terminoloģiju. Tas tikai uzskatīja, ka ir lietderīgāk tos izsaukt par šo ievadu.


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