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.
















