# Mis on PowerShelli käsud? 40 olulisemat käsud ülevaatlikult

Sobivate PowerShell-käskude kasutamine võimaldab mooduleid täpselt rakendada. Neid hästi struktureeritud cmdlet’eid saab valikuliste parameetrite abil veelgi täpsemalt kohandada. Tutvustame 40 kõige olulisemat PowerShell-käsku, et saaksite oma süsteemis või võrgus optimaalselt töötada.

## Mis on PowerShell-käsk?

PowerShell, mis on eelinstallitud alates Windows 7-st, võimaldab sisestada PowerShell-käsklusi, mida Windows seejärel täidab. Lisaks käsurea cmd-käskudele on olemas arvukalt teisi käske ehk cmdlet’eid, mida mõistab ainult PowerShell ise. Need cmdlet’id **koosnevad tegusõnast ja nimisõnast**, mida eraldab sidekriips. Lisaks saate neid PowerShell-käsklusi täiendada **valikuliste parameetritega, mida** eraldavad tühikud. PowerShelli kasulikkus ulatub kaugemale administraatoritest; see osutub hindamatuks ka arenduse valdkonnas. Kuna saadaval on hulgaliselt eelinstallitud PowerShelli käske, tutvustame teile kõige olulisemaid neist.

## Kõige olulisemad PowerShelli käsud

PowerShelli käskudega saate vaid mõne käsuga teha ulatuslikke haldusülesandeid. Põhikäsudest, mida tõenäoliselt kõige sagedamini kasutate, on need, mis annavad esialgse ülevaate võrgu struktuurist, loetlevad teisi PowerShelli käske, aitavad teha olulisi turvaseadistusi ja võimaldavad teha väärtuslikke analüüse. Siin on mõned kõige olulisemad PowerShelli käsud, millega peaksite tutvuma:

### 1. Get-Module -All

Kõigi imporditud PowerShell-moodulite esialgse ülevaate saamiseks kasutage käsku **Get-Module -All**.

```shell
Get-Module -All
```

### 2. Get-Command

Eeldefineeritud PowerShell-käskusid on rohkesti. Praegu saadaval olevate PowerShell-käskude ülevaate saamiseks kasuta lihtsalt käsku **Get-Command**. See käsk loetleb ülevaatlikult kõik võimalikud toimingud ja pakub iga vastava cmdleti kohta lühikese selgituse. See kehtib isegi siis, kui oled installinud lisamooduleid.

```shell
Get-Command
```

### 3. Abi

Eespool kirjeldatud Get-Command-nimekiri annab esialgse ülevaate; üksikasjalikuma teabe saamiseks käsu ja selle valikute kohta kasutage **Get-Help-cmdletit**. See käsk avab teie arvutis olevad abifailid ja kuvab kogu kättesaadava teabe. Selle käivitamiseks ühendage Get-Help käsuga, mille süntaksit soovite vaadata.

```shell
Get-Help [[-Name] <String>] [-Path <String>] [-Category <String[]>] [-Component <String[]>] [-Functionality <String[]>] [-Role <String[]>] [-Examples] [<CommonParameters>]
```

### 4. Get-Process

Süsteemis hetkel aktiivseid rakendusi, programme ja protsesse saab kiiresti kontrollida käsuga **Get-Process**. Kui määratakse kindel rakendus, kuvatakse selle kohta täiendavat teavet.

```shell
Get-Process
```

### 5. Teenuse hankimine

Käsk **Get-Service** toimib sarnaselt käsuga Get-Process. Erinevus seisneb selles, et see pakub teavet kõigi aktiivsetest teenuste kohta. Kui soovite saada teavet konkreetse teenuse või teenuste konkreetse kategooria kohta, saate oma päringu hõlpsasti täpsustada.

```shell
Get-Service
```

### 6. Protsessi peatamine

Protsesse saab peatada ka PowerShelli käsurealt, kasutades erinevaid käske. Üks võimalus on käsk **Stop-Process**. Vastava protsessi saab määratleda nime, ID või muude atribuutide abil. Siin on näide:

