15Jul

Geek-koulu: Opi käyttämään PowerShell-ohjelmiston automatisointia

Tässä Geek School -versiossa autamme sinua ymmärtämään tehokkaan PowerShell-komentosarjan kielen, joka on rakennettu suoraan Windowsiin ja on erittäin hyödyllinen tuntemaan IT-ympäristössä.

Vaikka tämä sarja ei ole rakenteeltaan tentti, oppiminen PowerShell on yksi tärkeimmistä asioista, joita voit tehdä verkonvalvojana, joten jos sinulla on yksi asia, jonka haluat oppia IT-uraasi, tämä on se. Lisäksi se on hauskaa.

Johdanto

PowerShell on tehokkain automaatiotyökalu, jonka Microsoft on tarjonnut ja sen sekä kuori että komentosarja.

Huomaa, että tämä sarja perustuu PowerShell 3: een, joka toimitetaan Windows 8: n ja Server 2012: n kanssa. Jos käytät Windows 7: tä, lataa PowerShell 3 -päivitys ennen kuin jatkat.

Täytä konsoli ja ISE

PowerShellin kanssa voi olla vuorovaikutuksessa kahdella tavalla: konsoli ja integroitu komentosympäristö - tunnetaan myös nimellä ISE.ISE on parantunut huomattavasti PowerShell 2: n mukana toimitetusta hirvittävästä versiosta, ja se voidaan avata painamalla Win + R -näppäimistöyhdistelmää nostamalla run-laatikkoa ja kirjoittamalla powershell_ise ja painamalla Enter.

Kuten ISE näyttää, jakaa näkymä, jotta voit nopeasti kirjoittaa, vaikka voit nähdä tuloksen ISE: n alaosassa. ISE: n alapuoli, jossa kirjoitetun tekstin tulokset tulostetaan, voidaan käyttää myös REPL-kehotteena - aivan kuten komentokehote. V3 ISE lisäsi lopulta intellisense-tuen sekä komentosarja-paneelissa että vuorovaikutteisessa konsolissa.

Vaihtoehtoisesti voit olla vuorovaikutuksessa PowerShellin kanssa käyttämällä PowerShell Consolea, jota käytän useimmille sarjoille. PowerShell Console käyttäytyy paljon kuin komentokehote - voit yksinkertaisesti syöttää komentoja ja tulostaa tulokset. Avaa Windows PowerShell Console painamalla uudestaan ​​Win + R-näppäimistöyhdistelmää avataksesi run-ruutuun ja kirjoittamalla powerhell ja painamalla Enter.

REPL-kehotteet, kuten tämä, ovat mahtavia instant-tyydytystä varten: annat komennon ja saat tuloksia. Vaikka konsoli ei tarjoa intellisenseä, se tarjoaa jotain nimeltään välilehtien täydentäminen, joka toimii paljon samana - yksinkertaisesti alkaa kirjoittaa komento ja paina välilehteä kiertää mahdollisia otteluita.

Ohjejärjestelmän käyttö

PowerShellin aikaisemmissa versioissa ohjesivut sisältyivät Windowsin asentamiseen. Tämä oli hyvä ratkaisu, mutta jätti meille merkittävän ongelman. Kun PowerShell-ohjekeskuksen oli lopetettava ohjustiedostojen käsittely, PowerShell-kehittäjät olivat edelleen kiireisiä koodauksia ja muutoksia. Tämä tarkoitti, että kun PowerShell lähetettiin, ohjetiedostot olivat virheellisiä, koska ne eivät sisältäneet uudempia muutoksia, jotka oli tehty koodiin. Tämän ongelman ratkaisemiseksi PowerShell 3: lla ei ole ohjetiedostoja ruutuun ja sisältää päivitettävän ohjejärjestelmän. Tämä tarkoittaa, ennen kuin teet mitään, haluat ladata uusimmat ohjetiedostot. Voit tehdä sen avaamalla PowerShell Console ja suorittamalla:

Update-Ohje

Onnittelut ensimmäisen PowerShell-komennon suorittamisesta! Totuus on, että Update-Help -komennolla on paljon enemmän vaihtoehtoja kuin pelkästään suorittamaan sitä ja nähdäksemme haluamme tarkastella komennon apuohjelmaa. Jos haluat tarkastella komennon apuohjelmaa, siirryt ohjattavan komennon nimen kanssa Get-Help -komennon Nimi-parametriin, esimerkiksi:

Get-Help -nimi-päivitys-ohje

Oletko luultavasti miettimässä, miten tulkitsettekaikki tämä teksti joka tapauksessa, tarkoitan, miksi on kaksi paljon tietoa syntaksin osiossa ja miksi siellä on niin monta suluetta kaikkialla paikoissa? Ensimmäinen asia: syy siihen, että syntaksin osiossa on kaksi informaatiopalvea, koska ne edustavat eri tavoin komennon suorittamista. Nämä ovat teknisesti kutsuttuja parametrisarjoja ja voit käyttää vain yhtä kerrallaan( et voi sekoittaa parametrejä eri sarjoista).Edellä olevassa kuvakaappauksessa näet, että yläparametrisarjassa on SourcePath-parametri, kun taas pohja ei toimi. Syynä on, että käytät yläparametrisarjaa( joka sisältää SourcePathin), jos päivität ohjetiedostot toiselta verkossa olevalta laitteelta, joka oli jo ladannut ne, mutta sinun ei tarvitse määrittää lähdepolkua, jos olethalusi vain napata Microsoftin uusimmat tiedostot.

