# Kas ir PowerShell komandas? 40 svarīgākās komandas īsumā

Izmantojot atbilstošas PowerShell komandas, varat precīzi lietot moduļus. Šīs labi strukturētās cmdlet komandas var vēl vairāk pielāgot, izmantojot papildu parametrus. Mēs piedāvājam 40 vissvarīgākās PowerShell komandas, lai jūs varētu optimāli strādāt savā sistēmā vai tīklā.

## Kas ir PowerShell komanda?

PowerShell, kas ir iepriekš instalēts jau kopš Windows 7, ļauj ievadīt PowerShell komandas, kuras pēc tam izpilda Windows. Papildus komandrindas cmd komandām pastāv daudzas citas komandas jeb cmdlets, kuras saprot tikai pats PowerShell. Šie cmdlets **sastāv no darbības vārda un lietvārda**, kurus atdala defise. Turklāt šīs PowerShell komandas var paplašināt ar **papildu parametriem**, kurus atdala atstarpes. PowerShell lietderība sniedzas tālāk par administratoriem; tā izrādās nenovērtējama arī izstrādes jomā. No daudzajām iepriekš instalētajām PowerShell komandām mēs iepazīstināsim jūs ar vissvarīgākajām.

## Svarīgākās PowerShell komandas

PowerShell komandas ļauj veikt plaša mēroga administratora uzdevumus, izmantojot tikai dažus komandas ievadījumus. Starp pamata komandām, kuras jūs, visticamāk, izmantosiet visbiežāk, ir tās, kas sniedz sākotnēju pārskatu par jūsu tīkla struktūru, uzskaita citas PowerShell komandas, palīdz veikt būtiskas drošības konfigurācijas un ļauj veikt noderīgas analīzes. Šeit ir dažas no vissvarīgākajām PowerShell komandām, ar kurām jums vajadzētu iepazīties:

### 1. Get-Module -All

Lai iegūtu sākotnēju pārskatu par visiem importētajiem PowerShell moduļiem, izmantojiet komandu **Get-Module -All**.

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

### 2. Get-Command

Ir pieejams plašs iepriekš definētu PowerShell komandu klāsts. Lai iegūtu pārskatu par pašlaik pieejamajām PowerShell komandām, vienkārši izmantojiet komandu **„Get-Command** “. Šī komanda skaidri uzskaitīs visas iespējamās darbības un sniegs īsus skaidrojumus par katru atsevišķo cmdlet. Tas attiecas arī uz gadījumiem, ja esat instalējis papildu moduļus.

```shell
Get-Command
```

### 3. Palīdzība

Iepriekš aprakstītais „Get-Command“ saraksts sniedz sākotnēju pārskatu; lai iegūtu sīkāku informāciju par komandu un tās opcijām, izmantojiet cmdletu **„Get-Help** “. Šī komanda piekļūst palīdzības failiem jūsu datorā un pēc tam sniedz visu pieejamo informāciju. Lai to aktivizētu, apvienojiet „Get-Help“ ar komandu, kuras sintaksi vēlaties apskatīt.

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

### 4. Get-Process

Lai ātri pārbaudītu sistēmā pašlaik aktīvo lietojumprogrammu, programmu un procesu sarakstu, varat izmantot komandu **„Get-Process** “. Ja norādīsiet konkrētu lietojumprogrammu, saņemsiet papildu informāciju par šo konkrēto lietojumprogrammu.

```shell
Get-Process
```

### 5. Get-Service

Komanda **„Get-Service** “ darbojas līdzīgi kā cmdlet „Get-Process“. Tomēr tā atšķiras ar to, ka sniedz informāciju par visiem aktīvajiem pakalpojumiem. Ja vēlaties iegūt informāciju par konkrētu pakalpojumu vai noteiktu pakalpojumu kategoriju, varat viegli precizēt savu pieprasījumu.

```shell
Get-Service
```

### 6. Pārtraukt procesu

Jūs varat izmantot arī dažādas PowerShell komandas, lai apturētu procesus, izmantojot komandu rindu. Viena no iespējām ir komanda **„Stop-Process** “. Attiecīgo procesu varat norādīt pēc nosaukuma, identifikatora vai citiem atribūtiem. Lūk, piemērs:

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

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

Izmantojot opciju -Confirm, tiek pieprasīts apstiprinājums komandai. Komanda -PassThru pieprasa apstiprinājumu par procesa apturēšanu. Tas nenotiek automātiski.

### 7. Pārvērst HTML

Lai ātri identificētu problēmas vai iespējamās komplikācijas, ļoti noderīgs ir skaidrs attēlojums. To var panākt, izmantojot komandu **„ConvertTo-HTML“**, kas pārvērš PowerShell komandu izvadi HTML failā. Tādējādi informācija tiek attēlota lietotājam draudzīgā kolonnu formātā. Komandas struktūra parasti izskatās šādi:

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