```shell
Stop-Process -Name "processname"
```

```shell
Stop-Process -Id 3582 -Confirm -PassThru
```

Parameetriga -Confirm küsitakse käsu kinnitust. Parameeter -PassThru küsib kinnitust peatatud protsessi kohta. Seda ei tehta automaatselt.

### 7. ConvertTo-HTML

Probleemide või võimalike komplikatsioonide kiireks tuvastamiseks on selge kuvamine äärmiselt kasulik. Selleks võite kasutada käsku **„ConvertTo-HTML“**, mis teisendab PowerShelli käskude väljundi HTML-failiks. See kuvab teabe kasutajasõbralikus veeruvormingus. Käsu struktuur on tavaliselt järgmine:

```shell
Get-Command | ConvertTo-Html > c:\temp\AllCommands.html
```

### 8. ConvertTo-Xml

Kui vajate konkreetse objekti XML-põhist esitusviisi, võite toimida sarnaselt. Selleks kasutage käsku **ConvertTo-Xml**. Järgmises näites teisendate praeguse kuupäeva XML-vormingusse:

```shell
Get-Date | ConvertTo-Xml
```

### 9. Asukoht-objekt

Käsu **Where-Object** abil saate cmdleti tulemust filtreerida. Käsu käivitamisel saate sageli tulemuseks palju objekte, mis sisaldavad rohkem teavet, kui teil vaja on. Kasutades Where-Objecti koos toruga, saate kuvada ainult just seda teavet, mida otsite. Näiteks kui soovite vaadata sel aastal loodud või uuendatud teenuseid, saate seda teha järgmiselt:

```shell
Get-Service | Where-Object { $_.LastWriteTime -gt "01.01.2023" }
```

### 10. Ajalugu

Kui soovid kuvada kõik PowerShelli käsud, mida oled seansi jooksul sisestanud, on sobivaks cmdletiks **Get-History**. Kõigi PowerShelli käskude kuvamiseks:

```shell
Get-History
```

Selle määratlusega kutsutakse välja ainult viimased kümme PowerShelli käsku:

```shell
Get-History -Count 10
```

### 11. Ajaloo kustutamine

Samuti saate kustutada kasutatud PowerShell-käskude loendi. Kõigi kirjetega kustutamiseks kasutage cmdletit **Clear-History**:

```shell
Clear-History
```

Valitud PowerShell-käskude kustutamiseks tuleb lihtsalt lisada vastavad parameetrid. Järgmine sisestus eemaldab kõik PowerShell-käskud, mis sisaldavad sõna „Help” või lõpevad sõnaga „Syntax”.

```shell
Clear-History -Command *Help*, *Syntax
```

### 12. Ajalugu lisada

Samuti on võimalik lisada seanssi PowerShelli käsud. See võimaldab neid hiljem uuesti käivitada. Selleks kasutatakse käsurea käsud **Add-History**.

```shell
Add-History
```

### 13. Väljundfail

PowerShelli käskude väljundi salvestamiseks arvutisse kasuta käsurea **Out-File**. See salvestab PowerShelli käsud määratud asukohas asuvasse lihttekstifaili.

```shell
Get-Process | Out-File -FilePath .\Process.txt
```

### 14. Kopeeri objekt

PowerShellis saate elemente ka kopeerida ja salvestada koopia teise asukohta. Kasutage käsku **„Copy-Item“** ja määrake kataloog, kuhu koopia salvestatakse. See toimib järgmiselt:

```shell
Copy-Item "C:\folder1\file.txt" -Destination "C:\folder2"
```

### 15. Get-ChildItem

Käsu **Get-ChildItem** abil saate hankida objekte ühest või mitmest salvestusasukohast. Kui on olemas alamelemendid, kuvatakse ka need. See käsk näitab vaikimisi atribuute, viimase muudatuse ajamärget, faili suurust ja elemendi nime. Kui salvestusasukoht on tühi, jäetakse väljund välja.

```shell
Get-ChildItem -Path C:\example
```

Atribuudid kuvatakse rea „Režiim” all. Tavaliselt on need järgmised omadused:

