Mis on PowerShelli käsud? 40 olulisemat käsud ülevaatlikult
Sobivate PowerShell-käskude kasutamine võimaldab mooduleid täpselt rakendada. Neid hästi struktureeritud cmdlet’eid saab valikuliste parameetrite abil veelgi täpsemalt kohandada. Tutvustame 40 kõige olulisemat PowerShell-käsku, et saaksite oma süsteemis või võrgus optimaalselt töötada.
Mis on PowerShell-käsk?
PowerShell, mis on eelinstallitud alates Windows 7-st, võimaldab sisestada PowerShell-käsklusi, mida Windows seejärel täidab. Lisaks käsurea cmd-käskudele on olemas arvukalt teisi käske ehk cmdlet’eid, mida mõistab ainult PowerShell ise. Need cmdlet’id koosnevad tegusõnast ja nimisõnast, mida eraldab sidekriips. Lisaks saate neid PowerShell-käsklusi täiendada valikuliste parameetritega, mida eraldavad tühikud. PowerShelli kasulikkus ulatub kaugemale administraatoritest; see osutub hindamatuks ka arenduse valdkonnas. Kuna saadaval on hulgaliselt eelinstallitud PowerShelli käske, tutvustame teile kõige olulisemaid neist.
Kõige olulisemad PowerShelli käsud
PowerShelli käskudega saate vaid mõne käsuga teha ulatuslikke haldusülesandeid. Põhikäsudest, mida tõenäoliselt kõige sagedamini kasutate, on need, mis annavad esialgse ülevaate võrgu struktuurist, loetlevad teisi PowerShelli käske, aitavad teha olulisi turvaseadistusi ja võimaldavad teha väärtuslikke analüüse. Siin on mõned kõige olulisemad PowerShelli käsud, millega peaksite tutvuma:
1. Get-Module -All
Kõigi imporditud PowerShell-moodulite esialgse ülevaate saamiseks kasutage käsku Get-Module -All.
Get-Module -Allshell2. Get-Command
Eeldefineeritud PowerShell-käskusid on rohkesti. Praegu saadaval olevate PowerShell-käskude ülevaate saamiseks kasuta lihtsalt käsku Get-Command. See käsk loetleb ülevaatlikult kõik võimalikud toimingud ja pakub iga vastava cmdleti kohta lühikese selgituse. See kehtib isegi siis, kui oled installinud lisamooduleid.
Get-Commandshell3. Abi
Eespool kirjeldatud Get-Command-nimekiri annab esialgse ülevaate; üksikasjalikuma teabe saamiseks käsu ja selle valikute kohta kasutage Get-Help-cmdletit. See käsk avab teie arvutis olevad abifailid ja kuvab kogu kättesaadava teabe. Selle käivitamiseks ühendage Get-Help käsuga, mille süntaksit soovite vaadata.
Get-Help [[-Name] <String>] [-Path <String>] [-Category <String[]>] [-Component <String[]>] [-Functionality <String[]>] [-Role <String[]>] [-Examples] [<CommonParameters>]shell4. Get-Process
Süsteemis hetkel aktiivseid rakendusi, programme ja protsesse saab kiiresti kontrollida käsuga Get-Process. Kui määratakse kindel rakendus, kuvatakse selle kohta täiendavat teavet.
Get-Processshell5. Teenuse hankimine
Käsk Get-Service toimib sarnaselt käsuga Get-Process. Erinevus seisneb selles, et see pakub teavet kõigi aktiivsetest teenuste kohta. Kui soovite saada teavet konkreetse teenuse või teenuste konkreetse kategooria kohta, saate oma päringu hõlpsasti täpsustada.
Get-Serviceshell6. Protsessi peatamine
Protsesse saab peatada ka PowerShelli käsurealt, kasutades erinevaid käske. Üks võimalus on käsk Stop-Process. Vastava protsessi saab määratleda nime, ID või muude atribuutide abil. Siin on näide:
Stop-Process -Name "processname"shellStop-Process -Id 3582 -Confirm -PassThrushellParameetriga -Confirm küsitakse käsu kinnitust. Parameeter -PassThru küsib kinnitust peatatud protsessi kohta. Seda ei tehta automaatselt.
7. ConvertTo-HTML
Probleemide või võimalike komplikatsioonide kiireks tuvastamiseks on selge kuvamine äärmiselt kasulik. Selleks võite kasutada käsku „ConvertTo-HTML“, mis teisendab PowerShelli käskude väljundi HTML-failiks. See kuvab teabe kasutajasõbralikus veeruvormingus. Käsu struktuur on tavaliselt järgmine:
Get-Command | ConvertTo-Html > c:\temp\AllCommands.htmlshell8. ConvertTo-Xml
Kui vajate konkreetse objekti XML-põhist esitusviisi, võite toimida sarnaselt. Selleks kasutage käsku ConvertTo-Xml. Järgmises näites teisendate praeguse kuupäeva XML-vormingusse:
Get-Date | ConvertTo-Xmlshell9. Asukoht-objekt
Käsu Where-Object abil saate cmdleti tulemust filtreerida. Käsu käivitamisel saate sageli tulemuseks palju objekte, mis sisaldavad rohkem teavet, kui teil vaja on. Kasutades Where-Objecti koos toruga, saate kuvada ainult just seda teavet, mida otsite. Näiteks kui soovite vaadata sel aastal loodud või uuendatud teenuseid, saate seda teha järgmiselt:
Get-Service | Where-Object { $_.LastWriteTime -gt "01.01.2023" }shell10. Ajalugu
Kui soovid kuvada kõik PowerShelli käsud, mida oled seansi jooksul sisestanud, on sobivaks cmdletiks Get-History. Kõigi PowerShelli käskude kuvamiseks:
Get-HistoryshellSelle määratlusega kutsutakse välja ainult viimased kümme PowerShelli käsku:
Get-History -Count 10shell11. Ajaloo kustutamine
Samuti saate kustutada kasutatud PowerShell-käskude loendi. Kõigi kirjetega kustutamiseks kasutage cmdletit Clear-History:
Clear-HistoryshellValitud PowerShell-käskude kustutamiseks tuleb lihtsalt lisada vastavad parameetrid. Järgmine sisestus eemaldab kõik PowerShell-käskud, mis sisaldavad sõna „Help” või lõpevad sõnaga „Syntax”.
Clear-History -Command *Help*, *Syntaxshell12. Ajalugu lisada
Samuti on võimalik lisada seanssi PowerShelli käsud. See võimaldab neid hiljem uuesti käivitada. Selleks kasutatakse käsurea käsud Add-History.
Add-Historyshell13. Väljundfail
PowerShelli käskude väljundi salvestamiseks arvutisse kasuta käsurea Out-File. See salvestab PowerShelli käsud määratud asukohas asuvasse lihttekstifaili.
Get-Process | Out-File -FilePath .\Process.txtshell14. Kopeeri objekt
PowerShellis saate elemente ka kopeerida ja salvestada koopia teise asukohta. Kasutage käsku „Copy-Item“ ja määrake kataloog, kuhu koopia salvestatakse. See toimib järgmiselt:
Copy-Item "C:\folder1\file.txt" -Destination "C:\folder2"shell15. Get-ChildItem
Käsu Get-ChildItem abil saate hankida objekte ühest või mitmest salvestusasukohast. Kui on olemas alamelemendid, kuvatakse ka need. See käsk näitab vaikimisi atribuute, viimase muudatuse ajamärget, faili suurust ja elemendi nime. Kui salvestusasukoht on tühi, jäetakse väljund välja.
Get-ChildItem -Path C:\exampleshellAtribuudid kuvatakse rea „Režiim” all. Tavaliselt on need järgmised omadused:
- a (arhiiv)
- d (kataloog)
- h (peidetud)
- l (link)
- r (ainult lugemiseks)
- s (süsteem)
16. Set-AuthenticodeSignature
Failide kaitsmiseks saate neile lisada Authenticode-allkirja käsuga Set-AuthenticodeSignature. See toimib aga ainult failide puhul, mis toetavad Subject Interface Package’i (SIP).
$cert=Get-ChildItem -Path Cert:\CurrentUser\My -CodeSigningCert
Set-AuthenticodeSignature -FilePath PsTestInternet2.ps1 -Certificate $certshell17. Invoke-Item
Konkreetsele failile seotud standardtoimingu sooritamiseks on Invoke-Item kõige lihtsam viis. See käsk tagab näiteks, et käivitatav fail käivitatakse otse või et dokument avatakse vaikimisi määratud rakenduses. Selles näites avatakse fail vaikimisi Microsoft Wordis:
Invoke-Item "C:\Test\example.doc"shell18. Töö käivitamine
Taustatöö käivitamiseks oma arvutis võid kasutada selleks ettenähtud käsku. Käsk Start-Job võimaldab sul täita kindlat käsku taustal, ilma et see mõjutaks praegust sessiooni.
Start-Job -ScriptBlock { Get-Process -Name pwsh }shellTee toiminguid nende PowerShelli käskudega
Kuigi varasemad PowerShelli käsud olid suunatud peamiselt ülevaate andmisele, saate sobivate cmdletite abil teha ka mitmesuguseid toiminguid, suurendades seeläbi süsteemi tootlikkust. Järgmised PowerShelli käsud muudavad teie töövoo sujuvamaks.
19. Sisu tühjendamine
Kui soovitakse kustutada elemendi sisu, säilitades samas elemendi enda, on käsk „Clear-Content“ ideaalne valik. Selle kasutamise näiteks võib tuua teksti kustutamise dokumendist, jättes ise faili puutumatuks. Protsess toimub järgmiselt:
Clear-Content C:\Temp\example.txtshell20. ForEach-Object
Käsk ForEach-Object võimaldab teha toimingut kõigi sisendobjektide kogumi elementidega. Selles näites jagame massiivis olevad kolm täisarvu arvuga 10:
10000, 1000, 100 | ForEach-Object -Process {$_/10}
1000
100
10shell21. Võrdlusobjekt
Et vältida erinevate objektide kogumite käsitsi võrdlemist, võite kasutada käsurea käsku „Compare-Object “. See käsk koostab aruande, milles on esile toodud kirjetevahelised erinevused. Esimene kirje on võrdlusobjekt ja teine kirje erinevusobjekt. Võite määrata, milliseid tegureid võrrelda, ning kui seda teavet ei esitata, võrreldakse ainult string-tüüpi tulemusi. Väljund on jagatud omadusteks, mis esinevad ainult võrdlusobjektis (<), ja omadusteks, mis esinevad ainult erinevuste objektis (>). Selles näites sisaldab fail document1.txt väärtusi Berlin, London ja Paris. Fail document2.txt sisaldab väärtusi Berlin, Vienna ja 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 <==shellSisu, mis esineb mõlemas dokumendis (käesoleval juhul „Berliin“), ei kuvata vaikimisi.
22. Uus objekt
Üks kasulikumaid PowerShelli käske on New-Object. Selle käsuga saab luua objekti .NET-raamistikust või COM-ist (Component Object Model). Näiteks kui soovite luua System.Version-objekti, mille konstruktoriks on string „1.2.3.4“, siis käsk täidetakse järgmiselt:
New-Object -TypeName System.Version -ArgumentList "1.2.3.4"shell23. Valige objekt
Kasutage käsku „Select-Object“, et valida objekt või objektide rühm, millel on teie määratud omadused. Selleks saate määrata järgmised parameetrid:
- Esimene
- Viimane
- Unikaalne
- Vahelejäta
- Indeks
Järgmises näites kasutame PowerShelli käske „Get-Process“ ja „Sort-Object“, et kuvada kolm protsessi, mille mälukasutus on sisestamise hetkel suurim.
Get-Process | Sort-Object -Property WS | Select-Object -Last 3shell24. Aliase määramine
Windowsi kiirklahvid on kasulikud, et toiminguid veelgi kiiremini teostada. Ka PowerShell pakub seda võimalust. Cmdleti Set-Alias abil saate määrata erinevatele PowerShelli käskudele kiirklahvi. Järgmises näites loome käskule Get-ChildItem praeguse seansi jaoks alias „ci“.
PS> Set-Alias -Name ci -Value Get-ChildItem
PS> Get-Alias -Name cishell25. Set-Location
Töömälu asukoha muutmiseks kasutage käsku Set-Location. Uueks asukohaks võivad olla kataloogid, alamkataloogid, registri asukohad või teenusepakkuja teed. Järgmises näites määrame praeguseks salvestusasukohaks C:-ketta:
PS C:\Windows\> Set-Location HKLM:\
PS HKLM:\> Set-Location C:
PS C:\Windows\>shell26. Paigaldus- ja hooldusteenus
Käsu Set-Service abil saate teenusega suhelda ning seda käivitada, peatada või pausile panna. Samuti on võimalik muuta teenuse omadusi. Järgmises näites muudame teenuse kuvanimeks „New Workstation” asemel „Old Workstation”.
Set-Service -Name New Workstation -DisplayName "Old Workstation"shell27. Ajavööndi määramine
Süsteemi ajavööndi muutmiseks on õige valik käsk Set-TimeZone. Koordineeritud universaalaja seadmiseks uueks süsteemiajaks kasuta järgmist käsku:
Set-TimeZone -Id "UTC"shell28. Arvuti taaskäivitamine
Saate oma kohaliku või kaugarvuti operatsioonisüsteemi taaskäivitada, kasutades selleks sobivat PowerShelli käsku Restart-Computer. Seda saab käivitada järgmiselt:
Teie arvuti puhul:
Restart-ComputershellTeie võrgus olevate valitud arvutite puhul:
Restart-Computer -ComputerName Server01, Server03shell29. Teenuse taaskäivitamine
Teenuse peatamiseks ja taaskäivitamiseks PowerShelli käskude abil on sobivaks cmdletiks Restart-Service. Näiteks saate taaskäivitada kõik teenused, mille nimi algab tähtedega „Net“:
PS C:\> Restart-Service -DisplayName "net*"shell30. Tühjenda prügikast
Prügikasti tuleks regulaarselt tühjendada, mida on võimalik teha ka PowerShelli kaudu. Selleks on käsk Clear-RecycleBin.
Clear-RecycleBinshell31. Get-ComputerInfo
Käsku „Get-ComputerInfo“ kasutatakse süsteemi ja operatsioonisüsteemi omaduste kuvamiseks.
Get-ComputerInfoshell32. Eseme teisaldamine
Kui soovite mõnda elementi ühest asukohast teise üle viia, on teie käsutuses mitu PowerShelli käsku. Kõige sagedamini kasutatakse siiski käsku Move-Item. Selles näites viime faili old.txt C:-kettalt kataloogi D:\Temp ning nimetame selle ümber failiks new.txt.
Move-Item -Path C:\old.txt -Destination D:\Temp\new.txtshellJälgimine ja veaotsing sobivate PowerShell-käskudega
PowerShelli käsud, mis võimaldavad süsteemi jälgimist ja kontrollimist, on äärmiselt väärtuslikud, eriti uue võrgu jõudluse testimisel reaalsetes tingimustes. Järgmised PowerShelli käsud on selleks otstarbeks eriti kasulikud.
33. Veaparandusprotsess
Veaparandus on oluline protsess, mis tagab, et kõik seaded ja protsessid töötaksid veatult. Selleks tuleb alla laadida ja seadistada sobivad veaparandusprogrammid. Kui see on tehtud, kasuta käsku „Debug-Process “. Järgmises näites kasutame veaparandusprogrammi Explorerile:
PS C:\> Debug-Process -Name "Explorer"shellMitme protsessi samaaegseks silumiseks eraldage need lihtsalt komadega.
34. Enable-PSBreakpoint
Teatud katkestuspunktide aktiveerimiseks kasuta käsku Enable-PSBreakpoint. See seab cmdleti väärtuseks tehnilisest seisukohast „true”. Kasuta neid PowerShelli käske, et aktiveerida kõik katkestuspunktid praeguses sessioonis:
Get-PSBreakpoint | Enable-PSBreakpointshellKasuta seda käsku, et aktiveerida katkestuspunkte nende ID järgi:
Enable-PSBreakpoint -ID 0, 3, 4shell35. PSBreakpointi keelamine
PowerShelli katkestuspunktide uuesti deaktiveerimiseks on sobivaks käsuks Disable-PSBreakpoint. Tehniliselt öeldes seatakse käsu Enable-PSBreakpoint väärtuseks „false“. ID-ga 0 katkestuspunkti deaktiveerimiseks sisestage järgmine käsk:
Disable-PSBreakpoint -Id 0shell36. Get-Counter
Windows-seadmete puhul saate nende jõudlusandmeid hankida PowerShelli abil. Selle ülesande jaoks sobiv käsk on Get-Counter, mida saab kasutada nii kohaliku arvuti kui ka kaugarvutite puhul. Järgmises näites hangime andmeid kohalikust arvutist:
Get-Counter -ListSet *shell37. Käivita-Uinu
Skripti või seansi peatamine võib olla äärmiselt oluline, eriti süsteemi ülekoormuse korral. PowerShell pakub selleks käsku Start-Sleep, mis võimaldab määrata, kui kauaks tegevus peatatakse. Järgmises näites peatatakse täitmine kaheks sekundiks:
Start-Sleep -Seconds 2shell38. Test-Path
Kasutage käsku Test-Path, et kontrollida, kas konkreetse tee kõik elemendid on olemas. Võimalikud tulemused on „True“ või „False“.
Test-Path -Path "C:\Documents and Settings\user"
Falseshell39. Ühenduse kontrollimine
Võite oma võrgu ühenduvust hinnata ka PowerShelli abil. Selleks saadetakse käsu „Test-Connection“ abil ICMP-kaja-päringupakette kindlaksmääratud adressaatidele, mis kutsuvad esile vastuseid Interneti-kontrollsõnumiprotokolli (ICMP) kaudu. Meie näites saadame päringu Server02-le IPv6-protokolli kaudu.
Test-Connection -TargetName Server02 -IPv6shell40. Get-WinEvent
Kui soovite vaadata ühte või mitut sündmuslogi, on teie käsutuses mitmesugused PowerShelli käsud. Selleks kõige sobivam cmdlet on Get-WinEvent. Kõigi logide kuvamiseks oma kohalikult arvutilt võite kasutada järgmist käsku:
Get-WinEvent -ListLog *shell