Powershell-opastus aloittelijoille
⚡ Älykäs yhteenveto
PowerShell-skriptaus on .NET-kehykseen rakennettu oliopohjainen automaatiomoottori. Se yhdistää cmdlettejä, skriptejä ja skriptikielen auttaakseen IT-järjestelmänvalvojia automatisoimaan Windows, hallita palveluita ja yhdistää etäkoneita yhdeltä komentoriviltä.

Mikä on PowerShell?
Windows PowerShell on oliopohjainen automaatiomoottori ja komentosarjakieli. Se on suunniteltu IT-ammattilaisille ja järjestelmänvalvojille, joiden on hallittava ja automatisoitava Windows ja muissa sovelluksissa. PowerShell laajentaa opittuja käsitteitä Windows Komentorivi ja Windows Script Host uusilla objekteilla, cmdleteillä ja tehokkaalla käsittelyprosessilla.
Se yhdistää skriptauksen joustavuuden, komentorivin nopeuden ja graafisen käyttöliittymän hallintatyökalun syvyyden. Sen avulla järjestelmänvalvojat voivat ratkaista ongelmia tehokkaasti ja poistaa tuntikausia manuaalista työtä. Tämä opetusohjelma käy läpi PowerShellin oppimiseen tarvittavat perusteet alusta alkaen.
Miksi käyttää PowerShelliä?
Tärkeimmät syyt PowerShellin käyttöön ovat:
- Tarjoaa hyvin integroidun komentorivikokemuksen käyttöjärjestelmälle.
- Tarjoaa täyden pääsyn kaikkiin .NET-kehystyypin tyyppeihin.
- Järjestelmänvalvojien luottama kaikissa yrityksissä.
- Voit muokata palvelin- ja työasemakomponentteja muutamalla rivillä.
- Suunnattu järjestelmänvalvojille selkeällä verbi-substantiivi-syntaksilla.
- Turvallisempaa kuin juokseminen vbscript tai muita vanhoja skriptikieliä.
PowerShell-historia
PowerShell 1.0 julkaistiin ensimmäisen kerran vuonna 2006. PowerShell on nyt versiossa 7.2 ja uudemmissa. Julkaisujen myötä sen ominaisuudet ja hosting-ympäristöt kasvoivat merkittävästi.
PowerShellin versiokohtainen historia:
- PowerShell 1.0 — tuki paikallishallintoa Windows 2003-palvelin.
- PowerShell 2.0 — integroituna Windows 7 ja Windows Server 2008 R2. Lisätty etäkäyttö, tapahtumat, taustatyöt, tapahtumat ja virheenkorjaus.
- PowerShell 3.0 — toimitetaan mukana Windows 8 ja Windows Server 2012 osana Windows Hallintakehys. Lisätty ajoitetut työt, istuntoyhteydet ja automaattinen moduulien lataus.
- PowerShell 4.0 — toimitetaan mukana Windows 8.1 ja Windows Server 2012 R2. Lisätty halutun tilan määritys, parannettu virheenkorjaus ja verkon diagnostiikka.
- PowerShell 5.0 — osa Windows Management Framework 5. Lisätty etävirheenkorjaus, luokkamääritelmät ja .NET-luetteloinnit.
- PowerShell 7.2 — rakennettu .NET 6.0:lle. Lisää uusia operaattoreita, dynaamisia virhenäkymiä ja automaattisia versioilmoituksia.
PowerShellin ominaisuudet
- PowerShell-etäkäyttö: käynnistää komentosarjoja ja cmdlettejä etäkoneella.
- Taustatyöt: ajaa skriptejä tai prosesseja asynkronisesti paikallisessa koneessa tai useissa etäkoneissa.
- liiketoimet: anna cmdlet-komentojen ja kehittäjien suorittaa ryhmiteltyjä toimintoja, jotka voidaan vahvistaa tai peruuttaa yhdessä.
- Tapahtuma: kuuntele, välitä ja toimi johdon ja järjestelmän tapahtumien perusteella.
- Verkkotiedoston siirto: natiivi tuki priorisoidulle, asynkroniselle ja rajoitetulle tiedostonsiirrolle koneiden välillä Background Intelligent Transfer Service (BITS) -palvelun kautta.
PowerShellin käynnistäminen
PowerShell on esiasennettuna jokaisessa uudemmassa versiossa WindowsKäynnistä se seuraavasti.
Vaihe 1) Etsi PowerShell in Windows, valitse se ja napsauta sitä.
Vaihe 2) PowerShell-ikkuna avautuu.
Cmdlet vs. Command
A cmdlet (lausutaan ”command-let”) on kevyt komento, jota käytetään PowerShell-ympäristössä. PowerShell kutsuu cmdlet-komentoja kehotteessa, ja voit luoda omia PowerShell-API-rajapintojen avulla. Cmdlet-komennot eroavat perinteisistä shell-komennoista seuraavilla tavoilla:
- Cmdletit ovat .NET Framework luokan objekteja; niitä ei voida suorittaa erillisinä suoritettavina tiedostoina.
- Cmdlet-komentoja voidaan kirjoittaa jopa kymmenellä koodirivillä.
- Jäsennys, tulosteen muotoilu ja virheiden esittäminen hoidetaan ajonaikaisessa ympäristössä, ei itse cmdletissä.
- Cmdletit toimivat objektien kanssa, joten sekä tekstivirrat että objektit voivat kulkea putkistojen läpi.
- Cmdlet-komennot ovat tietuepohjaisia ja käsittelevät yhtä objektia kerrallaan.
Suurin osa PowerShell-toiminnoista toimitetaan cmdlet-komennoilla, jotka käyttävät aina verbi-substantiivi-nimeämismallia (aina yksikkö). Cmdlet-komennot palauttavat objekteja, eivät tekstiä. käsikirjoitus — eri asia kuin cmdlet — on sarja komentoja, jotka on tallennettu tekstitiedostoon, jossa on .ps1 laajennus.
Yleisiä verbejä, joita käytät PowerShellin oppimiseen, ovat:
- Saada – hakea jotain.
- Aloita - ajaa jotain.
- Ulos — tuottaa jotakin.
- stop — pysäyttää käynnissä olevan asian.
- Asettaa – määritellä jotakin.
- Uusi – luoda jotain.
Tärkeitä PowerShell-komentoja
Hae apua: Näytä PowerShell-komentojen ja -aiheiden ohjeet.
Esimerkki: näytä ohjeet kohteelle Format-Table komento.
Get-Help Format-Table
Get-Command: saada tietoa kaikesta, mihin voi vedota.
Esimerkki: luo luettelo koneelle asennetuista cmdleteistä ja funktioista.
Get-Command
Hanki palvelu: löytää kaikki palvelut koneelta.
Esimerkki: hae kaikki palvelut, joiden nimi alkaa kirjaimilla ”vm”.
Get-Service "vm*"
Hanki jäsen: näytä, mitä esineellä voi tehdä.
Esimerkki: listaa Get-Service-funktion palauttamien virtuaalikoneen palveluiden jäsenet.
Get-Service "vm*" | Get-Member
Muita hyödyllisiä cmdlettejä:
Get-Module— näytä asennetut komentopaketit.Get-Content— lukea tiedoston ja käsitellä sen sisällön.Get-*jokerimerkki — listaa kaikki cmdlet-komennot, jotka alkavat merkeillä ”Get-”.
Esimerkki: luo kansio.
New-Item -Path 'X:\Guru99' -ItemType Directory
lähtö:
PowerShell-tietotyypit
PowerShell tukee .NET-vakiotietotyyppejä, joten voit tallentaa minkä tahansa arvon siististi muuttujaan.
Erityiset muuttujat
PowerShellissä on useita sisäänrakennettuja erikoismuuttujia. Hyödyllisimmät on lueteltu alla.
| Erikoismuuttuja | Tuotetiedot |
|---|---|
| $Error | Virheobjektien taulukko, joka edustaa viimeisimpiä virheitä. |
| $Host | Näyttää nykyisen isännöintisovelluksen nimen. |
| $Profiili | Tallentaa käyttäjäprofiilin koko polun oletuskäyttöliittymää varten. |
| $PID | Tallentaa prosessitunnisteen. |
| $PSUICulttuuri | Sisältää nykyisen käyttöliittymäkulttuurin nimen. |
| $NULL | Sisältää tyhjän tai null-arvon. |
| $False | Sisältää totuusarvon FALSE. |
| $Totta | Sisältää totuusarvon TRUE. |
PowerShell-skriptit
PowerShell-skriptit tallennetaan .ps1 tiedostoja. Oletusarvoisesti et voi suorittaa komentosarjaa kaksoisnapsauttamalla sitä – tämä suojaus suojaa järjestelmää vahingossa tapahtuvalta vahingoittumiselta. Suorittaaksesi komentosarjan, napsauta sitä hiiren kakkospainikkeella ja valitse "Suorita PowerShellillä".
Suorituskäytäntö määrittää, mitkä skriptit saavat suorittaa. Voit tarkastella nykyistä käytäntöä seuraavasti: Get-ExecutionPolicyMahdollisia arvoja ovat:
- rajoitettu — skriptejä ei sallita. Tämä on oletusarvo.
- Kaikki allekirjoitettu — vain luotettavan kehittäjän allekirjoittamat skriptit toimivat, ja jokainen vaatii vahvistuksen.
- RemoteSigned — omat skriptisi toimivat sekä luotettavista lähteistä saadut allekirjoitetut skriptit.
- rajoittamaton — mikä tahansa skripti voi toimia (käytä säästeliäästi).
Toteutuskäytännön muuttamisen vaiheet:
Vaihe 1) Avaa PowerShell-kehote järjestelmänvalvojan oikeuksilla napsauttamalla PowerShelliä hiiren kakkospainikkeella ja valitsemalla Suorita järjestelmänvalvojana.
Vaihe 2) Suorita alla olevat komennot.
Get-ExecutionPolicySet-ExecutionPolicy Unrestricted- enter
Yvahvistuskehotteessa. Get-ExecutionPolicy
Ensimmäinen PowerShell-skripti
Avaa Muistio ja kirjoita:
Write-Host "Hello, Guru99!"
Tallenna tiedosto nimellä .ps1 laajennus – esimerkiksi FirstScript.ps1.
Suorita PowerShellissä komentosarja seuraavasti:
& "X:\FirstScript.ps1"
Mikä on PowerShell ISE?
Windows PowerShell-integroitu komentosarjaympäristö (ISE) on PowerShellin oletuseditori. ISE:ssä voit suorittaa komentoja, kirjoittaa testejä ja debugata komentosarjoja graafisessa, ikkunapohjaisessa ympäristössä. Se tukee monirivistä muokkausta, syntaksin väritystä, välilehtien täydennystä, valikoivaa suorittamista ja paljon muuta.
PowerShell ISE tarjoaa myös konsolipaneelin, jossa komentoja suoritetaan suoraan, kun taas sivupaneelit näyttävät skriptiesi lähdekoodin ja kaikki ISE:hen liitetyt työkalut. Voit avata useita skripti-ikkunoita kerralla – tämä on hyödyllistä, kun debugataan skriptejä, jotka ovat riippuvaisia muissa skripteissä tai moduuleissa määritellyistä funktioista.
Luo aiempi komentosarja uudelleen ISE:ssä:
- Liitä koodi editoriin.
- Tallenna skripti.
- Paina F5-näppäintä suorittaaksesi sen.
- Tarkkaile tulostetta konsoliruudussa.
Näyte 2: seuraava skripti näyttää ilmaisen virtuaalimuistin koneella.
Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |
Select-Object -Property CSName, FreeVirtualMemory
PowerShell Concepts
Seuraavat käsitteet muodostavat PowerShell-työn jokapäiväisen sanaston.
| Käsite | Tuotetiedot |
|---|---|
| cmdletit | Sisäänrakennetut komennot, jotka on kirjoitettu .NET-kielillä, kuten VB tai C#. Kehittäjät laajentavat joukkoa lataamalla tai kirjoittamalla PowerShell-laajennuksia. |
| Tehtävät | PowerShell-kielellä kirjoitetut komennot ilman IDE:tä, kuten Visual Studio. |
| Skriptit | Tekstitiedostot levyllä, joissa on .ps1 laajennus. |
| Sovellukset | Nykyinen Windows komentotulkista kutsuttavat ohjelmat. |
| Mitä jos | Käskee cmdlet-komentoa olemaan suorittamatta komentoa, vaan kuvaamaan, mitä tapahtuisi, jos se suoritettaisiin. |
| Vahvistaa | Ohjaa cmdlet-komentoa näyttämään kehotteen ennen suorittamista. |
| jaaritteleva | Tarjoaa korkeamman tason operatiivisia yksityiskohtia. |
| Debug | Ohjaa cmdlet-komentoa lähettämään virheenkorjaustietoja. |
| ErrorAction | Määrittää, mitä cmdlet tekee virheen sattuessa. Sallitut arvot: continue, stop, silentlycontinue, inquire. |
| ErrorVariable | Nimeää muuttujan, joka sisältää virhetiedot. |
| OutVariable | Ohjaa cmdlet-komentoa tallentamaan tulosteensa tiettyyn muuttujaan. |
| UlosBuffer | Säilyttää tietyn määrän objekteja ennen niiden lähettämistä putkilinjaa pitkin. |
PowerShell-skriptien käytön edut
- PowerShell-skriptit ovat tehokkaita ja ytimekkäitä – voit saada paljon aikaan vain muutamalla rivillä.
- Muuttujat deklaroidaan käyttämäll��
$<variable>syntaksi. - Muuttujat voivat sisältää komentojen tulosteita, objekteja ja primitiivien arvoja.
- Muuttujan tyyppiä ei tarvitse määrittää eksplisiittisesti.
PowerShell vs. komentokehote
| PowerShell | Komentorivi |
|---|---|
| Syvästi integroitu WindowsTarjoaa interaktiivisen komentorivin ja täyden skriptikielen. | Oletusarvoinen komentorivikäyttöliittymä, jonka tarjoaa MicrosoftYksinkertainen Win32-sovellus, joka kommunikoi muiden Win32-objektien kanssa. |
| Käyttää cmdlet-komentoja, joita voidaan kutsua vuorovaikutteisesti tai automaatioskriptien kautta. | Ei cmdlettejä. |
| Käsittelee tulostetta objekteina, jotta se voi siirtyä toiseen cmdlet-komentoon putken kautta. | Tuloste on pelkkää tekstivirtaa, ei objekteja. |
| Edistynyt ominaisuuksien, ominaisuuksien ja sisäisen arkkitehtuurin suhteen. | Peruskuori, sopii vanhoihin erätehtäviin. |
PowerShellin sovellukset
PowerShellistä on tullut IT-järjestelmänvalvojien vakiovalinta, koska se vähentää merkittävästi työmäärää suurissa yritysverkoissa. Kuvittele, että hallinnoit yli neljääsataa palvelinta ja otat käyttöön uuden tietoturvaratkaisun, joka on riippuvainen tietystä jokaisella isännöintikoneella käynnissä olevasta palvelusta.
Palvelimille manuaalinen kirjautuminen on hidasta ja virhealtista. Yksi PowerShell-skripti voi tarkastella kaikkia palvelimia minuuteissa, raportoida, millä isännillä palvelu jo toimii, ja jopa ottaa sen käyttöön muilla. Skripti tallentaa tarkoituksen kerran ja soveltaa sitä luotettavasti koko palvelimeen.
