- a (arhiiv)
- d (kataloog)
- h (peidetud)
- l (link)
- r (ainult lugemiseks)
- s (süsteem)

### 16. Set-AuthenticodeSignature

Failide kaitsmiseks saate neile lisada Authenticode-allkirja käsuga **Set-AuthenticodeSignature**. See toimib aga ainult failide puhul, mis toetavad Subject Interface Package’i (SIP).

```shell
$cert=Get-ChildItem -Path Cert:\CurrentUser\My -CodeSigningCert
Set-AuthenticodeSignature -FilePath PsTestInternet2.ps1 -Certificate $cert
```

### 17. Invoke-Item

Konkreetsele failile seotud standardtoimingu sooritamiseks on **Invoke-Item** kõige lihtsam viis. See käsk tagab näiteks, et käivitatav fail käivitatakse otse või et dokument avatakse vaikimisi määratud rakenduses. Selles näites avatakse fail vaikimisi Microsoft Wordis:

```shell
Invoke-Item "C:\Test\example.doc"
```

### 18. Töö käivitamine

Taustatöö käivitamiseks oma arvutis võid kasutada selleks ettenähtud käsku. **Käsk Start-Job** võimaldab sul täita kindlat käsku taustal, ilma et see mõjutaks praegust sessiooni.

```shell
Start-Job -ScriptBlock { Get-Process -Name pwsh }
```

## Tee toiminguid nende PowerShelli käskudega

Kuigi varasemad PowerShelli käsud olid suunatud peamiselt ülevaate andmisele, saate sobivate cmdletite abil teha ka mitmesuguseid toiminguid, suurendades seeläbi süsteemi tootlikkust. Järgmised PowerShelli käsud muudavad teie töövoo sujuvamaks.

### 19. Sisu tühjendamine

Kui soovitakse kustutada elemendi sisu, säilitades samas elemendi enda, on käsk **„Clear-Content“** ideaalne valik. Selle kasutamise näiteks võib tuua teksti kustutamise dokumendist, jättes ise faili puutumatuks. Protsess toimub järgmiselt:

```shell
Clear-Content C:\Temp\example.txt
```

### 20. ForEach-Object

Käsk **ForEach-Object** võimaldab teha toimingut kõigi sisendobjektide kogumi elementidega. Selles näites jagame massiivis olevad kolm täisarvu arvuga 10:

```shell
10000, 1000, 100 | ForEach-Object -Process {$_/10}
1000
100
10
```

### 21. Võrdlusobjekt

Et vältida erinevate objektide kogumite käsitsi võrdlemist, võite kasutada käsurea käsku **„Compare-Object** “. See käsk koostab aruande, milles on esile toodud kirjetevahelised erinevused. Esimene kirje on võrdlusobjekt ja teine kirje erinevusobjekt. Võite määrata, milliseid tegureid võrrelda, ning kui seda teavet ei esitata, võrreldakse ainult string-tüüpi tulemusi. Väljund on jagatud omadusteks, mis esinevad ainult võrdlusobjektis (&lt;), ja omadusteks, mis esinevad ainult erinevuste objektis (&gt;). Selles näites sisaldab fail document1.txt väärtusi Berlin, London ja Paris. Fail document2.txt sisaldab väärtusi Berlin, Vienna ja Amsterdam.

```shell
Compare-Object -ReferenceObject (Get-Content -Path C:\Test\Document1.txt) -DifferenceObject (Get-Content -Path C:\Test\Document2.txt)
InputObject	SideIndicator
---------------	-----------------
Wien		==>
Amsterdam	==>
London		<==
Paris		<==
```

Sisu, mis esineb mõlemas dokumendis (käesoleval juhul „Berliin“), ei kuvata vaikimisi.

### 22. Uus objekt

Üks kasulikumaid PowerShelli käske on **New-Object**. Selle käsuga saab luua objekti .NET-raamistikust või COM-ist (Component Object Model). Näiteks kui soovite luua System.Version-objekti, mille konstruktoriks on string „1.2.3.4“, siis käsk täidetakse järgmiselt:

