Z uporabo ustreznih ukazov Po­wer­Shell lahko module upo­ra­blja­te natančno. Te dobro or­ga­ni­zi­ra­ne cmdlete je mogoče dodatno pri­la­go­di­ti z izbirnimi parametri. Pred­sta­vlja­mo vam 40 naj­po­memb­nej­ših ukazov Po­wer­Shell, da boste lahko v svojem sistemu ali omrežju delali čim bolj učin­ko­vi­to.

Kaj je ukaz Po­wer­Shell?

Po­wer­Shell, ki je vgrajen že od ope­ra­cij­ske­ga sistema Windows 7, omogoča vnos ukazov Po­wer­Shell, ki jih nato izvede Windows. Poleg ukazov cmd v ukazni vrstici obstaja še veliko drugih ukazov ali cmdletov, ki jih razume le sam Po­wer­Shell. Ti cmdleti so se­sta­vlje­ni iz glagola in sa­mo­stal­ni­ka, ločenih s po­mi­šlja­jem. Poleg tega lahko te ukaze Po­wer­Shell dopolnite z izbirnimi parametri, ločenimi s presledki. Upo­rab­nost Po­wer­Shell-a sega preko ad­mi­ni­stra­tor­jev; izkaže se kot ne­pre­cen­ljiv tudi na področju razvoja. Med šte­vil­ni­mi vnaprej na­me­šče­ni­mi ukazi Po­wer­Shell-a vas seznanimo z najbolj ključnimi.

Naj­po­memb­nej­ši ukazi Po­wer­Shell

Z ukazi Po­wer­Shell lahko z le nekaj vnosi opravite obsežne ad­mi­ni­stra­tiv­ne naloge. Med osnovnimi ukazi, ki jih boste verjetno naj­po­go­ste­je upo­ra­blja­li, so tisti, ki ponujajo začetni pregled nad strukturo vašega omrežja, pri­ka­zu­je­jo seznam drugih ukazov Po­wer­Shell, pomagajo pri ključnih var­no­stnih na­sta­vi­tvah in omogočajo koristne analize. Tukaj je nekaj naj­po­memb­nej­ših ukazov Po­wer­Shell, s katerimi se morate seznaniti:

1. Get-Module -All

Če želite pridobiti prvi pregled nad vsemi uvoženimi moduli Po­wer­Shell, uporabite ukaz Get-Module -All.

Get-Module -All
shell

2. Get-Command

Na voljo je veliko vnaprej določenih ukazov Po­wer­Shell. Če želite pridobiti pregled trenutno raz­po­lo­žlji­vih ukazov Po­wer­Shell, preprosto uporabite ukaz Get-Command. Ta ukaz bo pregledno prikazal vse možne ukaze in ponudil kratke opise za vsak posamezni cmdlet. To velja tudi, če ste namestili dodatne module.

Get-Command
shell

3. Pomoč

Zgoraj opisani seznam ukazov Get-Command ponuja začetni pregled; za po­drob­nej­še in­for­ma­ci­je o ukazu in njegovih možnostih uporabite ukaz Get-Help. Ta ukaz dostopa do datotek s pomočjo na vašem ra­ču­nal­ni­ku in nato prikaže vse raz­po­lo­žlji­ve in­for­ma­ci­je. Za njegovo ak­ti­vi­ra­nje združite ukaz Get-Help z ukazom, katerega sintakso želite pre­gle­da­ti.

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

4. Get-Process

Če želite hitro pre­gle­da­ti seznam trenutno aktivnih aplikacij, programov in procesov v sistemu, lahko uporabite ukaz Get-Process. Če navedete določeno apli­ka­ci­jo, boste prejeli dodatne in­for­ma­ci­je o tej konkretni apli­ka­ci­ji.

Get-Process
shell

5. Get-Service

Ukaz Get-Service deluje podobno kot ukaz Get-Process. Razlikuje se od njega le v tem, da prikaže podatke o vseh aktivnih storitvah. Če želite pridobiti podatke o določeni storitvi ali določeni ka­te­go­ri­ji storitev, lahko enostavno natančno opre­de­li­te svoje zahteve.