Toiseen kysymykseen vastaamiseksi on olemassa tietty syntaksi, joka auttaa tiedostoja, ja tässä se on:

  • Parametrin nimen ja sen tyypin ympärillä olevat kulmakappaleet tarkoittavat, että se on valinnainen parametri ja komento toimii hyvin ilman sitä.
  • Parametrien nimien ympärillä olevat kulmakappaleet tarkoittavat, että parametrit ovat paikannusparametri.
  • Kohdistetuissa kiinnikkeissä olevan parametrin oikealla puolella kerrotaan, millaista tietotyyppiä parametri odottaa.

Vaikka sinun pitäisi oppia lukemaan ohjetiedoston syntaksia, jos olet epävarma tietystä parametrista, vain liitä -Täältä saat help-komennon loppuun ja selaa parametrien osiin, missä se kertoo sinulle hieman enemmänkunkin parametrin.

Get-Help -Name Update-Help -FULL

Viimeinen asia, mitä sinun tarvitsee tietää ohjusjärjestelmästä on, miten voit käyttää sitä komentoja etsimään, mikä on todella helppoa. Näet, että PowerShell hyväksyy villikortit lähes missään, joten Get-Help -komennon avulla voit helposti löytää komentoja. Esimerkiksi etsin Windows-palveluita käsitteleviä komentoja:

Get-Help -Name * -palvelu *

Toki kaikki nämä tiedot saattavat olla käteviä, mutta luota minuun, ottakaa aikaa ja opi käyttämäänauttaa järjestelmää.Se on kätevä koko ajan, jopa kehittyneille kirjoittajille, jotka ovat tehneet tätä vuosien ajan.

Security

Tämä ei ole asianmukainen käyttöönotto ilman, että mainitaan turvallisuutta. PowerShell-tiimin suurin huolenaihe on se, että PowerShellista tulee uusin ja suurin hyökkäyskohta skriptikiuskeille. He ovat tehneet muutamia turvatoimia varmistaakseen, että näin ei tapahdu, joten katsokaamme niitä.

Suojauksen perusperäinen muoto on se, että PS1-tiedostopääte( PowerShell-komentosarjan käyttämää laajennusta) ei ole rekisteröity PowerShell-isännällä, joka on tosiasiallisesti rekisteröity Notepadilla. Tämä tarkoittaa sitä, että kaksoisnapsauta tiedostoa avautuu notepadilla sen sijaan, että se olisi käynnissä.

Toiseksi, komentoriviltä ei voi suorittaa komentosarjoja kirjoittamalla vain komentosarjan nimeä, sinun on määritettävä komentosarjan koko polku. Joten jos haluat käyttää C-aseman komentosarjaa, sinun on kirjoitettava:

C: \ runme.ps1

Tai jos olet jo C-aseman juuressa, voit käyttää seuraavaa:

. \ Runme.ps1

Lopuksi PowerShellillä on jotain nimeltään Execution Policies, joka estää sinua käyttämästä vain vanhaa skriptiä.Itse asiassa oletuksena et pysty käsittelemään komentosarjoja, ja sinun on muutettava toteuttamispolitiikkaasi, jos haluat käyttää niitä.On olemassa neljä huomattavaa toteutusperiaatetta:

  • Rajoitettu : Tämä on PowerShellin oletusasetus. Tämä asetus tarkoittaa, että mitään komentosarjaa ei voi käyttää riippumatta sen allekirjoituksesta. Ainoa asia, jota voidaan käyttää PowerShellissä tämän asetuksen kanssa, on yksittäinen komento.
  • AllSigned: Tämä asetus mahdollistaa skriptien suorittamisen PowerShellissä.Skriptillä täytyy olla siihen liittyvä digitaalinen allekirjoitus luotetusta julkaisijasta. Näyttöön tulee kehote, ennen kuin luot luotettujen julkaisijoiden komentosarjat.
  • RemoteSigned : Tämä asetus mahdollistaa komentosarjoja suoritettavaksi, mutta edellyttää, että Internetistä ladattavien skriptien ja määritystiedostojen on liitetty digitaalinen allekirjoitus luotetusta julkaisijasta. Paikallisista tietokoneista suoritettavia komentosarjoja ei tarvitse allekirjoittaa. Pyyntöjä ei ole ennen skriptin suorittamista.
  • Rajoittamaton : Tämä mahdollistaa allekirjoittamattomien skriptien suorittamisen, mukaan lukien kaikki Internetistä ladatut skriptit ja määritystiedostot. Tämä sisältää tiedostoja Outlookista ja Messengeristä.Riski tässä on käynnissä skriptit ilman allekirjoitusta tai turvallisuutta. Joudumme uudelleen, ettet koskaan hyväksy tätä asetusta.

Nähdäksesi, mikä nykyinen toteutusperiaatteesi on asetettu, avaa PowerShell-konsoli ja kirjoita:

Get-ExecutionPolicy

Tämä kurssi ja useimmat muut olosuhteet RemoteSigned-käytäntö on paras, joten toimi eteenpäin ja muuta käytäntöjäsi seuraavalla tavalla.

Huomautus: Tämä on tehtävä korotetusta PowerShell Consolesta.

Set-ExecutionPolicy RemoteSigned

Tämä on kaikille tälle aikaa ihmisille, nähdään huomenna vielä lisää PowerShell-hauskaa.

Vastuuvapauslauseke: PowerShell-komennon oikea termi on cmdlet, ja tästä lähtien käytämme tätä oikeaa terminologiaa. Se vain tuntui sopivammalta kutsua heitä käskyjä tästä johdannosta.

Jos sinulla on kysyttävää, voit tweet me @taybgibb tai jättää vain kommentin.