```shell
New-Object -TypeName System.Version -ArgumentList "1.2.3.4"
```

### 23. Valige objekt

Kasutage käsku **„Select-Object“**, et valida objekt või objektide rühm, millel on teie määratud omadused. Selleks saate määrata järgmised parameetrid:

- Esimene
- Viimane
- Unikaalne
- Vahelejäta
- Indeks

Järgmises näites kasutame PowerShelli käske „Get-Process“ ja „Sort-Object“, et kuvada kolm protsessi, mille mälukasutus on sisestamise hetkel suurim.

```shell
Get-Process | Sort-Object -Property WS | Select-Object -Last 3
```

### 24. Aliase määramine

Windowsi kiirklahvid on kasulikud, et toiminguid veelgi kiiremini teostada. Ka PowerShell pakub seda võimalust. Cmdleti **Set-Alias** abil saate määrata erinevatele PowerShelli käskudele kiirklahvi. Järgmises näites loome käskule Get-ChildItem praeguse seansi jaoks alias „ci“.

```shell
PS> Set-Alias -Name ci -Value Get-ChildItem
PS> Get-Alias -Name ci
```

### 25. Set-Location

Töömälu asukoha muutmiseks kasutage käsku **Set-Location**. Uueks asukohaks võivad olla kataloogid, alamkataloogid, registri asukohad või teenusepakkuja teed. Järgmises näites määrame praeguseks salvestusasukohaks C:-ketta:

```shell
PS C:\Windows\> Set-Location HKLM:\
PS HKLM:\> Set-Location C:
PS C:\Windows\>
```

### 26. Paigaldus- ja hooldusteenus

Käsu **Set-Service** abil saate teenusega suhelda ning seda käivitada, peatada või pausile panna. Samuti on võimalik muuta teenuse omadusi. Järgmises näites muudame teenuse kuvanimeks „New Workstation” asemel „Old Workstation”.

```shell
Set-Service -Name New Workstation -DisplayName "Old Workstation"
```

### 27. Ajavööndi määramine

Süsteemi ajavööndi muutmiseks on õige valik käsk **Set-TimeZone**. Koordineeritud universaalaja seadmiseks uueks süsteemiajaks kasuta järgmist käsku:

```shell
Set-TimeZone -Id "UTC"
```

### 28. Arvuti taaskäivitamine

Saate oma kohaliku või kaugarvuti operatsioonisüsteemi taaskäivitada, kasutades selleks sobivat PowerShelli käsku **Restart-Computer**. Seda saab käivitada järgmiselt:

Teie arvuti puhul:

```shell
Restart-Computer
```

Teie võrgus olevate valitud arvutite puhul:

```shell
Restart-Computer -ComputerName Server01, Server03
```

### 29. Teenuse taaskäivitamine

Teenuse peatamiseks ja taaskäivitamiseks PowerShelli käskude abil on sobivaks cmdletiks **Restart-Service**. Näiteks saate taaskäivitada kõik teenused, mille nimi algab tähtedega „Net“:

```shell
PS C:\> Restart-Service -DisplayName "net*"
```

### 30. Tühjenda prügikast

Prügikasti tuleks regulaarselt tühjendada, mida on võimalik teha ka PowerShelli kaudu. Selleks on käsk **Clear-RecycleBin**.

```shell
Clear-RecycleBin
```

### 31. Get-ComputerInfo

Käsku **„Get-ComputerInfo“** kasutatakse süsteemi ja operatsioonisüsteemi omaduste kuvamiseks.

```shell
Get-ComputerInfo
```

### 32. Eseme teisaldamine

Kui soovite mõnda elementi ühest asukohast teise üle viia, on teie käsutuses mitu PowerShelli käsku. Kõige sagedamini kasutatakse siiski käsku **Move-Item**. Selles näites viime faili old.txt C:-kettalt kataloogi D:\\Temp ning nimetame selle ümber failiks new.txt.

```shell
Move-Item -Path C:\old.txt -Destination D:\Temp\new.txt
```

## Jälgimine ja veaotsing sobivate PowerShell-käskudega

