Kaj so ukazi PowerShell? Pregled 40 najpomembnejših ukazov
Z uporabo ustreznih ukazov PowerShell lahko module uporabljate natančno. Te dobro organizirane cmdlete je mogoče dodatno prilagoditi z izbirnimi parametri. Predstavljamo vam 40 najpomembnejših ukazov PowerShell, da boste lahko v svojem sistemu ali omrežju delali čim bolj učinkovito.
Kaj je ukaz PowerShell?
PowerShell, ki je vgrajen že od operacijskega sistema Windows 7, omogoča vnos ukazov PowerShell, ki jih nato izvede Windows. Poleg ukazov cmd v ukazni vrstici obstaja še veliko drugih ukazov ali cmdletov, ki jih razume le sam PowerShell. Ti cmdleti so sestavljeni iz glagola in samostalnika, ločenih s pomišljajem. Poleg tega lahko te ukaze PowerShell dopolnite z izbirnimi parametri, ločenimi s presledki. Uporabnost PowerShell-a sega preko administratorjev; izkaže se kot neprecenljiv tudi na področju razvoja. Med številnimi vnaprej nameščenimi ukazi PowerShell-a vas seznanimo z najbolj ključnimi.
Najpomembnejši ukazi PowerShell
Z ukazi PowerShell lahko z le nekaj vnosi opravite obsežne administrativne naloge. Med osnovnimi ukazi, ki jih boste verjetno najpogosteje uporabljali, so tisti, ki ponujajo začetni pregled nad strukturo vašega omrežja, prikazujejo seznam drugih ukazov PowerShell, pomagajo pri ključnih varnostnih nastavitvah in omogočajo koristne analize. Tukaj je nekaj najpomembnejših ukazov PowerShell, s katerimi se morate seznaniti:
1. Get-Module -All
Če želite pridobiti prvi pregled nad vsemi uvoženimi moduli PowerShell, uporabite ukaz Get-Module -All.
Get-Module -Allshell2. Get-Command
Na voljo je veliko vnaprej določenih ukazov PowerShell. Če želite pridobiti pregled trenutno razpoložljivih ukazov PowerShell, 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-Commandshell3. Pomoč
Zgoraj opisani seznam ukazov Get-Command ponuja začetni pregled; za podrobnejše informacije o ukazu in njegovih možnostih uporabite ukaz Get-Help. Ta ukaz dostopa do datotek s pomočjo na vašem računalniku in nato prikaže vse razpoložljive informacije. Za njegovo aktiviranje združite ukaz Get-Help z ukazom, katerega sintakso želite pregledati.
Get-Help [[-Name] <String>] [-Path <String>] [-Category <String[]>] [-Component <String[]>] [-Functionality <String[]>] [-Role <String[]>] [-Examples] [<CommonParameters>]shell4. Get-Process
Če želite hitro pregledati seznam trenutno aktivnih aplikacij, programov in procesov v sistemu, lahko uporabite ukaz Get-Process. Če navedete določeno aplikacijo, boste prejeli dodatne informacije o tej konkretni aplikaciji.
Get-Processshell5. 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 kategoriji storitev, lahko enostavno natančno opredelite svoje zahteve.
Get-Serviceshell6. Prekinitev procesa
Procesi se lahko ustavijo tudi prek ukazne vrstice s pomočjo različnih ukazov PowerShell. Ena od možnosti je ukaz Stop-Process. Ustrezni proces lahko določite po imenu, ID-ju ali drugih lastnostih. Tukaj je primer:
Stop-Process -Name "processname"shellStop-Process -Id 3582 -Confirm -PassThrushellZ ukazom -Confirm se zahteva potrditev ukaza. Ukaz -PassThru zahteva potrditev ustavljenega procesa. To se ne izvede samodejno.
7. Pretvori v HTML
Za hitro prepoznavanje težav ali morebitnih zapletov je jasen prikaz izjemno koristen. To lahko dosežete z uporabo ukaza ConvertTo-HTML, ki izhodne podatke vaših ukazov PowerShell pretvori v datoteko HTML. Informacije so tako prikazane v uporabniku prijazni stolpčni obliki. Struktura ukaza je običajno takšna:
Get-Command | ConvertTo-Html > c:\temp\AllCommands.htmlshell8. Pretvori v XML
Na podoben način lahko ravnate tudi, če potrebujete predstavitev določenega objekta v obliki XML. To lahko storite z ukazom ConvertTo-Xml. V naslednjem primeru pretvorite trenutni datum v obliko XML:
Get-Date | ConvertTo-Xmlshell9. Kje-predmet
Z ukazom Where-Object lahko filtrirate izsledke cmdleta. Ko izvedete ukaz, pogosto prejmete veliko objektov, ki vsebujejo več informacij, kot jih potrebujete. Z uporabo ukaza Where-Object v povezavi s cevjo lahko prikažete le tiste informacije, ki jih iščete. Če na primer želite prikazati storitve, ki so bile ustvarjene ali posodobljene letos, to storite na naslednji način:
Get-Service | Where-Object { $_.LastWriteTime -gt "01.01.2023" }shell10. Prikaži zgodovino
Če želite prikazati vse ukaze PowerShell, ki ste jih vnesli med sejo, je za to primeren cmdlet Get-History. Za prikaz vseh ukazov PowerShell:
Get-HistoryshellS to nastavitvijo se izvedejo le zadnjih deset ukazov PowerShell:
Get-History -Count 10shell11. Izbriši zgodovino
Poleg tega lahko izbrišete tudi seznam uporabljenih ukazov PowerShell. Če želite odstraniti vse vnose, uporabite cmdlet Clear-History:
Clear-HistoryshellČe želite izbrisati določene ukaze PowerShell, preprosto dodajte ustrezne parametre. Slednji vnos izbriše vse ukaze PowerShell, ki vsebujejo besedo »Help« ali se končajo z »Syntax«.
Clear-History -Command *Help*, *Syntaxshell12. Dodaj zgodovino
V sejo je mogoče dodati tudi ukaze PowerShell. Tako jih lahko kasneje ponovno pokličete. Ustrezni cmdlet je Add-History.
Add-Historyshell13. Izhodna datoteka
Če želite izhodne podatke ukazov PowerShell shraniti na računalnik, uporabite ukaz Out-File. S tem se ukazi PowerShell shranijo v datoteko z neobdelanim besedilom na navedeni poti.
Get-Process | Out-File -FilePath .\Process.txtshell14. Kopiraj element
V PowerShellu 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"shell15. Get-ChildItem
Z ukazom Get-ChildItem lahko pridobite elemente iz ene ali več lokacij za shranjevanje. Če so prisotni podelementi, se prikažejo tudi ti. Ta ukaz privzeto prikaže atribute, časovni žig zadnje spremembe, velikost datoteke in ime elementa. Če je lokacija za shranjevanje prazna, se izpis ne prikaže.
Get-ChildItem -Path C:\exampleshellLastnosti so prikazane pod vrstico »Način«. Najpogostejše lastnosti so:
- a (arhiv)
- d (imenik)
- h (skrito)
- l (povezava)
- r (samo za branje)
- s (sistem)
16. Nastavi-AuthenticodeSignature
Da bi zaščitili svoje datoteke, jih lahko opremite s podpisom Authenticode z uporabo ukaza Set-AuthenticodeSignature. 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 $certshell17. Invoke-Item
Za izvedbo standardnega dejanja, povezanega z določeno datoteko, je ukaz Invoke-Item najpreprostejši način. Ta ukaz na primer poskrbi, da se izvedljiva datoteka neposredno zažene ali da se datoteka z dokumentom odpre v privzeti aplikaciji. V tem primeru se datoteka privzeto odpre v programu Microsoft Word:
Invoke-Item "C:\Test\example.doc"shell18. Začni delo
Če želite na svojem lokalnem računalniku zagnati opravilo v ozadju, lahko uporabite ustrezen ukaz. Ukaz Start-Job vam omogoča izvedbo določenega ukaza v ozadju, ne da bi to vplivalo na trenutno sejo.
Start-Job -ScriptBlock { Get-Process -Name pwsh }shellIzvedite dejanja s temi ukazi PowerShell
Medtem ko so bili prejšnji ukazi PowerShell namenjeni predvsem prikazovanju pregledov, lahko z ustreznimi cmdleti izvajate tudi različne akcije in tako povečate produktivnost svojega sistema. Naslednji ukazi PowerShell poenostavijo 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 nespremenjena. Postopek se izvede na naslednji način:
Clear-Content C:\Temp\example.txtshell20. 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
10shell21. Primerjaj-objekt
Da bi se izognili ročnemu primerjanju različnih naborov objektov, lahko uporabite ukaz Compare-Object. Ta ukaz ustvari poročilo, ki izpostavi razlike med zapisi. Prvi zapis služi kot referenčni objekt, drugi pa kot objekt razlik. Določite lahko, katere dejavnike želite primerjati; če te informacije ne navedete, se bodo primerjali le rezultati v obliki nizov. Izpis je razdeljen na lastnosti, ki se pojavljajo le v referenčnem objektu (<), in lastnosti, ki se pojavljajo 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 <==shellVsebina, ki se pojavi v obeh dokumentih (v tem primeru »Berlin«), se privzeto ne prikaže.
22. Nov objekt
Eden od najbolj uporabnih ukazov v PowerShellu je New-Object. Ta cmdlet lahko uporabite za ustvarjanje 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 konstruktorjem, ukaz izvedete na naslednji način:
New-Object -TypeName System.Version -ArgumentList "1.2.3.4"shell23. 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 naslednjem primeru uporabimo ukaza PowerShell Get-Process in Sort-Object, da prikažemo tri procese z največjo porabo pomnilnika v trenutku vnosa.
Get-Process | Sort-Object -Property WS | Select-Object -Last 3shell24. Nastavi vzdevek
Bližnjice v sistemu Windows so koristne za še hitrejše izvajanje dejanj. Tudi PowerShell ponuja to možnost. Z ukazom Set-Alias lahko določite bližnjico za različne ukaze PowerShell. V naslednjem primeru ustvarimo alias »ci« za ukaz Get-ChildItem za trenutno sejo.
PS> Set-Alias -Name ci -Value Get-ChildItem
PS> Get-Alias -Name cishell25. Nastavi lokacijo
Če želite spremeniti lokacijo delovnega pomnilnika, uporabite ukaz Set-Location. Možne nove lokacije so imeniki, podimeniki, lokacije v registru ali poti ponudnikov. V naslednjem primeru kot trenutno lokacijo shranjevanja določimo pogon C:
PS C:\Windows\> Set-Location HKLM:\
PS HKLM:\> Set-Location C:
PS C:\Windows\>shell26. Nastavitev storitve
Z ukazom Set-Service lahko upravljate s storitvijo ter jo zaženete, ustavite ali začasno ustavite. Prav tako lahko spremenite lastnosti storitve. V naslednjem primeru spremenimo prikazno ime storitve iz »New Workstation« v »Old Workstation«.
Set-Service -Name New Workstation -DisplayName "Old Workstation"shell27. Nastavi časovni pas
Če želite spremeniti časovni pas sistema, je ukaz Set-TimeZone prava izbira. Če želite kot nov sistemski čas nastaviti koordinirani svetovni čas, uporabite ta ukaz:
Set-TimeZone -Id "UTC"shell28. Ponovni zagon računalnika
Operacijski sistem na lokalnem ali oddaljenem računalniku lahko ponovno zaženete z ustreznim ukazom PowerShell, imenovanim Restart-Computer. Izvedete ga lahko na naslednji način:
Za vaš računalnik:
Restart-ComputershellZa izbrane računalnike v vašem omrežju:
Restart-Computer -ComputerName Server01, Server03shell29. Ponovni zagon storitve
Če želite ustaviti in ponovno zagnati storitev s pomočjo ukazov PowerShell, 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*"shell30. Izprazni koš
Koš je treba redno prazniti, kar je mogoče storiti tudi prek PowerShell-a. Ukaz za to je Clear-RecycleBin.
Clear-RecycleBinshell31. Get-ComputerInfo
Ukaz Get-ComputerInfo se uporablja za pridobivanje podatkov o lastnostih sistema in operacijskega sistema.
Get-ComputerInfoshell32. Premakni element
Če želite premakniti element z ene lokacije na drugo, imate na voljo več ukazov PowerShell. Najpogosteje pa se uporablja ukaz Move-Item. V tem primeru bomo datoteko old.txt premaknili z diska C: v mapo D:\Temp in jo hkrati preimenovali v new.txt.
Move-Item -Path C:\old.txt -Destination D:\Temp\new.txtshellSpremljanje in odpravljanje napak z ustreznimi ukazi PowerShell
Ukaz PowerShell, ki omogočajo spremljanje in preverjanje sistema, so izjemno koristni, še posebej pri preizkušanju zmogljivosti novega omrežja v realnih pogojih. Za te namene so še posebej uporabni naslednji ukazi PowerShell.
33. Proces odpravljanja napak
Odpravljanje napak je pomemben postopek, s katerim zagotovimo, da vse nastavitve in procesi delujejo brez napak. Za to morate prenesti in nastaviti ustrezne programe za odpravljanje napak. Ko to opravite, uporabite ukaz Debug-Process. V naslednjem primeru uporabljamo program za odpravljanje napak za program Explorer:
PS C:\> Debug-Process -Name "Explorer"shellČe želite hkrati odpravljati napake v več procesih, jih preprosto ločite z vejicami.
34. Omogoči-PSBreakpoint
Za aktiviranje določenih prekinitvenih točk uporabite ukaz Enable-PSBreakpoint. S tem se vrednost cmdleta s tehničnega vidika nastavi na »true«. Za aktiviranje vseh prekinitvenih točk v trenutni seji uporabite naslednje ukaze PowerShell:
Get-PSBreakpoint | Enable-PSBreakpointshellTa ukaz uporabite za aktiviranje prekinitvenih točk na podlagi njihovih ID-jev:
Enable-PSBreakpoint -ID 0, 3, 4shell35. Onemogoči-PSBreakpoint
Če želite ponovno onemogočiti prekinitvene točke v PowerShellu, je za to namenjen ukaz Disable-PSBreakpoint. Tehnično gledano se vrednost ukaza Enable-PSBreakpoint nastavi na »false«. Če želite onemogočiti prekinitveno točko z ID 0, vnesite naslednje:
Disable-PSBreakpoint -Id 0shell36. Get-Counter
Za naprave z operacijskim sistemom Windows lahko podatke o zmogljivosti pridobite s pomočjo PowerShell-a. Za to nalogo je primeren ukaz Get-Counter, ki ga lahko uporabite tako za lokalni računalnik kot za oddaljene računalnike. V naslednjem primeru pridobivamo podatke z lokalnega računalnika:
Get-Counter -ListSet *shell37. Zagon–Spanje
Zaustavitev skripta ali seje je lahko ključnega pomena, zlasti v primerih preobremenitve sistema. PowerShell za ta namen ponuja ukaz Start-Sleep, s katerim lahko določite, kako dolgo naj se dejavnosti zaustavijo. V naslednjem primeru se izvajanje zaustavi za dve sekundi:
Start-Sleep -Seconds 2shell38. 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"
Falseshell39. Preizkus povezave
Povezljivost znotraj omrežja lahko preverite tudi s pomočjo PowerShell-a. To storite tako, da prek ukaza Test-Connection pošljete pakete ICMP echo request določenim prejemnikom, 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 -IPv6shell40. Get-WinEvent
Če želite pregledati enega ali več dnevnikov dogodkov, imate na voljo različne ukaze PowerShell. Najbolj uporaben cmdlet za ta namen je Get-WinEvent. Za prikaz vseh dnevnikov z lokalnega računalnika lahko uporabite naslednji ukaz:
Get-WinEvent -ListLog *shell