Naudodami tinkamas „Po­werS­hell“ komandas, galėsite tiksliai taikyti modulius. Šias gerai or­ga­ni­zuo­tas komandas galima dar labiau pri­tai­ky­ti pagal poreikius, naudojant pa­pil­do­mus pa­ra­met­rus. Pa­tei­kia­me 40 svar­biau­sių „Po­werS­hell“ komandų, kad ga­lė­tu­mė­te op­ti­ma­liai dirbti savo sistemoje ar tinkle.

Kas yra „Po­werS­hell“ komanda?

„Po­werS­hell“, kuris yra įdiegtas jau nuo „Windows 7“ versijos, leidžia įvesti „Po­werS­hell“ komandas, kurias vėliau vykdo „Windows“. Be ko­man­di­nės eilutės „cmd“ komandų, yra daugybė kitų komandų arba cmdletų, kurias supranta tik pats „Po­werS­hell“. Šie cmdletai susideda iš veiks­ma­žo­džio ir daik­ta­var­džio, kuriuos skiria brūkšnys. Be to, šias „Po­werS­hell“ komandas galima išplėsti pa­pil­do­mais pa­ra­met­rais, at­skir­tais tar­pe­liais. „Po­werS­hell“ nau­din­gu­mas ne­ap­si­ri­bo­ja tik ad­mi­nist­ra­to­riais; jis taip pat yra ne­pa­kei­čia­mas prog­ra­ma­vi­mo srityje. Turint gausybę iš anksto įdiegtų „Po­werS­hell“ komandų, mes su­pa­žin­din­si­me jus su svar­biau­sio­mis iš jų.

Svar­biau­sios „Po­werS­hell“ komandos

Naudodami „Po­werS­hell“ komandas, vos keliais įvedimais galite atlikti daugybę ad­mi­nist­ra­vi­mo užduočių. Tarp pag­rin­di­nių komandų, kurias tik­riau­siai naudosite daž­niau­siai, yra tos, kurios suteikia pirminį tinklo struk­tū­ros apžvalgą, pateikia kitų „Po­werS­hell“ komandų sąrašą, padeda atlikti svar­biau­sius saugumo nu­sta­ty­mus ir leidžia atlikti naudingas analizes. Štai keletas svar­biau­sių „Po­werS­hell“ komandų, kurias tu­rė­tu­mė­te išmanyti:

1. Get-Module -All

Norėdami su­si­da­ry­ti bendrą vaizdą apie visus im­por­tuo­tus „Po­werS­hell“ modulius, naudokite komandą „Get-Module -All“.

Get-Module -All
shell

2. Get-Command

Yra gausybė iš anksto apibrėžtų „Po­werS­hell“ komandų. Norėdami su­si­pa­žin­ti su šiuo metu pri­ei­na­mo­mis „Po­werS­hell“ ko­man­do­mis, tiesiog naudokite komandą „Get-Command “. Ši komanda aiškiai išvardys visas galimas ope­ra­ci­jas ir pateiks glaustus pa­aiš­ki­ni­mus apie kiekvieną ati­tin­ka­mą cmdlet. Tai galioja net ir tuo atveju, jei esate įdiegę pa­pil­do­mus modulius.

Get-Command
shell

3. Pagalba

Pirmiau aprašytas „Get-Command“ sąrašas suteikia bendrą apžvalgą; norėdami gauti iš­sa­mes­nės in­for­ma­ci­jos apie komandą ir jos parinktis, naudokite „Get-Help“ komandą. Ši komanda pasiekia jūsų kom­piu­te­ry­je esančius pagalbos failus ir pateikia visą turimą in­for­ma­ci­ją. Norėdami ją aktyvuoti, sujunkite „Get-Help“ su komanda, kurios sintaksę norite per­žiū­rė­ti.

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

4. Get-Process

Norėdami greitai per­žiū­rė­ti sąrašą šiuo metu jūsų sistemoje vei­kian­čių programų, taikomųjų programų ir procesų, galite naudoti komandą „Get-Process “. Jei nu­ro­dy­si­te konkrečią programą, gausite pa­pil­do­mos in­for­ma­ci­jos apie tą programą.

Get-Process
shell

5. Get-Service