Get-Service
shell

6. Pre­ki­ni­tev procesa

Procesi se lahko ustavijo tudi prek ukazne vrstice s pomočjo različnih ukazov Po­wer­Shell. Ena od možnosti je ukaz Stop-Process. Ustrezni proces lahko določite po imenu, ID-ju ali drugih la­stno­stih. Tukaj je primer:

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

Z ukazom -Confirm se zahteva potrditev ukaza. Ukaz -PassThru zahteva potrditev usta­vlje­ne­ga procesa. To se ne izvede samodejno.

7. Pretvori v HTML

Za hitro pre­po­zna­va­nje težav ali mo­re­bi­tnih zapletov je jasen prikaz izjemno koristen. To lahko dosežete z uporabo ukaza ConvertTo-HTML, ki izhodne podatke vaših ukazov Po­wer­Shell pretvori v datoteko HTML. In­for­ma­ci­je so tako prikazane v upo­rab­ni­ku prijazni stolpčni obliki. Struktura ukaza je običajno takšna:

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

8. Pretvori v XML

Na podoben način lahko ravnate tudi, če po­tre­bu­je­te pred­sta­vi­tev do­lo­če­ne­ga objekta v obliki XML. To lahko storite z ukazom ConvertTo-Xml. V na­sle­dnjem primeru pre­tvo­ri­te trenutni datum v obliko XML:

Get-Date | ConvertTo-Xml
shell

9. Kje-predmet

Z ukazom Where-Object lahko fil­tri­ra­te izsledke cmdleta. Ko izvedete ukaz, pogosto prejmete veliko objektov, ki vsebujejo več in­for­ma­cij, kot jih po­tre­bu­je­te. Z uporabo ukaza Where-Object v povezavi s cevjo lahko prikažete le tiste in­for­ma­ci­je, ki jih iščete. Če na primer želite prikazati storitve, ki so bile ustvar­je­ne ali po­so­do­blje­ne letos, to storite na naslednji način:

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

10. Prikaži zgodovino

Če želite prikazati vse ukaze Po­wer­Shell, ki ste jih vnesli med sejo, je za to primeren cmdlet Get-History. Za prikaz vseh ukazov Po­wer­Shell:

Get-History
shell

S to na­sta­vi­tvi­jo se izvedejo le zadnjih deset ukazov Po­wer­Shell:

Get-History -Count 10
shell

11. Izbriši zgodovino

Poleg tega lahko izbrišete tudi seznam upo­ra­blje­nih ukazov Po­wer­Shell. Če želite od­stra­ni­ti vse vnose, uporabite cmdlet Clear-History:

Clear-History
shell

Če želite izbrisati določene ukaze Po­wer­Shell, preprosto dodajte ustrezne parametre. Slednji vnos izbriše vse ukaze Po­wer­Shell, ki vsebujejo besedo »Help« ali se končajo z »Syntax«.

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

12. Dodaj zgodovino

V sejo je mogoče dodati tudi ukaze Po­wer­Shell. Tako jih lahko kasneje ponovno pokličete. Ustrezni cmdlet je Add-History.

Add-History
shell

13. Izhodna datoteka

Če želite izhodne podatke ukazov Po­wer­Shell shraniti na ra­ču­nal­nik, uporabite ukaz Out-File. S tem se ukazi Po­wer­Shell shranijo v datoteko z ne­ob­de­la­nim besedilom na navedeni poti.

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

14. Kopiraj element

V Po­wer­Shel­lu lahko elemente tudi kopirate in kopijo shranite na drugo mesto. Uporabite ukaz Copy-Item in določite imenik, v katerega naj se kopija shrani. To deluje na naslednji način:

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

15. Get-ChildItem

Z ukazom Get-ChildItem lahko pridobite elemente iz ene ali več lokacij za shra­nje­va­nje. Če so prisotni pod­e­le­men­ti, se prikažejo tudi ti. Ta ukaz privzeto prikaže atribute, časovni žig zadnje spremembe, velikost datoteke in ime elementa. Če je lokacija za shra­nje­va­nje prazna, se izpis ne prikaže.

