If-Koubou

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

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

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

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

esittely

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

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

Tapaa konsoli ja ISE

PowerShellin kanssa voi olla vuorovaikutuksessa kahdella tavalla: laatikko, 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 näet ISE: n, voit jakaa näkymän, 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 PowerShell-konsolilla, 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, siirrät ohjattavan komennon nimen Get-Help -komennon Nimi-parametriin esimerkiksi:

Get-Help -Name Update-ohje

Olet luultavasti miettinyt, miten tulkita kaiken tekstin joka tapauksessa, tarkoitan, miksi on olemassa kaksi paljon tietoa syntaksin osiossa ja miksi siellä on niin paljon sulkeja kaikkialla paikassa? 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 jo olevasta koneesta, joka oli jo ladannut ne, mutta sinun ei tarvitse määrittää lähdepolkua, jos olet halusi vain napata Microsoftin uusimmat tiedostot.

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

  • Parametrin nimen ja sen tyypin ympärillä olevat kulmakappaleet merkitsevät, että se on valinnainen parametri ja komento toimii hyvin ilman sitä.
  • Parametrien nimien ympärillä olevat kulmakappaleet tarkoittavat sitä, että parametrit ovat paikannusparametri.
  • Kohdistettujen palkkien parametrin oikealla puolella oleva tieto kertoo tietotyypin, jota parametri odottaa.

Vaikka sinun pitäisi oppia lukemaan ohjetiedoston syntaksia, jos olet epävarma tietystä parametrista, liitä vain -Tiedosi saat help -komennon loppuun ja vieritä parametrien osiin, missä se kertoo sinulle hieman enemmän jokaisesta parametri.

Get-Help -Name Update-Help -Full

Viimeinen asia, mitä sinun tarvitsee tietää ohjusjärjestelmästä, on, miten voit käyttää sitä komentoja etsimiseen, 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ään apujärjestelmää. Se on kätevä koko ajan, jopa kehittyneille kirjoittajille, jotka ovat tehneet tätä vuosien ajan.

turvallisuus

Tämä ei olisi 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ä.

Perusmuotoinen suojausmuoto johtuu siitä, että PS1-tiedostopääte (PowerShell-komentosarjan käyttämää laajennusta) ei ole rekisteröity PowerShell-isännälle, joka on tosiasiallisesti rekisteröity Notepadilla. Tämä tarkoittaa sitä, että kaksoisnapsauta tiedostoa avautuu notepadilla sen sijaan, että se olisi käynnissä.

Toiseksi, et voi suorittaa komentosarjoja komentoriviltä kirjoittamalla vain komentosarjan nimeä, sinun on määritettävä komentosarjan koko polku. Joten jos haluat käyttää komentosarjaa C-asemaan, sinun pitäisi kirjoittaa:

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 komentosarjaa. Itse asiassa oletuksena et pysty käsittelemään komentosarjoja, ja sinun on muutettava toteuttamispolitiikkaasi, jos haluat käyttää niitä. On olemassa neljä huomattavaa täytäntöönpanokäytäntöä:

  • 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 sallii 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 sallii 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.

Jos haluat nähdä, millainen nykyinen toteutusperusteesi on, avaa PowerShell-konsoli ja kirjoita:

Get-ExecutionPolicy

Tätä kurssia ja useimpia muita olosuhteita varten 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

Se on kaikki tällä kertaa ihmiset, nähdään huomenna vielä 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 lähettää minulle tweeting tai jättää kommentin.