Komanda „Get-Service “ veikia panašiai kaip cmdletas „Get-Process“. Tačiau ji iš­si­ski­ria tuo, kad pateikia in­for­ma­ci­ją apie visas aktyvias paslaugas. Jei norite gauti in­for­ma­ci­ją apie konkrečią paslaugą arba tam tikrą paslaugų ka­te­go­ri­ją, galite lengvai pa­tiks­lin­ti savo užklausą.

Get-Service
shell

6. Su­stab­dy­ti procesą

Taip pat galite naudoti įvairias „Po­werS­hell“ komandas, kad su­stab­dy­tu­mė­te procesus per komandų eilutę. Viena iš galimybių – komanda „Stop-Process “. Ati­tin­ka­mą procesą galite nurodyti pagal pa­va­di­ni­mą, ID arba kitus atributus. Štai pavyzdys:

Stop-Process -Name "processname"
shell
Stop-Process -Id 3582 -Confirm -PassThru
shell

Naudojant parametrą -Confirm prašoma pa­tvir­tin­ti komandą. Komanda -PassThru prašo pa­tvir­tin­ti su­stab­dy­tą procesą. Tai nevyksta au­to­ma­tiš­kai.

7. Kon­ver­tuo­ti į HTML

Norint greitai nustatyti problemas ar galimas komp­li­ka­ci­jas, labai praverčia aiškus vaizdas. Tai galima pasiekti naudojant komandą „ConvertTo-HTML“, kuri Po­werS­hell komandų išvestį kon­ver­tuo­ja į HTML failą. Tokiu būdu in­for­ma­ci­ja pa­tei­kia­ma patogiu stulpelių formatu. Komandos struktūra paprastai atrodo taip:

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

8. Kon­ver­tuo­ti į XML

Jei norite gauti konk­re­taus objekto atvaizdą XML formatu, galite elgtis panašiai. Tai galima padaryti naudojant komandą „ConvertTo-Xml “. Toliau pa­teik­ta­me pavyzdyje esama data kon­ver­tuo­ja­ma į XML formatą:

Get-Date | ConvertTo-Xml
shell

9. Kur-objektas

Naudodami komandą „Where-Object“ galite filtruoti cmdlet komandos rezultatą. Vykdydami komandą dažnai gaunate daug objektų, kuriuose yra daugiau in­for­ma­ci­jos, nei jums reikia. Naudodami „Where-Object“ kartu su vamzdeliu, galite rodyti tik tą in­for­ma­ci­ją, kurios ieškote. Pa­vyz­džiui, jei norite per­žiū­rė­ti šiais metais sukurtas arba at­nau­jin­tas paslaugas, tai galite padaryti taip:

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

10. Istorijos peržiūra

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

Get-History
shell

Pagal šią spe­ci­fi­ka­ci­ją bus vykdomos tik pas­ku­ti­nės dešimt „Po­werS­hell“ komandų:

Get-History -Count 10
shell

11. Išvalyti istoriją

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

Clear-History
shell

Norėdami ištrinti pa­si­rink­tas „Po­werS­hell“ komandas, tiesiog įveskite ati­tin­ka­mus pa­ra­met­rus. Įvedus žemiau pateiktą komandą, bus pa­ša­lin­tos visos „Po­werS­hell“ komandos, kurių pa­va­di­ni­me yra žodis „Help“ arba kurios baigiasi žodžiu „Syntax“.

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

12. Pridėti istoriją

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

Add-History
shell

13. Išvesties failas

Norėdami išsaugoti „Po­werS­hell“ komandų išvestį kom­piu­te­ry­je, naudokite „Out-File“ komandą. Ji išsaugo „Po­werS­hell“ komandas paprasto teksto faile nu­ro­dy­tuo­ju keliu.

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

14. Kopijuoti elementą

„Po­werS­hell“ taip pat galima kopijuoti elementus ir išsaugoti kopiją kitoje vietoje. Naudokite komandą „Copy-Item“ ir nu­ro­dy­ki­te katalogą, kuriame turi būti išsaugota kopija. Tai daroma taip:

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

15. Get-ChildItem

Naudodami komandą „Get-ChildItem“ galite gauti elementus iš vienos ar kelių saugyklų. Jei yra po­e­le­men­tių, jie taip pat bus rodomi. Pagal nu­ma­ty­tuo­sius nu­sta­ty­mus ši komanda pateikia atributus, pas­ku­ti­nio pakeitimo laiko žymą, failo dydį ir elemento pa­va­di­ni­mą. Jei saugykla tuščia, išvestis ne­pa­tei­kia­ma.