### 8. ConvertTo-Xml

Ja jums ir nepieciešams konkrēta objekta attēlojums XML formātā, varat rīkoties līdzīgi. To var izdarīt, izmantojot komandu **„ConvertTo-Xml** “. Turpmākajā piemērā tiek konvertēts pašreizējais datums XML formātā:

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

### 9. Kur-objekts

Lai filtrētu cmdlet rezultātu, varat izmantot komandu **„Where-Object** “. Izpildot komandu, bieži vien tiek atgriezti daudzi objekti, kuros ir vairāk informācijas, nekā jums nepieciešams. Izmantojot komandu „Where-Object“ kopā ar cauruli, varat parādīt tikai konkrēto informāciju, kuru meklējat. Piemēram, ja vēlaties apskatīt pakalpojumus, kas izveidoti vai atjaunināti šogad, to varat izdarīt šādi:

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

### 10. Vēsture

Lai uzskaitītu visas PowerShell komandas, kuras esat ievadījis sesijas laikā, izmantojiet cmdlet **Get-History**. Lai uzskaitītu visas PowerShell komandas:

```shell
Get-History
```

Izmantojot šo specifikāciju, tiek izsaukta tikai pēdējās desmit PowerShell komandas:

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

### 11. Vēstures dzēšana

Varat arī dzēst izmantoto PowerShell komandu sarakstu. Lai dzēstu visus ierakstus, izmantojiet cmdlet **Clear-History**:

```shell
Clear-History
```

Lai dzēstu noteiktas PowerShell komandas, vienkārši pievienojiet atbilstošos parametrus. Šāds ievadījums dzēš visas PowerShell komandas, kurās ir vārds „Help“ vai kuras beidzas ar vārdu „Syntax“.

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

### 12. Pievienot vēsturi

Sesijai var pievienot arī PowerShell komandas. Tas ļauj tās vēlāk atkal izsaukt. Šim nolūkam paredzētais cmdlet ir **Add-History**.

```shell
Add-History
```

### 13. Izvades fails

Lai saglabātu PowerShell komandu izvadi datorā, izmantojiet cmdletu **„Out-File** “. Tas saglabā PowerShell komandas neformātētā teksta failā norādītajā ceļā.

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

### 14. Kopēt objektu

PowerShell vidē varat arī kopēt elementus un saglabāt kopiju citā vietā. Izmantojiet komandu **„Copy-Item“** un norādiet direktoriju, kurā kopija ir jāsaglabā. Tas darbojas šādi:

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

### 15. Get-ChildItem

Lai iegūtu objektus no vienas vai vairākām uzglabāšanas vietām, varat izmantot komandu **„Get-ChildItem** “. Ja ir apakšelementi, tie arī tiks parādīti. Pēc noklusējuma šī komanda uzrāda atribūtus, pēdējās izmaiņas laiku, faila izmēru un elementa nosaukumu. Ja uzglabāšanas vieta ir tukša, izvade netiek parādīta.

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

Atribūti tiek parādīti zem rindas „Režīms”. Šādas īpašības ir visbiežāk sastopamas:

- a (arhīvs)
- d (katalogs)
- h (slēpts)
- l (saite)
- r (tikai lasīšanai)
- s (sistēma)

### 16. Iestatīt Authenticode parakstu

Lai aizsargātu savus failus, varat tiem pievienot Authenticode parakstu, izmantojot komandu **„Set-AuthenticodeSignature** “. Tomēr tas darbojas tikai ar failiem, kas atbalsta Subject Interface Package (SIP).

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

### 17. Invoke-Item

Lai veiktu ar konkrētu failu saistītu standarta darbību, vienkāršākais veids ir izmantot **komandu „Invoke-Item** “. Šī komanda nodrošina, piemēram, ka izpildāmais fails tiek palaists tieši vai ka dokumenta fails tiek atvērts noklusējuma lietojumprogrammā. Šajā piemērā fails tiek atvērts programmā „Microsoft Word“ pēc noklusējuma:

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

### 18. Darba uzsākšana

Lai uzsāktu fona uzdevumu savā lokālajā datorā, varat izmantot šim nolūkam paredzēto komandu. **Komanda „Start-Job“** ļauj izpildīt konkrētu komandu fonā, netraucējot pašreizējo sesiju.

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

## Veiciet darbības, izmantojot šīs PowerShell komandas

Lai gan iepriekš minētās PowerShell komandas galvenokārt bija paredzētas pārskata iegūšanai, izmantojot atbilstošos cmdletus, varat veikt arī dažādas darbības, tādējādi palielinot sistēmas produktivitāti. Turpmāk minētās PowerShell komandas optimizē jūsu darba plūsmu.