Get-ChildItem -Path C:\example
shell

Lastnosti so prikazane pod vrstico »Način«. Naj­po­go­stej­še lastnosti so:

  • a (arhiv)
  • d (imenik)
  • h (skrito)
  • l (povezava)
  • r (samo za branje)
  • s (sistem)

16. Nastavi-Authen­ti­co­de­Si­gna­tu­re

Da bi zaščitili svoje datoteke, jih lahko opremite s podpisom Authen­ti­co­de z uporabo ukaza Set-Authen­ti­co­de­Si­gna­tu­re. To pa deluje le pri datotekah, ki podpirajo vmesnik Subject Interface Package (SIP).

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

17. Invoke-Item

Za izvedbo stan­dar­dne­ga dejanja, po­ve­za­ne­ga z določeno datoteko, je ukaz Invoke-Item naj­pre­pro­stej­ši način. Ta ukaz na primer poskrbi, da se iz­ve­dlji­va datoteka ne­po­sre­dno zažene ali da se datoteka z do­ku­men­tom odpre v privzeti apli­ka­ci­ji. V tem primeru se datoteka privzeto odpre v programu Microsoft Word:

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

18. Začni delo

Če želite na svojem lokalnem ra­ču­nal­ni­ku zagnati opravilo v ozadju, lahko uporabite ustrezen ukaz. Ukaz Start-Job vam omogoča izvedbo do­lo­če­ne­ga ukaza v ozadju, ne da bi to vplivalo na trenutno sejo.

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

Izvedite dejanja s temi ukazi Po­wer­Shell

Medtem ko so bili prejšnji ukazi Po­wer­Shell namenjeni predvsem pri­ka­zo­va­nju pregledov, lahko z ustre­zni­mi cmdleti izvajate tudi različne akcije in tako povečate pro­duk­tiv­nost svojega sistema. Naslednji ukazi Po­wer­Shell po­e­no­sta­vi­jo vaš delovni tok.

19. Izbriši vsebino

Če želite izbrisati vsebino elementa, pri tem pa ohraniti sam element, je ukaz Clear-Content idealna izbira. Primer njegove uporabe je izbris besedila iz dokumenta, pri čemer ostane sama datoteka ne­spre­me­nje­na. Postopek se izvede na naslednji način:

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

20. ForEach-Object

Z ukazom ForEach-Object lahko izvedete operacijo na vseh elementih v zbirki vhodnih objektov. V tem primeru delimo tri cela števila v nizu z 10:

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

21. Primerjaj-objekt

Da bi se izognili ročnemu pri­mer­ja­nju različnih naborov objektov, lahko uporabite ukaz Compare-Object. Ta ukaz ustvari poročilo, ki izpostavi razlike med zapisi. Prvi zapis služi kot re­fe­renč­ni objekt, drugi pa kot objekt razlik. Določite lahko, katere dejavnike želite pri­mer­ja­ti; če te in­for­ma­ci­je ne navedete, se bodo pri­mer­ja­li le rezultati v obliki nizov. Izpis je razdeljen na lastnosti, ki se po­ja­vlja­jo le v re­fe­renč­nem objektu (<), in lastnosti, ki se po­ja­vlja­jo le v objektu razlik (>). V tem primeru datoteka document1.txt vsebuje vrednosti Berlin, London in Pariz. Datoteka document2.txt vsebuje Berlin, Dunaj in 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

Vsebina, ki se pojavi v obeh do­ku­men­tih (v tem primeru »Berlin«), se privzeto ne prikaže.

22. Nov objekt

Eden od najbolj uporabnih ukazov v Po­wer­Shel­lu je New-Object. Ta cmdlet lahko uporabite za ustvar­ja­nje objekta iz ogrodja .NET ali modela COM (Component Object Model). Če na primer želite ustvariti objekt System.Version z nizom »1.2.3.4« kot kon­struk­tor­jem, ukaz izvedete na naslednji način:

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

23. Izberi objekt