Get-ChildItem -Path C:\example
shell

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

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

16. Nustatyti „Au­then­ti­co­de“ parašą

Norėdami apsaugoti savo failus, galite juos pažymėti „Au­then­ti­co­de“ parašu naudodami komandą „Set-Au­then­ti­co­de­Sig­na­tu­re “. Tačiau tai veikia tik su failais, kurie palaiko „Subject Interface Package“ (SIP).

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

17. Invoke-Item

Norint atlikti su konkrečiu failu susijusį stan­dar­ti­nį veiksmą, pa­pras­čiau­sias būdas yra naudoti komandą „Invoke-Item “. Ši komanda užtikrina, pa­vyz­džiui, kad vyk­do­ma­sis failas būtų paleistas tie­sio­giai arba kad dokumento failas būtų ati­da­ry­tas nu­ma­ty­to­je prog­ra­mo­je. Šiame pavyzdyje failas pagal nu­ma­ty­tuo­sius nu­sta­ty­mus ati­da­ro­mas prog­ra­mo­je „Microsoft Word“:

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

18. Pradėti darbą

Norėdami paleisti foninę užduotį savo kom­piu­te­ry­je, galite naudoti tam skirtą komandą. Komanda „Start-Job“ leidžia vykdyti konkrečią komandą fone, ne­truk­dant esamai sesijai.

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

Atlikite veiksmus naudodami šias „Po­werS­hell“ komandas

Nors anksčiau pateiktos „Po­werS­hell“ komandos buvo skirtos dau­giau­sia apžvalgai pateikti, naudojant ati­tin­ka­mus cmdlet’us taip pat galima atlikti įvairius veiksmus, taip pa­di­di­nant sistemos našumą. Toliau pateiktos „Po­werS­hell“ komandos padės su­pa­pras­tin­ti jūsų darbo eigą.

19. Išvalyti turinį

Norint ištrinti elemento turinį, bet išsaugoti patį elementą, komanda „Clear-Content“ yra idealus pa­si­rin­ki­mas. Pa­vyz­džiui, ją galima naudoti norint ištrinti tekstą iš dokumento, paliekant patį failą ne­pa­ki­tu­si. Šis procesas at­lie­ka­mas taip:

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

20. ForEach-Object

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

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

21. Palyginti objektus

Norėdami išvengti rankinio skirtingų objektų rinkinių lyginimo, galite naudoti komandą „Compare-Object “. Ši komanda sukuria ataskaitą, kurioje iš­ski­ria­mos įrašų skirtumai. Pirmasis įrašas veikia kaip atskaitos objektas, o antrasis – kaip skirtumų objektas. Galite nurodyti, kokius veiksnius lyginti; jei ši in­for­ma­ci­ja ne­nu­ro­do­ma, bus lyginami tik eilutės re­zul­ta­tai. Re­zul­ta­tas su­skirs­ty­tas į savybes, kurios pasirodo tik atskaitos objekte (<), ir savybes, kurios pasirodo tik skirtumų objekte (>). Šiame pavyzdyje failas „document1.txt“ turi reikšmes „Berlin“, „London“ ir „Paris“. Failas „Document2.txt“ turi reikšmes „Berlin“, „Vienna“ ir „Amsterdam“.

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

Turinys, kuris pa­si­kar­to­ja abiejuose do­ku­men­tuo­se (šiuo atveju „Berlynas“), pagal nu­ma­ty­tuo­sius nu­sta­ty­mus nerodomas.

22. Naujas objektas

Viena iš nau­din­giau­sių „Po­werS­hell“ komandų yra „New-Object“. Šią komandą galite naudoti, norėdami sukurti objektą iš „.NET Framework“ arba COM (Component Object Model). Pa­vyz­džiui, jei norite sukurti „System.Version“ objektą, kurio konst­ruk­to­riaus eilutė yra „1.2.3.4“, komandą reikia vykdyti taip:

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

23. „Select-Object“

Naudokite komandą „Select-Object“, kad at­rink­tu­mė­te objektą arba objektų grupę, ati­tin­kan­čią jūsų nu­sta­ty­tus pa­ra­met­rus. Šiai komandai galite nurodyti šiuos pa­ra­met­rus:

  • Pirmas
  • Pas­ku­ti­nis
  • Unikalus
  • Pereiti
  • Rodyklė

Šiame pavyzdyje naudojame „Po­werS­hell“ komandas „Get-Process“ ir „Sort-Object“, kad būtų rodomi trys procesai, kurie įvedimo metu naudoja dau­giau­sia atminties.

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

24. Nustatyti aliasą

„Windows“ spar­čio­sios klavišų kom­bi­na­ci­jos yra naudingos, norint veiksmus atlikti dar greičiau. „Po­werS­hell“ taip pat siūlo šią galimybę. Naudodami „Set-Alias“ komandą, galite nustatyti sparčiąją klavišų kom­bi­na­ci­ją įvairioms „Po­werS­hell“ komandoms. Toliau pa­teik­ta­me pavyzdyje da­bar­ti­nei sesijai komandai „Get-ChildItem“ sukuriame aliasą „ci“.

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

25. Nustatyti vietą

Norėdami pakeisti darbo atminties vietą, naudokite komandą „Set-Location “. Galimos naujos vietos – tai katalogai, pa­ka­ta­lo­giai, registro vietos arba teikėjo keliai. Toliau pa­teik­ta­me pavyzdyje kaip dabartinę saugojimo vietą nurodome diską „C:“:

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

26. Nustatyti paslaugą

Naudodami komandą „Set-Service“ galite valdyti paslaugą, ją paleisti, su­stab­dy­ti arba pri­stab­dy­ti. Taip pat galima keisti paslaugos savybes. Toliau pa­teik­ta­me pavyzdyje paslaugos rodomąjį pa­va­di­ni­mą keičiame iš „New Worksta­tion“ į „Old Worksta­tion“.

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

27. Nustatyti laiko juostą

Norėdami pakeisti sistemos laiko juostą, naudokite komandą „Set-TimeZone “. Norėdami nustatyti ko­or­di­nuo­tą pasaulinį laiką kaip naują sistemos laiką, naudokite šią komandą:

Set-TimeZone -Id "UTC"
shell

28. Kom­piu­te­rio per­kro­vi­mas

Operacinę sistemą savo kom­piu­te­ry­je arba nuo­to­li­nio kom­piu­te­ry­je galite perkrauti naudodami ati­tin­ka­mą „Po­werS­hell“ komandą „Restart-Computer“. Ji vykdoma taip:

Jūsų kom­piu­te­ry­je:

Restart-Computer
shell

Tam tikriems kom­piu­te­riams jūsų tinkle:

Restart-Computer -ComputerName Server01, Server03
shell

29. Paslaugos pa­lei­di­mas iš naujo

Norint su­stab­dy­ti ir iš naujo paleisti paslaugą naudojant „Po­werS­hell“ komandas, reikia naudoti komandą „Restart-Service “. Pa­vyz­džiui, galite iš naujo paleisti visas paslaugas, kurių pa­va­di­ni­mai prasideda žodžiu „Net“:

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

30. Išvalyti šiukš­lia­dė­žę

Šiukš­lia­dė­žę reikėtų re­gu­lia­riai iš­tuš­tin­ti, o tai galima padaryti ir nau­do­jan­tis „Po­werS­hell“. Komanda yra „Clear-Re­cyc­le­Bin“.

Clear-RecycleBin
shell

31. Get-Com­pu­te­rIn­fo

Komanda „Get-Com­pu­te­rIn­fo“ naudojama sistemos ir ope­ra­ci­nės sistemos savybėms gauti.

Get-ComputerInfo
shell

32. Perkelti elementą

Jei reikia perkelti elementą iš vienos vietos į kitą, galite pa­si­nau­do­ti keliomis „Po­werS­hell“ ko­man­do­mis. Vis dėlto daž­niau­siai naudojama komanda yra „Move-Item“. Šiame pavyzdyje per­ke­lia­me failą „old.txt“ iš disko C: į katalogą „D:\Temp“ ir tuo pačiu pa­kei­čia­me jo pa­va­di­ni­mą į „new.txt“.

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

Ste­bė­ji­mas ir klaidų šalinimas naudojant ati­tin­ka­mas „Po­werS­hell“ komandas