### 19. Satura dzēšana

Lai dzēstu elementa saturu, saglabājot pašu elementu, ideāla izvēle ir komanda **„Clear-Content** “. Piemēram, to var izmantot, lai dzēstu tekstu no dokumenta, vienlaikus atstājot pašu failu neskartu. Šo darbību veic šādi:

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

### 20. ForEach-Object

Komanda **„ForEach-Object“** ļauj veikt darbību ar visiem elementiem ievades objektu kopā. Šajā piemērā mēs dalām trīs masīva veselos skaitļus ar 10:

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

### 21. Salīdzināt objektu

Lai izvairītos no dažādu objektu kopu manuālas salīdzināšanas, varat izmantot komandu **„Compare-Object** “. Šī komanda ģenerē atskaiti, kurā tiek izcelti ierakstu atšķirības. Pirmais ieraksts kalpo kā atsauces objekts, bet otrais ieraksts — kā atšķirību objekts. Jūs varat norādīt, kurus faktorus salīdzināt, un, ja šī informācija netiek norādīta, tiks salīdzināti tikai teksta rezultāti. Izvade ir sadalīta īpašībās, kas parādās tikai atsauces objektā (&lt;), un īpašībās, kas parādās tikai atšķirību objektā (&gt;). Šajā piemērā failā document1.txt ir vērtības Berlin, London un Paris. Failā Document2.txt ir vērtības Berlin, Vienna un 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		<==
```

Saturs, kas atrodas abos dokumentos (šajā gadījumā „Berlīne“), pēc noklusējuma netiek parādīts.

### 22. Jauns objekts

Viena no noderīgākajām PowerShell komandām ir **New-Object**. Šo cmdlet var izmantot, lai izveidotu objektu no .NET Framework vai Component Object Model (COM). Piemēram, ja vēlaties izveidot System.Version objektu ar konstruktoru „1.2.3.4“, komanda tiek izpildīta šādi:

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

### 23. Izvēlēties objektu

Izmantojiet komandu **„Select-Object“**, lai atlasītu objektu vai objektu grupu, kam ir jūsu definētās īpašības. Šim nolūkam varat norādīt šādus parametrus:

- Pirmkārt
- Pēdējais
- Unikāls
- Pāriet
- Rādītājs

Šajā piemērā mēs izmantojam PowerShell komandas „Get-Process“ un „Sort-Object“, lai parādītu trīs procesus, kas ievades brīdī patērē visvairāk atmiņas.

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

### 24. Iestatīt saīsinājumu

Windows saīsnes ir noderīgas, lai darbības veiktu vēl ātrāk. Arī PowerShell piedāvā šo iespēju. Ar cmdletu **„Set-Alias“** varat definēt saīsni dažādām PowerShell komandām. Turpmākajā piemērā mēs izveidojam saīsni „ci“ komandai „Get-ChildItem“ pašreizējai sesijai.

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

### 25. Set-Location

Lai mainītu darba atmiņas atrašanās vietu, izmantojiet komandu **„Set-Location** “. Kā jaunas atrašanās vietas var norādīt direktorijus, apakšdirektorijus, reģistra ierakstus vai pakalpojumu sniedzēju ceļus. Turpmākajā piemērā kā pašreizējo uzglabāšanas vietu norādām disku C:

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

### 26. Set-Service

Izmantojot komandu **„Set-Service“**, varat veikt darbības ar pakalpojumu, kā arī to sākt, apturēt vai pārtraukt. Ir iespējams arī mainīt pakalpojuma īpašības. Turpmākajā piemērā mēs mainām pakalpojuma parādīto nosaukumu no „New Workstation“ uz „Old Workstation“.

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

### 27. Iestatīt laika zonu

Lai mainītu sistēmas laika zonu, vislabāk izmantot komandu **„Set-TimeZone** “. Lai kā jauno sistēmas laiku iestatītu koordinēto universālo laiku, izmantojiet šo komandu:

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

### 28. Datoru pārstartēt

Jūs varat pārstartēt operētājsistēmu savā lokālajā datorā vai attālinātā datorā, izmantojot atbilstošo PowerShell komandu **Restart-Computer**. To var izpildīt šādi:

Jūsu datoram:

```shell
Restart-Computer
```

Atsevišķiem datoriem jūsu tīklā:

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

### 29. Pakalpojuma atkārtota palaišana

Lai apturētu un atkārtoti palaistu pakalpojumu, izmantojot PowerShell komandas, piemērotākais cmdlet ir **Restart-Service**. Piemēram, varat atkārtoti palaist visus pakalpojumus, kuru nosaukums sākas ar „Net“:

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

### 30. Iztukšot atkritumu grozu

Atkritumu grozu vajadzētu regulāri iztukšot, ko var izdarīt arī ar PowerShell palīdzību. Komanda ir **Clear-RecycleBin**.

```shell
Clear-RecycleBin
```

### 31. Get-ComputerInfo

Komandu **„Get-ComputerInfo“** izmanto, lai iegūtu sistēmas un operētājsistēmas īpašības.

```shell
Get-ComputerInfo
```

### 32. Pārvietot objektu

Ja jums ir nepieciešams pārvietot objektu no vienas vietas uz citu, jūsu rīcībā ir vairākas PowerShell komandas. Tomēr visbiežāk izmantotā opcija ir **Move-Item**. Šajā piemērā mēs pārvietojam failu old.txt no C: diska uz D:\\Temp direktoriju, vienlaikus pārdēvējot to par new.txt.

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

## Uzraudzība un kļūdu novēršana, izmantojot atbilstošas PowerShell komandas

PowerShell komandas, kas ļauj veikt sistēmas uzraudzību un pārbaudi, ir ārkārtīgi noderīgas, jo īpaši, testējot jauna tīkla veiktspēju reālos apstākļos. Šiem mērķiem īpaši noderīgas ir šādas PowerShell komandas.

### 33. Debug-Process

Debugging ir svarīgs process, lai nodrošinātu, ka visi iestatījumi un procesi darbojas bez kļūdām. Lai to izdarītu, ir jālejupielādē un jākonfigurē atbilstošie debuggeri. Kad tas ir izdarīts, izmantojiet komandu **„Debug-Process** “. Turpmākajā piemērā mēs izmantojam debuggeri programmai Explorer:

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

Lai vienlaikus atkļūdotu vairākus procesus, vienkārši atdaliet tos ar komatiem.

### 34. Iespējot PSBreakpoint

Lai aktivizētu noteiktus pārtraukuma punktus, izmantojiet komandu **„Enable-PSBreakpoint** “. No tehniskā viedokļa tas nosaka cmdlet vērtību kā „true“. Lai aktivizētu visus pārtraukuma punktus pašreizējā sesijā, izmantojiet šīs PowerShell komandas:

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

Izmanto šo komandu, lai aktivizētu pārtraukuma punktus, izmantojot to identifikatorus:

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

### 35. Atcelt PSBreakpoint

Lai atkal atspēkotu PowerShell pārtraukuma punktus, šim nolūkam piemērota ir cmdlet **Disable-PSBreakpoint**. Tehniskā ziņā komandas Enable-PSBreakpoint vērtība tiek iestatīta uz „false“. Lai atspēkotu pārtraukuma punktu ar ID 0, ievadiet šādu komandu:

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

### 36. Get-Counter

Windows ierīcēm to veiktspējas datus var iegūt, izmantojot PowerShell. Šim uzdevumam piemērota komanda ir **Get-Counter**, ko var izmantot gan vietējā datorā, gan attālos datoros. Turpmākajā piemērā mēs iegūstam datus no vietējā datora:

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

### 37. Ieslēgšana–Miega režīms

Skripta vai sesijas apturēšana var būt ļoti svarīga, jo īpaši sistēmas pārslodzes gadījumos. Šim nolūkam PowerShell piedāvā komandu **Start-Sleep**, kas ļauj norādīt laiku, uz kādu darbības ir jāaptur. Turpmākajā piemērā izpilde tiek apturēta uz divām sekundēm:

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

### 38. Test-Path

Izmantojiet komandu **„Test-Path“**, lai pārbaudītu, vai ir pieejami visi konkrētā ceļa elementi. Iespējamie rezultāti ir „True“ vai „False“.

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

### 39. Savienojuma pārbaude

Tīkla savienojamību savā tīklā var novērtēt arī ar PowerShell palīdzību. To var izdarīt, izmantojot komandu **„Test-Connection“**, kas nosūta ICMP atbalss pieprasījuma paketes norādītajiem saņēmējiem un gaida atbildes, izmantojot interneta vadības ziņojumu protokolu (ICMP). Šajā piemērā mēs nosūtām pieprasījumu uz Server02, izmantojot IPv6 protokolu.

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

### 40. Get-WinEvent

Ja jums ir nepieciešams apskatīt vienu vai vairākus notikumu žurnālus, jūsu rīcībā ir dažādas PowerShell komandas. Praktiskākā cmdlet šim nolūkam ir **Get-WinEvent**. Lai iegūtu visus žurnālus no jūsu lokālā datora, varat izmantot šādu komandu:

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


This is a markdown version of: [https://www.ionos.com/lv-lv/digitalguide/serveris/konfiguracija/powershell-komandas/](https://www.ionos.com/lv-lv/digitalguide/serveris/konfiguracija/powershell-komandas/) for AI/LLM consumption.