Z ukazom Select-Object izberite objekt ali skupino objektov, ki imajo lastnosti, ki ste jih določili. Za to lahko določite naslednje parametre:

  • Najprej
  • Zadnje
  • Edinstven
  • Preskoči
  • Indeks

V na­sle­dnjem primeru uporabimo ukaza Po­wer­Shell Get-Process in Sort-Object, da prikažemo tri procese z največjo porabo po­mnil­ni­ka v trenutku vnosa.

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

24. Nastavi vzdevek

Bližnjice v sistemu Windows so koristne za še hitrejše izvajanje dejanj. Tudi Po­wer­Shell ponuja to možnost. Z ukazom Set-Alias lahko določite bližnjico za različne ukaze Po­wer­Shell. V na­sle­dnjem primeru ustvarimo alias »ci« za ukaz Get-ChildItem za trenutno sejo.

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

25. Nastavi lokacijo

Če želite spre­me­ni­ti lokacijo delovnega po­mnil­ni­ka, uporabite ukaz Set-Location. Možne nove lokacije so imeniki, po­di­me­ni­ki, lokacije v registru ali poti po­nu­dni­kov. V na­sle­dnjem primeru kot trenutno lokacijo shra­nje­va­nja določimo pogon C:

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

26. Na­sta­vi­tev storitve

Z ukazom Set-Service lahko upra­vlja­te s sto­ri­tvi­jo ter jo zaženete, ustavite ali začasno ustavite. Prav tako lahko spre­me­ni­te lastnosti storitve. V na­sle­dnjem primeru spre­me­ni­mo prikazno ime storitve iz »New Wor­ks­ta­ti­on« v »Old Wor­ks­ta­ti­on«.

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

27. Nastavi časovni pas

Če želite spre­me­ni­ti časovni pas sistema, je ukaz Set-TimeZone prava izbira. Če želite kot nov sistemski čas nastaviti ko­or­di­ni­ra­ni svetovni čas, uporabite ta ukaz:

Set-TimeZone -Id "UTC"
shell

28. Ponovni zagon ra­ču­nal­ni­ka

Ope­ra­cij­ski sistem na lokalnem ali od­da­lje­nem ra­ču­nal­ni­ku lahko ponovno zaženete z ustreznim ukazom Po­wer­Shell, ime­no­va­nim Restart-Computer. Izvedete ga lahko na naslednji način:

Za vaš ra­ču­nal­nik:

Restart-Computer
shell

Za izbrane ra­ču­nal­ni­ke v vašem omrežju:

Restart-Computer -ComputerName Server01, Server03
shell

29. Ponovni zagon storitve

Če želite ustaviti in ponovno zagnati storitev s pomočjo ukazov Po­wer­Shell, je za to primeren ukaz Restart-Service. Na primer, lahko ponovno zagnate vse storitve, katerih ime se začne z »Net«:

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

30. Izprazni koš

Koš je treba redno prazniti, kar je mogoče storiti tudi prek Po­wer­Shell-a. Ukaz za to je Clear-Re­cycle­Bin.

Clear-RecycleBin
shell

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

Ukaz Get-Com­pu­te­rIn­fo se uporablja za pri­do­bi­va­nje podatkov o la­stno­stih sistema in ope­ra­cij­ske­ga sistema.

Get-ComputerInfo
shell

32. Premakni element

Če želite pre­ma­kni­ti element z ene lokacije na drugo, imate na voljo več ukazov Po­wer­Shell. Naj­po­go­ste­je pa se uporablja ukaz Move-Item. V tem primeru bomo datoteko old.txt pre­ma­kni­li z diska C: v mapo D:\Temp in jo hkrati pre­i­me­no­va­li v new.txt.

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

Spre­mlja­nje in od­pra­vlja­nje napak z ustre­zni­mi ukazi Po­wer­Shell

Ukaz Po­wer­Shell, ki omogočajo spre­mlja­nje in pre­ver­ja­nje sistema, so izjemno koristni, še posebej pri pre­iz­ku­ša­nju zmo­glji­vo­sti novega omrežja v realnih pogojih. Za te namene so še posebej uporabni naslednji ukazi Po­wer­Shell.