„Po­werS­hell“ komandos, lei­džian­čios stebėti ir tikrinti sistemą, yra ypač vertingos, ypač kai naujo tinklo našumas tik­ri­na­mas realiomis sąlygomis. Šiems tikslams ypač naudingos šios „Po­werS­hell“ komandos.

33. Debug-Process

De­bug­gin­gas yra svarbus procesas, už­tik­ri­nan­tis, kad visi nu­sta­ty­mai ir procesai veiktų be klaidų. Tam reikia at­si­siųs­ti ir su­kon­fi­gū­ruo­ti ati­tin­ka­mus de­bug­ge­rius. Tai atlikus, naudokite komandą „Debug-Process “. Toliau pa­teik­ta­me pavyzdyje naudojame „Explorer“ debuggerį:

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

Norėdami derinti kelis procesus vienu metu, tiesiog at­skir­ki­te juos kab­le­liais.

34. Įjungti PS­Bre­ak­point

Norėdami įjungti tam tikrus su­stab­dy­mo taškus, naudokite komandą „Enable-PS­Bre­ak­point “. Techniniu požiūriu tai nustato cmdlet reikšmę „true“. Naudokite šias „Po­werS­hell“ komandas, kad įjung­tu­mė­te visus su­stab­dy­mo taškus da­bar­ti­nė­je sesijoje:

Get-PSBreakpoint | Enable-PSBreakpoint
shell

Naudokite šią komandą, kad ak­ty­vuo­tu­mė­te su­stab­dy­mo taškus pagal jų ID:

Enable-PSBreakpoint -ID 0, 3, 4
shell

35. Išjungti-PS­Bre­ak­point

Norėdami vėl išjungti „Po­werS­hell“ su­stab­dy­mo taškus, naudokite tam skirtą komandą „Disable-PS­Bre­ak­point“. Techniniu požiūriu, komandos „Enable-PS­Bre­ak­point“ reikšmė nustatoma kaip „false“. Norėdami išjungti su­stab­dy­mo tašką su ID 0, įveskite šią komandą:

Disable-PSBreakpoint -Id 0
shell

36. Get-Counter

„Windows“ įrenginių našumo duomenis galima gauti naudojant „Po­werS­hell“. Šiai užduočiai atlikti tinka komanda „Get-Counter“, kurią galima naudoti tiek vie­ti­nia­me, tiek nuo­to­li­niuo­se kom­piu­te­riuo­se. Toliau pa­teik­ta­me pavyzdyje duomenys gaunami iš vietinio kom­piu­te­rio:

Get-Counter -ListSet *
shell

37. Įjungti-Miegas

Skripto ar sesijos su­stab­dy­mas gali būti itin svarbus, ypač kai sistema yra perkrauta. Šiam tikslui „Po­werS­hell“ siūlo komandą „Start-Sleep“, lei­džian­čią nurodyti, kiek laiko veikla turi būti su­stab­dy­ta. Toliau pa­teik­ta­me pavyzdyje vykdymas su­stab­do­mas dviem sekundėms:

Start-Sleep -Seconds 2
shell

38. Testavimo maršrutas

Naudokite komandą „Test-Path“, kad pa­tik­rin­tu­mė­te, ar yra visi konk­re­taus kelio elementai. Galimi re­zul­ta­tai yra „True“ arba „False“.

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

39. Ryšio pa­tik­ri­ni­mas

Tinklo ryšį savo tinkle taip pat galite įvertinti naudodami „Po­werS­hell“. Tai daroma siunčiant ICMP atgarsio užklausos paketus nu­ro­dy­tiems ad­re­sa­tams naudojant komandą „Test-Con­nec­tion“, kuri prašo atsakymų per interneto valdymo pranešimų protokolą (ICMP). Mūsų pavyzdyje užklausą siunčiame į „Server02“ naudodami IPv6 protokolą.

Test-Connection -TargetName Server02 -IPv6
shell

40. Get-WinEvent

Jei norite per­žiū­rė­ti vieną ar kelis įvykių žurnalus, galite pa­si­nau­do­ti įvai­rio­mis „Po­werS­hell“ ko­man­do­mis. Šiam tikslui la­biau­siai tinka komandėlė „Get-WinEvent“. Norėdami gauti visus žurnalus iš savo vietinio kom­piu­te­rio, galite naudoti šią komandą:

Get-WinEvent -ListLog *
shell
Go to Main Menu