PowerShelli käsud, mis võimaldavad süsteemi jälgimist ja kontrollimist, on äärmiselt väärtuslikud, eriti uue võrgu jõudluse testimisel reaalsetes tingimustes. Järgmised PowerShelli käsud on selleks otstarbeks eriti kasulikud.

### 33. Veaparandusprotsess

Veaparandus on oluline protsess, mis tagab, et kõik seaded ja protsessid töötaksid veatult. Selleks tuleb alla laadida ja seadistada sobivad veaparandusprogrammid. Kui see on tehtud, kasuta käsku **„Debug-Process** “. Järgmises näites kasutame veaparandusprogrammi Explorerile:

```shell
PS C:\> Debug-Process -Name "Explorer"
```

Mitme protsessi samaaegseks silumiseks eraldage need lihtsalt komadega.

### 34. Enable-PSBreakpoint

Teatud katkestuspunktide aktiveerimiseks kasuta käsku **Enable-PSBreakpoint**. See seab cmdleti väärtuseks tehnilisest seisukohast „true”. Kasuta neid PowerShelli käske, et aktiveerida kõik katkestuspunktid praeguses sessioonis:

```shell
Get-PSBreakpoint | Enable-PSBreakpoint
```

Kasuta seda käsku, et aktiveerida katkestuspunkte nende ID järgi:

```shell
Enable-PSBreakpoint -ID 0, 3, 4
```

### 35. PSBreakpointi keelamine

PowerShelli katkestuspunktide uuesti deaktiveerimiseks on sobivaks käsuks **Disable-PSBreakpoint**. Tehniliselt öeldes seatakse käsu Enable-PSBreakpoint väärtuseks „false“. ID-ga 0 katkestuspunkti deaktiveerimiseks sisestage järgmine käsk:

```shell
Disable-PSBreakpoint -Id 0
```

### 36. Get-Counter

Windows-seadmete puhul saate nende jõudlusandmeid hankida PowerShelli abil. Selle ülesande jaoks sobiv käsk on **Get-Counter**, mida saab kasutada nii kohaliku arvuti kui ka kaugarvutite puhul. Järgmises näites hangime andmeid kohalikust arvutist:

```shell
Get-Counter -ListSet *
```

### 37. Käivita-Uinu

Skripti või seansi peatamine võib olla äärmiselt oluline, eriti süsteemi ülekoormuse korral. PowerShell pakub selleks käsku **Start-Sleep**, mis võimaldab määrata, kui kauaks tegevus peatatakse. Järgmises näites peatatakse täitmine kaheks sekundiks:

```shell
Start-Sleep -Seconds 2
```

### 38. Test-Path

Kasutage käsku **Test-Path**, et kontrollida, kas konkreetse tee kõik elemendid on olemas. Võimalikud tulemused on „True“ või „False“.

```shell
Test-Path -Path "C:\Documents and Settings\user"
False
```

### 39. Ühenduse kontrollimine

Võite oma võrgu ühenduvust hinnata ka PowerShelli abil. Selleks saadetakse käsu **„Test-Connection“** abil ICMP-kaja-päringupakette kindlaksmääratud adressaatidele, mis kutsuvad esile vastuseid Interneti-kontrollsõnumiprotokolli (ICMP) kaudu. Meie näites saadame päringu Server02-le IPv6-protokolli kaudu.

```shell
Test-Connection -TargetName Server02 -IPv6
```

### 40. Get-WinEvent

Kui soovite vaadata ühte või mitut sündmuslogi, on teie käsutuses mitmesugused PowerShelli käsud. Selleks kõige sobivam cmdlet on **Get-WinEvent**. Kõigi logide kuvamiseks oma kohalikult arvutilt võite kasutada järgmist käsku:

```shell
Get-WinEvent -ListLog *
```


This is a markdown version of: [https://www.ionos.com/et-ee/digitalguide/server/seadistused/powershelli-kaesud/](https://www.ionos.com/et-ee/digitalguide/server/seadistused/powershelli-kaesud/) for AI/LLM consumption.