33. Proces od­pra­vlja­nja napak

Od­pra­vlja­nje napak je pomemben postopek, s katerim za­go­to­vi­mo, da vse na­sta­vi­tve in procesi delujejo brez napak. Za to morate prenesti in nastaviti ustrezne programe za od­pra­vlja­nje napak. Ko to opravite, uporabite ukaz Debug-Process. V na­sle­dnjem primeru upo­ra­blja­mo program za od­pra­vlja­nje napak za program Explorer:

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

Če želite hkrati od­pra­vlja­ti napake v več procesih, jih preprosto ločite z vejicami.

34. Omogoči-PS­Bre­a­kpo­int

Za ak­ti­vi­ra­nje določenih pre­ki­ni­tve­nih točk uporabite ukaz Enable-PS­Bre­a­kpo­int. S tem se vrednost cmdleta s teh­nič­ne­ga vidika nastavi na »true«. Za ak­ti­vi­ra­nje vseh pre­ki­ni­tve­nih točk v trenutni seji uporabite naslednje ukaze Po­wer­Shell:

Get-PSBreakpoint | Enable-PSBreakpoint
shell

Ta ukaz uporabite za ak­ti­vi­ra­nje pre­ki­ni­tve­nih točk na podlagi njihovih ID-jev:

Enable-PSBreakpoint -ID 0, 3, 4
shell

35. Onemogoči-PS­Bre­a­kpo­int

Če želite ponovno one­mo­go­či­ti pre­ki­ni­tve­ne točke v Po­wer­Shel­lu, je za to namenjen ukaz Disable-PS­Bre­a­kpo­int. Tehnično gledano se vrednost ukaza Enable-PS­Bre­a­kpo­int nastavi na »false«. Če želite one­mo­go­či­ti pre­ki­ni­tve­no točko z ID 0, vnesite naslednje:

Disable-PSBreakpoint -Id 0
shell

36. Get-Counter

Za naprave z ope­ra­cij­skim sistemom Windows lahko podatke o zmo­glji­vo­sti pridobite s pomočjo Po­wer­Shell-a. Za to nalogo je primeren ukaz Get-Counter, ki ga lahko uporabite tako za lokalni ra­ču­nal­nik kot za oddaljene ra­ču­nal­ni­ke. V na­sle­dnjem primeru pri­do­bi­va­mo podatke z lokalnega ra­ču­nal­ni­ka:

Get-Counter -ListSet *
shell

37. Zagon–Spanje

Za­u­sta­vi­tev skripta ali seje je lahko ključnega pomena, zlasti v primerih pre­o­bre­me­ni­tve sistema. Po­wer­Shell za ta namen ponuja ukaz Start-Sleep, s katerim lahko določite, kako dolgo naj se de­jav­no­sti za­u­sta­vi­jo. V na­sle­dnjem primeru se izvajanje zaustavi za dve sekundi:

Start-Sleep -Seconds 2
shell

38. Testna pot

Z ukazom Test-Path preverite, ali so vsi elementi določene poti prisotni. Možni rezultati sta »True« ali »False«.

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

39. Preizkus povezave

Po­ve­zlji­vost znotraj omrežja lahko preverite tudi s pomočjo Po­wer­Shell-a. To storite tako, da prek ukaza Test-Con­nec­ti­on pošljete pakete ICMP echo request določenim pre­je­mni­kom, ki nato prek protokola ICMP (Internet Control Message Protocol) pošljejo odgovore. V našem primeru pošljemo zahtevo strežniku Server02 prek protokola IPv6.

Test-Connection -TargetName Server02 -IPv6
shell

40. Get-WinEvent

Če želite pre­gle­da­ti enega ali več dnevnikov dogodkov, imate na voljo različne ukaze Po­wer­Shell. Najbolj uporaben cmdlet za ta namen je Get-WinEvent. Za prikaz vseh dnevnikov z lokalnega ra­ču­nal­ni­ka lahko uporabite naslednji ukaz:

Get-WinEvent -ListLog *
shell
Go to Main Menu