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รค.

  • ๐Ÿš€ Kรคynnistรค oikea komentotulkki: Avaa PowerShell tai PowerShell ISE Kรคynnistรค-valikosta ja suorita se jรคrjestelmรคnvalvojana, kun tarvitset laajennettuja oikeuksia.
  • ๐Ÿงฉ Kรคytรค cmdlettejรค, รคlรค tekstikomentoja: Cmdlet-komennot noudattavat verbi-substantiivi-nimeรคmismallia ja palauttavat .NET-objekteja, joten tuloste voi siirtyรค seuraavaan cmdlet-komennolle putken kautta.
  • ๐Ÿ” Aseta suorituskรคytรคntรถ huolellisesti: Kรคytรค Set-ExecutionPolicy-ominaisuutta RemoteSignedin kanssa tasapainottaaksesi turvallisuuden ja kรคtevyyden .ps1-komentosarjoja suoritettaessa.
  • ๐Ÿ“ Kirjoita uudelleenkรคytettรคviรค .ps1-skriptejรค: Yhdistรค cmdlettejรค, muuttujia ja projekteja tekstitiedostoon .ps1-tiedostotunnisteella automatisoidaksesi toistuvia jรคrjestelmรคnvalvojan tehtรคviรค.
  • ๐Ÿค– Yhdistรค PowerShell tekoรคlyn kanssa: Tekoรคlyavustajat muuttavat selkokieliset pyynnรถt suoritusvalmiiksi PowerShell-skripteiksi ja selittรคvรคt vieraita cmdlettejรค rivi riviltรค.

Powershell-opastus aloittelijoille

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รค.

Kรคynnistรค PowerShell

Vaihe 2) PowerShell-ikkuna avautuu.

PowerShell -ikkuna

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-Help-cmdlet

Get-Command: saada tietoa kaikesta, mihin voi vedota.

Esimerkki: luo luettelo koneelle asennetuista cmdleteistรค ja funktioista.

Get-Command

Get-Command-cmdlet

Hanki palvelu: lรถytรครค kaikki palvelut koneelta.

Esimerkki: hae kaikki palvelut, joiden nimi alkaa kirjaimilla โ€vmโ€.

Get-Service "vm*"

Get-Service-cmdlet

Hanki jรคsen: nรคytรค, mitรค esineellรค voi tehdรค.

Esimerkki: listaa Get-Service-funktion palauttamien virtuaalikoneen palveluiden jรคsenet.

Get-Service "vm*" | Get-Member

Get-Member-cmdlet

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รถ:

Uuden kohteen tuloste

PowerShell-tietotyypit

PowerShell tukee .NET-vakiotietotyyppejรค, joten voit tallentaa minkรค tahansa arvon siististi muuttujaan.

PowerShell-tietotyypit

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รค".

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.

Suorita PowerShell jรคrjestelmรคnvalvojana

Vaihe 2) Suorita alla olevat komennot.

  1. Get-ExecutionPolicy
  2. Set-ExecutionPolicy Unrestricted
  3. enter Y vahvistuskehotteessa.
  4. Get-ExecutionPolicy

Muuta toteutuskรคytรคntรถรค

Ensimmรคinen PowerShell-skripti

Avaa Muistio ja kirjoita:

Write-Host "Hello, Guru99!"

Tallenna tiedosto nimellรค .ps1 laajennus โ€“ esimerkiksi FirstScript.ps1.

Tallenna FirstScript.ps1

Suorita PowerShellissรค komentosarja seuraavasti:

& "X:\FirstScript.ps1"

Suorita 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.

PowerShell ISE

Luo aiempi komentosarja uudelleen ISE:ssรค:

  1. Liitรค koodi editoriin.
  2. Tallenna skripti.
  3. Paina F5-nรคppรคintรค suorittaaksesi sen.
  4. Tarkkaile tulostetta konsoliruudussa.

Suorita komentosarja ISE:ssรค

Nรคyte 2: seuraava skripti nรคyttรครค ilmaisen virtuaalimuistin koneella.

Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |
Select-Object -Property CSName, FreeVirtualMemory

Ilmainen virtuaalimuistiskripti

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.

UKK

PowerShell automatisoi Windows jรคrjestelmรคnvalvojana toimii palveluiden, tiedostojen, kรคyttรคjien ja palvelimien hallinta oliopohjaisen komentorivi- ja .NET-kehykseen perustuvan komentosarjakielen avulla.

Cmdlet on kevyt .NET-luokkaobjekti, joka kรคyttรครค verbi-substantiivi-nimeรค ja palauttaa objekteja. Perinteinen komento muissa komentotulkeissa tuottaa pelkkรครค tekstiรค ja hoitaa oman jรคsentรคmisensรค ja muotoilunsa.

PowerShell toimii objektien kanssa ja tukee cmdlettejรค, komentosarjoja ja syvรครค .NET-integraatiota. Komentokehote on yksinkertainen tekstipohjainen komentotulkki, jonka komennot tuottavat pelkkรครค tekstiรค objektien sijaan.

.ps1-tiedosto on PowerShell-skripti โ€“ tekstitiedosto, joka sisรคltรครค yhden tai useamman PowerShell-komennon. Oletusarvoisesti sitรค ei voi suorittaa kaksoisnapsauttamalla; se suoritetaan konsolista tai valitsemalla Suorita PowerShellillรค.

Avaa PowerShell jรคrjestelmรคnvalvojana ja suorita Set-ExecutionPolicy arvolla, kuten RemoteSigned tai Unrestricted, ja vahvista sitten. Tarkista nykyinen asetus komennolla Get-ExecutionPolicy.

Integrated Scripting Environment (ISE) on PowerShellin sisรครคnrakennettu graafinen editori skriptien kirjoittamiseen, suorittamiseen, testaamiseen ja virheenkorjaukseen. Se sisรคltรครค syntaksin vรคrityksen, vรคlilehtien tรคydennyksen ja useita skriptivรคlilehtiรค.

Tekoรคlyavustajat ehdottavat cmdlettejรค, selittรคvรคt komentosarjojen toimintaa ja havaitsevat virheitรค kirjoittaessasi. Ne auttavat jรคrjestelmรคnvalvojia automatisoimaan tehtรคviรค nopeammin ja muuntamaan selkokielisiรค pyyntรถjรค toimiviksi PowerShell-komennoiksi.

Kyllรค. Tekoรคlykoodiavustajat luovat kokonaisia โ€‹โ€‹PowerShell-skriptejรค selkokielisen kuvauksen, kuten "listaa kaikki pysรคytetyt palvelut ja kรคynnistรค ne uudelleen", pohjalta ja selittรคvรคt jokaisen cmdlet-komentosarjan, jotta voit tarkastella sitรค ennen suorittamista.

Tiivistรค tรคmรค viesti seuraavasti: