# Kas yra „PowerShell“ komandos? 40 svarbiausių komandų apžvalga

Naudodami tinkamas „PowerShell“ komandas, galėsite tiksliai taikyti modulius. Šias gerai organizuotas komandas galima dar labiau pritaikyti pagal poreikius, naudojant papildomus parametrus. Pateikiame 40 svarbiausių „PowerShell“ komandų, kad galėtumėte optimaliai dirbti savo sistemoje ar tinkle.

## Kas yra „PowerShell“ komanda?

„PowerShell“, kuris yra įdiegtas jau nuo „Windows 7“ versijos, leidžia įvesti „PowerShell“ komandas, kurias vėliau vykdo „Windows“. Be komandinės eilutės „cmd“ komandų, yra daugybė kitų komandų arba cmdletų, kurias supranta tik pats „PowerShell“. Šie cmdletai **susideda iš veiksmažodžio ir daiktavardžio**, kuriuos skiria brūkšnys. Be to, šias „PowerShell“ komandas galima išplėsti **papildomais parametrais**, atskirtais tarpeliais. „PowerShell“ naudingumas neapsiriboja tik administratoriais; jis taip pat yra nepakeičiamas programavimo srityje. Turint gausybę iš anksto įdiegtų „PowerShell“ komandų, mes supažindinsime jus su svarbiausiomis iš jų.

## Svarbiausios „PowerShell“ komandos

Naudodami „PowerShell“ komandas, vos keliais įvedimais galite atlikti daugybę administravimo užduočių. Tarp pagrindinių komandų, kurias tikriausiai naudosite dažniausiai, yra tos, kurios suteikia pirminį tinklo struktūros apžvalgą, pateikia kitų „PowerShell“ komandų sąrašą, padeda atlikti svarbiausius saugumo nustatymus ir leidžia atlikti naudingas analizes. Štai keletas svarbiausių „PowerShell“ komandų, kurias turėtumėte išmanyti:

### 1. Get-Module -All

Norėdami susidaryti bendrą vaizdą apie visus importuotus „PowerShell“ modulius, naudokite komandą **„Get-Module -All**“.

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

### 2. Get-Command

Yra gausybė iš anksto apibrėžtų „PowerShell“ komandų. Norėdami susipažinti su šiuo metu prieinamomis „PowerShell“ komandomis, tiesiog naudokite komandą **„Get-Command** “. Ši komanda aiškiai išvardys visas galimas operacijas ir pateiks glaustus paaiškinimus apie kiekvieną atitinkamą cmdlet. Tai galioja net ir tuo atveju, jei esate įdiegę papildomus modulius.

```shell
Get-Command
```

### 3. Pagalba

Pirmiau aprašytas „Get-Command“ sąrašas suteikia bendrą apžvalgą; norėdami gauti išsamesnės informacijos apie komandą ir jos parinktis, naudokite **„Get-Help“** komandą. Ši komanda pasiekia jūsų kompiuteryje esančius pagalbos failus ir pateikia visą turimą informaciją. Norėdami ją aktyvuoti, sujunkite „Get-Help“ su komanda, kurios sintaksę norite peržiūrėti.

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

### 4. Get-Process

Norėdami greitai peržiūrėti sąrašą šiuo metu jūsų sistemoje veikiančių programų, taikomųjų programų ir procesų, galite naudoti komandą **„Get-Process** “. Jei nurodysite konkrečią programą, gausite papildomos informacijos apie tą programą.

```shell
Get-Process
```

### 5. Get-Service

Komanda **„Get-Service** “ veikia panašiai kaip cmdletas „Get-Process“. Tačiau ji išsiskiria tuo, kad pateikia informaciją apie visas aktyvias paslaugas. Jei norite gauti informaciją apie konkrečią paslaugą arba tam tikrą paslaugų kategoriją, galite lengvai patikslinti savo užklausą.

```shell
Get-Service
```

### 6. Sustabdyti procesą

Taip pat galite naudoti įvairias „PowerShell“ komandas, kad sustabdytumėte procesus per komandų eilutę. Viena iš galimybių – komanda **„Stop-Process** “. Atitinkamą procesą galite nurodyti pagal pavadinimą, ID arba kitus atributus. Štai pavyzdys:

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

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

Naudojant parametrą -Confirm prašoma patvirtinti komandą. Komanda -PassThru prašo patvirtinti sustabdytą procesą. Tai nevyksta automatiškai.

### 7. Konvertuoti į HTML

Norint greitai nustatyti problemas ar galimas komplikacijas, labai praverčia aiškus vaizdas. Tai galima pasiekti naudojant komandą **„ConvertTo-HTML“**, kuri PowerShell komandų išvestį konvertuoja į HTML failą. Tokiu būdu informacija pateikiama patogiu stulpelių formatu. Komandos struktūra paprastai atrodo taip:

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

### 8. Konvertuoti į XML

Jei norite gauti konkretaus objekto atvaizdą XML formatu, galite elgtis panašiai. Tai galima padaryti naudojant komandą **„ConvertTo-Xml** “. Toliau pateiktame pavyzdyje esama data konvertuojama į XML formatą:

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

### 9. Kur-objektas

Naudodami komandą **„Where-Object“** galite filtruoti cmdlet komandos rezultatą. Vykdydami komandą dažnai gaunate daug objektų, kuriuose yra daugiau informacijos, nei jums reikia. Naudodami „Where-Object“ kartu su vamzdeliu, galite rodyti tik tą informaciją, kurios ieškote. Pavyzdžiui, jei norite peržiūrėti šiais metais sukurtas arba atnaujintas paslaugas, tai galite padaryti taip:

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

### 10. Istorijos peržiūra

Jei norite peržiūrėti visas „PowerShell“ komandas, kurias įvedėte per sesiją, naudokite komandą **„Get-History** “. Norėdami peržiūrėti visas „PowerShell“ komandas:

```shell
Get-History
```

Pagal šią specifikaciją bus vykdomos tik paskutinės dešimt „PowerShell“ komandų:

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

### 11. Išvalyti istoriją

Taip pat galite ištrinti naudotų „PowerShell“ komandų sąrašą. Norėdami pašalinti visus įrašus, naudokite komandą **„Clear-History**“:

```shell
Clear-History
```

Norėdami ištrinti pasirinktas „PowerShell“ komandas, tiesiog įveskite atitinkamus parametrus. Įvedus žemiau pateiktą komandą, bus pašalintos visos „PowerShell“ komandos, kurių pavadinime yra žodis „Help“ arba kurios baigiasi žodžiu „Syntax“.

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

### 12. Pridėti istoriją

Taip pat galima į sesiją įtraukti „PowerShell“ komandas. Tai leidžia jas vėliau vėl iškviesti. Tam skirta komanda yra **„Add-History**“.

```shell
Add-History
```

### 13. Išvesties failas

Norėdami išsaugoti „PowerShell“ komandų išvestį kompiuteryje, naudokite **„Out-File“** komandą. Ji išsaugo „PowerShell“ komandas paprasto teksto faile nurodytuoju keliu.

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

### 14. Kopijuoti elementą

„PowerShell“ taip pat galima kopijuoti elementus ir išsaugoti kopiją kitoje vietoje. Naudokite komandą **„Copy-Item“** ir nurodykite katalogą, kuriame turi būti išsaugota kopija. Tai daroma taip:

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

### 15. Get-ChildItem

Naudodami komandą **„Get-ChildItem“** galite gauti elementus iš vienos ar kelių saugyklų. Jei yra poelementių, jie taip pat bus rodomi. Pagal numatytuosius nustatymus ši komanda pateikia atributus, paskutinio pakeitimo laiko žymą, failo dydį ir elemento pavadinimą. Jei saugykla tuščia, išvestis nepateikiama.

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

Atributai rodomi po eilute „Režimas“. Dažniausiai pasitaiko šios savybės:

- a (archyvas)
- d (katalogas)
- h (paslėptas)
- l (nuoroda)
- r (tik skaityti)
- s (sistema)

### 16. Nustatyti „Authenticode“ parašą

Norėdami apsaugoti savo failus, galite juos pažymėti „Authenticode“ parašu naudodami komandą **„Set-AuthenticodeSignature** “. Tačiau tai veikia tik su failais, kurie palaiko „Subject Interface Package“ (SIP).

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

### 17. Invoke-Item

Norint atlikti su konkrečiu failu susijusį standartinį veiksmą, paprasčiausias būdas yra naudoti **komandą „Invoke-Item** “. Ši komanda užtikrina, pavyzdžiui, kad vykdomasis failas būtų paleistas tiesiogiai arba kad dokumento failas būtų atidarytas numatytoje programoje. Šiame pavyzdyje failas pagal numatytuosius nustatymus atidaromas programoje „Microsoft Word“:

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

### 18. Pradėti darbą

Norėdami paleisti foninę užduotį savo kompiuteryje, galite naudoti tam skirtą komandą. **Komanda „Start-Job“** leidžia vykdyti konkrečią komandą fone, netrukdant esamai sesijai.

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

## Atlikite veiksmus naudodami šias „PowerShell“ komandas

Nors anksčiau pateiktos „PowerShell“ komandos buvo skirtos daugiausia apžvalgai pateikti, naudojant atitinkamus cmdlet’us taip pat galima atlikti įvairius veiksmus, taip padidinant sistemos našumą. Toliau pateiktos „PowerShell“ komandos padės supaprastinti jūsų darbo eigą.

### 19. Išvalyti turinį

Norint ištrinti elemento turinį, bet išsaugoti patį elementą, komanda **„Clear-Content“** yra idealus pasirinkimas. Pavyzdžiui, ją galima naudoti norint ištrinti tekstą iš dokumento, paliekant patį failą nepakitusi. Šis procesas atliekamas taip:

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

### 20. ForEach-Object

Komanda **„ForEach-Object“** leidžia atlikti operaciją su visais įvesties objektų rinkinio elementais. Šiame pavyzdyje dalijame tris masyve esančius sveikųjų skaičių iš 10:

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

### 21. Palyginti objektus

Norėdami išvengti rankinio skirtingų objektų rinkinių lyginimo, galite naudoti komandą **„Compare-Object** “. Ši komanda sukuria ataskaitą, kurioje išskiriamos įrašų skirtumai. Pirmasis įrašas veikia kaip atskaitos objektas, o antrasis – kaip skirtumų objektas. Galite nurodyti, kokius veiksnius lyginti; jei ši informacija nenurodoma, bus lyginami tik eilutės rezultatai. Rezultatas suskirstytas į savybes, kurios pasirodo tik atskaitos objekte (&lt;), ir savybes, kurios pasirodo tik skirtumų objekte (&gt;). Šiame pavyzdyje failas „document1.txt“ turi reikšmes „Berlin“, „London“ ir „Paris“. Failas „Document2.txt“ turi reikšmes „Berlin“, „Vienna“ ir „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		<==
```

Turinys, kuris pasikartoja abiejuose dokumentuose (šiuo atveju „Berlynas“), pagal numatytuosius nustatymus nerodomas.

### 22. Naujas objektas

Viena iš naudingiausių „PowerShell“ komandų yra **„New-Object**“. Šią komandą galite naudoti, norėdami sukurti objektą iš „.NET Framework“ arba COM (Component Object Model). Pavyzdžiui, jei norite sukurti „System.Version“ objektą, kurio konstruktoriaus eilutė yra „1.2.3.4“, komandą reikia vykdyti taip:

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

### 23. „Select-Object“

Naudokite komandą **„Select-Object“**, kad atrinktumėte objektą arba objektų grupę, atitinkančią jūsų nustatytus parametrus. Šiai komandai galite nurodyti šiuos parametrus:

- Pirmas
- Paskutinis
- Unikalus
- Pereiti
- Rodyklė

Šiame pavyzdyje naudojame „PowerShell“ komandas „Get-Process“ ir „Sort-Object“, kad būtų rodomi trys procesai, kurie įvedimo metu naudoja daugiausia atminties.

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

### 24. Nustatyti aliasą

„Windows“ sparčiosios klavišų kombinacijos yra naudingos, norint veiksmus atlikti dar greičiau. „PowerShell“ taip pat siūlo šią galimybę. Naudodami **„Set-Alias“** komandą, galite nustatyti sparčiąją klavišų kombinaciją įvairioms „PowerShell“ komandoms. Toliau pateiktame pavyzdyje dabartinei sesijai komandai „Get-ChildItem“ sukuriame aliasą „ci“.

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

### 25. Nustatyti vietą

Norėdami pakeisti darbo atminties vietą, naudokite komandą **„Set-Location** “. Galimos naujos vietos – tai katalogai, pakatalogiai, registro vietos arba teikėjo keliai. Toliau pateiktame pavyzdyje kaip dabartinę saugojimo vietą nurodome diską „C:“:

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

### 26. Nustatyti paslaugą

Naudodami komandą **„Set-Service“** galite valdyti paslaugą, ją paleisti, sustabdyti arba pristabdyti. Taip pat galima keisti paslaugos savybes. Toliau pateiktame pavyzdyje paslaugos rodomąjį pavadinimą keičiame iš „New Workstation“ į „Old Workstation“.

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

### 27. Nustatyti laiko juostą

Norėdami pakeisti sistemos laiko juostą, naudokite komandą **„Set-TimeZone** “. Norėdami nustatyti koordinuotą pasaulinį laiką kaip naują sistemos laiką, naudokite šią komandą:

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

### 28. Kompiuterio perkrovimas

Operacinę sistemą savo kompiuteryje arba nuotolinio kompiuteryje galite perkrauti naudodami atitinkamą „PowerShell“ komandą **„Restart-Computer**“. Ji vykdoma taip:

Jūsų kompiuteryje:

```shell
Restart-Computer
```

Tam tikriems kompiuteriams jūsų tinkle:

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

### 29. Paslaugos paleidimas iš naujo

Norint sustabdyti ir iš naujo paleisti paslaugą naudojant „PowerShell“ komandas, reikia naudoti komandą **„Restart-Service** “. Pavyzdžiui, galite iš naujo paleisti visas paslaugas, kurių pavadinimai prasideda žodžiu „Net“:

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

### 30. Išvalyti šiukšliadėžę

Šiukšliadėžę reikėtų reguliariai ištuštinti, o tai galima padaryti ir naudojantis „PowerShell“. Komanda yra **„Clear-RecycleBin**“.

```shell
Clear-RecycleBin
```

### 31. Get-ComputerInfo

Komanda **„Get-ComputerInfo“** naudojama sistemos ir operacinės sistemos savybėms gauti.

```shell
Get-ComputerInfo
```

### 32. Perkelti elementą

Jei reikia perkelti elementą iš vienos vietos į kitą, galite pasinaudoti keliomis „PowerShell“ komandomis. Vis dėlto dažniausiai naudojama komanda yra **„Move-Item**“. Šiame pavyzdyje perkeliame failą „old.txt“ iš disko C: į katalogą „D:\\Temp“ ir tuo pačiu pakeičiame jo pavadinimą į „new.txt“.

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

## Stebėjimas ir klaidų šalinimas naudojant atitinkamas „PowerShell“ komandas

„PowerShell“ komandos, leidžiančios stebėti ir tikrinti sistemą, yra ypač vertingos, ypač kai naujo tinklo našumas tikrinamas realiomis sąlygomis. Šiems tikslams ypač naudingos šios „PowerShell“ komandos.

### 33. Debug-Process

Debuggingas yra svarbus procesas, užtikrinantis, kad visi nustatymai ir procesai veiktų be klaidų. Tam reikia atsisiųsti ir sukonfigūruoti atitinkamus debuggerius. Tai atlikus, naudokite komandą **„Debug-Process** “. Toliau pateiktame pavyzdyje naudojame „Explorer“ debuggerį:

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

Norėdami derinti kelis procesus vienu metu, tiesiog atskirkite juos kableliais.

### 34. Įjungti PSBreakpoint

Norėdami įjungti tam tikrus sustabdymo taškus, naudokite komandą **„Enable-PSBreakpoint** “. Techniniu požiūriu tai nustato cmdlet reikšmę „true“. Naudokite šias „PowerShell“ komandas, kad įjungtumėte visus sustabdymo taškus dabartinėje sesijoje:

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

Naudokite šią komandą, kad aktyvuotumėte sustabdymo taškus pagal jų ID:

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

### 35. Išjungti-PSBreakpoint

Norėdami vėl išjungti „PowerShell“ sustabdymo taškus, naudokite tam skirtą komandą **„Disable-PSBreakpoint**“. Techniniu požiūriu, komandos „Enable-PSBreakpoint“ reikšmė nustatoma kaip „false“. Norėdami išjungti sustabdymo tašką su ID 0, įveskite šią komandą:

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

### 36. Get-Counter

„Windows“ įrenginių našumo duomenis galima gauti naudojant „PowerShell“. Šiai užduočiai atlikti tinka komanda **„Get-Counter“**, kurią galima naudoti tiek vietiniame, tiek nuotoliniuose kompiuteriuose. Toliau pateiktame pavyzdyje duomenys gaunami iš vietinio kompiuterio:

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

### 37. Įjungti-Miegas

Skripto ar sesijos sustabdymas gali būti itin svarbus, ypač kai sistema yra perkrauta. Šiam tikslui „PowerShell“ siūlo komandą **„Start-Sleep“**, leidžiančią nurodyti, kiek laiko veikla turi būti sustabdyta. Toliau pateiktame pavyzdyje vykdymas sustabdomas dviem sekundėms:

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

### 38. Testavimo maršrutas

Naudokite komandą **„Test-Path“**, kad patikrintumėte, ar yra visi konkretaus kelio elementai. Galimi rezultatai yra „True“ arba „False“.

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

### 39. Ryšio patikrinimas

Tinklo ryšį savo tinkle taip pat galite įvertinti naudodami „PowerShell“. Tai daroma siunčiant ICMP atgarsio užklausos paketus nurodytiems adresatams naudojant komandą **„Test-Connection“**, kuri prašo atsakymų per interneto valdymo pranešimų protokolą (ICMP). Mūsų pavyzdyje užklausą siunčiame į „Server02“ naudodami IPv6 protokolą.

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

### 40. Get-WinEvent

Jei norite peržiūrėti vieną ar kelis įvykių žurnalus, galite pasinaudoti įvairiomis „PowerShell“ komandomis. Šiam tikslui labiausiai tinka komandėlė **„Get-WinEvent**“. Norėdami gauti visus žurnalus iš savo vietinio kompiuterio, galite naudoti šią komandą:

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


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