Mitä ovat PowerShell-komennot? 40 tärkeintä komentoa yhdellä silmäyksellä
Käyttämällä sopivia PowerShell-komentoja voit hyödyntää moduuleja tarkasti. Näitä selkeästi jäsenneltyjä cmdlet-komentoja voidaan muokata edelleen valinnaisten parametrien avulla. Esittelemme 40 tärkeintä PowerShell-komentoa, jotta voit työskennellä järjestelmässäsi tai verkossasi mahdollisimman tehokkaasti.
Mikä on PowerShell-komento?
PowerShell, joka on ollut esiasennettuna Windows 7:stä lähtien, mahdollistaa PowerShell-komentojen syöttämisen, jotka Windows sitten suorittaa. Komentorivin cmd-komentojen lisäksi on lukuisia muita komentoja tai cmdlet-komentoja, joita vain PowerShell itse ymmärtää. Nämä cmdlet-komennot koostuvat verbistä ja substantiivista, jotka erotetaan toisistaan väliviivalla. Lisäksi näitä PowerShell-komentoja voi laajentaa valinnaisilla parametreilla, jotka erotetaan toisistaan välilyönneillä. PowerShellin hyödyllisyys ulottuu järjestelmänvalvojien ulkopuolelle; se osoittautuu myös korvaamattomaksi kehitystyössä. Saatavilla on lukuisia esiasennettuja PowerShell-komentoja, joista esittelemme sinulle tärkeimmät.
Tärkeimmät PowerShell-komennot
PowerShell-komentojen avulla voit suorittaa laajoja järjestelmänvalvojan tehtäviä vain muutamalla komennolla. Niistä peruskomentoista, joita tulet todennäköisesti käyttämään useimmin, löytyy komentoja, jotka antavat alustavan yleiskuvan verkon rakenteesta, luettelevat muita PowerShell-komentoja, auttavat tärkeissä tietoturvamäärityksissä ja mahdollistavat hyödyllisiä analyyseja. Tässä on joitakin tärkeimpiä PowerShell-komentoja, joihin sinun kannattaa tutustua:
1. Get-Module -All
Saat alustavan yleiskuvan kaikista tuoduista PowerShell-moduuleista käyttämällä komentoa Get-Module -All.
Get-Module -Allshell2. Get-Command
Valmiita PowerShell-komentoja on runsaasti. Saat yleiskuvan tällä hetkellä käytettävissä olevista PowerShell-komennoista käyttämällä yksinkertaisesti Get-Command-komentoa. Tämä komento listaa selkeästi kaikki mahdolliset toiminnot ja tarjoaa tiiviit selitykset kustakin cmdletistä. Tämä pätee myös silloin, kun olet asentanut lisämoduuleja.
Get-Commandshell3. Ohje
Edellä kuvattu Get-Command-luettelo tarjoaa alustavan yleiskatsauksen; jos haluat tarkempia tietoja komennosta ja sen vaihtoehdoista, käytä Get-Help-komentoa. Tämä komento hakee tietokoneellasi olevat ohjetiedostot ja näyttää kaikki saatavilla olevat tiedot. Käynnistä se yhdistämällä Get-Help siihen komentoon, jonka syntaksin haluat tarkastella.
Get-Help [[-Name] <String>] [-Path <String>] [-Category <String[]>] [-Component <String[]>] [-Functionality <String[]>] [-Role <String[]>] [-Examples] [<CommonParameters>]shell4. Get-Process
Voit tarkistaa nopeasti järjestelmässäsi parhaillaan käynnissä olevien sovellusten, ohjelmien ja prosessien luettelon Get-Process-komennolla. Jos määrität tietyn sovelluksen, saat lisätietoja kyseisestä sovelluksesta.
Get-Processshell5. Get-Service
Get-Service-komento toimii samalla tavalla kuin Get-Process-komento. Se eroaa kuitenkin siitä siinä, että se tarjoaa tietoja kaikista käynnissä olevista palveluista. Jos haluat saada tietoja tietystä palvelusta tai tietystä palveluryhmästä, voit helposti määrittää pyyntösi.
Get-Serviceshell6. Prosessin pysäyttäminen
Voit myös käyttää erilaisia PowerShell-komentoja prosessien pysäyttämiseen komentoriviltä. Yksi vaihtoehto on Stop-Process-komento. Voit määrittää kyseisen prosessin nimen, tunnuksen tai muiden ominaisuuksien perusteella. Tässä on esimerkki:
Stop-Process -Name "processname"shellStop-Process -Id 3582 -Confirm -PassThrushellKomennon vahvistus pyydetään -Confirm-parametrilla. -PassThru-komento pyytää vahvistusta pysäytetystä prosessista. Tätä ei tehdä automaattisesti.
7. Muunna HTML-muotoon
Selkeä näyttö on erittäin hyödyllinen ongelmien tai mahdollisten komplikaatioiden nopeassa tunnistamisessa. Tämän voi saavuttaa käyttämällä ConvertTo-HTML-komentoa, joka muuntaa PowerShell-komentojen tulosteet HTML-tiedostoksi. Näin tiedot esitetään käyttäjäystävällisessä sarakemuodossa. Komennon rakenne on yleensä seuraavanlainen:
Get-Command | ConvertTo-Html > c:\temp\AllCommands.htmlshell8. ConvertTo-Xml
Voit toimia samalla tavalla, jos tarvitset tietyn objektin XML-muotoisen esityksen. Tämä onnistuu ConvertTo-Xml-komennolla. Seuraavassa esimerkissä muunnat nykyisen päivämäärän XML-muotoon:
Get-Date | ConvertTo-Xmlshell9. Missä-objekti
Where-Object-komennolla voit suodattaa cmdletin tulosta. Kun suoritat komennon, saatat usein saada lukuisia objekteja, jotka sisältävät enemmän tietoa kuin tarvitset. Käyttämällä Where-Object-komentoa yhdessä putken kanssa voit näyttää vain juuri ne tiedot, joita etsit. Jos esimerkiksi haluat tarkastella tänä vuonna luotuja tai päivitettyjä palveluita, voit tehdä sen seuraavasti:
Get-Service | Where-Object { $_.LastWriteTime -gt "01.01.2023" }shell10. Get-History
Jos haluat luetella kaikki istunnon aikana antamasi PowerShell-komennot, käytä Get-History -komentoa. Luettele kaikki PowerShell-komennot seuraavasti:
Get-HistoryshellTämän määrityksen avulla haetaan esiin vain viimeiset kymmenen PowerShell-komentoa:
Get-History -Count 10shell11. Tyhjennä historia
Voit myös poistaa käytettyjen PowerShell-komentojen luettelon. Poista kaikki merkinnät käyttämällä Clear-History-komentoa:
Clear-HistoryshellVoit poistaa valitut PowerShell-komennot lisäämällä vain tarvittavat parametrit. Seuraava komento poistaa kaikki PowerShell-komennot, jotka sisältävät sanan ”Help” tai päättyvät sanaan ”Syntax”.
Clear-History -Command *Help*, *Syntaxshell12. Lisää historia
Istuntoon voi myös tallentaa PowerShell-komentoja. Näin voit kutsua ne uudelleen myöhemmin. Tätä varten käytetään Add-History-komento a.
Add-Historyshell13. Tiedosto ulos
Voit tallentaa PowerShell-komentojen tulosteen tietokoneellesi käyttämällä Out-File-komentoa. Tämä tallentaa PowerShell-komennot raakatekstitiedostoon määritettyyn polkuun.
Get-Process | Out-File -FilePath .\Process.txtshell14. Kopioi kohde
PowerShellissä voit myös kopioida kohteita ja tallentaa kopion toiseen sijaintiin. Käytä Copy-Item-komentoa ja määritä kansio, johon kopio tallennetaan. Toiminto toimii seuraavasti:
Copy-Item "C:\folder1\file.txt" -Destination "C:\folder2"shell15. Get-ChildItem
Voit käyttää Get-ChildItem-komentoa kohteiden hakemiseen yhdestä tai useammasta tallennuspaikasta. Jos kohteissa on alielementtejä, nekin näytetään. Komento listaa oletuksena attribuutit, viimeisimmän muutoksen aikaleiman, tiedoston koon ja kohteen nimen. Jos tallennuspaikka on tyhjä, tulostetta ei näytetä.
Get-ChildItem -Path C:\exampleshellOminaisuudet näkyvät ”Mode”-rivin alla. Seuraavat ominaisuudet ovat yleisiä:
- a (arkisto)
- d (hakemisto)
- h (piilotettu)
- l (linkki)
- r (vain luku)
- s (järjestelmä)
16. Aseta Authenticode-allekirjoitus
Voit suojata tiedostojasi lisäämällä niihin Authenticode-allekirjoituksen Set-AuthenticodeSignature-kom ennolla. Tämä toimii kuitenkin vain tiedostoissa, jotka tukevat Subject Interface Package (SIP) -rajapintaa.
$cert=Get-ChildItem -Path Cert:\CurrentUser\My -CodeSigningCert
Set-AuthenticodeSignature -FilePath PsTestInternet2.ps1 -Certificate $certshell17. Invoke-Item
Invoke-Item-komento on yksinkertaisin tapa suorittaa tiettyyn tiedostoon liittyvä vakiotoiminto. Tämä komento varmistaa esimerkiksi, että suoritustiedosto suoritetaan suoraan tai että asiakirjatiedosto avataan oletussovelluksessa. Tässä esimerkissä tiedosto avataan oletuksena Microsoft Wordissa:
Invoke-Item "C:\Test\example.doc"shell18. Käynnistä työ
Voit käynnistää taustatehtävän paikallisella tietokoneellasi käyttämällä tätä tarkoitusta varten tarkoitettua komentoa. Start-Job-komennolla voit suorittaa tietyn komennon taustalla ilman, että se vaikuttaa nykyiseen istuntoon.
Start-Job -ScriptBlock { Get-Process -Name pwsh }shellSuorita toimintoja näillä PowerShell-komennoilla
Vaikka aiemmat PowerShell-komennot keskittyivät pääasiassa tilannekatsausten antamiseen, voit myös suorittaa erilaisia toimintoja sopivilla cmdlet-komentoilla ja parantaa näin järjestelmän tuottavuutta. Seuraavat PowerShell-komennot tehostavat työnkulkuasi.
19. Tyhjennä sisältö
Jos haluat tyhjentää elementin sisällön säilyttäen itse elementin, Clear-Content-komento on ihanteellinen valinta. Esimerkkinä sen käytöstä voidaan mainita tekstin poistaminen asiakirjasta siten, että itse tiedosto säilyy ennallaan. Toimenpide suoritetaan seuraavasti:
Clear-Content C:\Temp\example.txtshell20. ForEach-Object
ForEach-Object-komennolla voit suorittaa toiminnon kaikille syöttöobjektien kokoelman elementeille. Tässä esimerkissä jaamme taulukon kolme kokonaislukua luvulla 10:
10000, 1000, 100 | ForEach-Object -Process {$_/10}
1000
100
10shell21. Vertaa-objekti
Voit välttää eri objektijoukkojen manuaalisen vertailun käyttämällä Compare-Object-komentoa. Tämä komento luo raportin, jossa korostetaan tietueiden väliset erot. Ensimmäinen tietue toimii vertailukohteena ja toinen tietue ero-objektina. Voit määrittää, mitä tekijöitä verrataan; jos näitä tietoja ei anneta, verrataan vain merkkijonojen tuloksia. Tulostus on jaettu ominaisuuksiin, jotka esiintyvät vain vertailukohteessa (<), ja ominaisuuksiin, jotka esiintyvät vain ero-kohteessa (>). Tässä esimerkissä tiedosto document1.txt sisältää arvot Berlin, London ja Paris. Tiedosto document2.txt sisältää arvot 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 <==shellSisältöä, joka esiintyy molemmissa asiakirjoissa (tässä tapauksessa ”Berliini”), ei näytetä oletuksena.
22. Uusi objekti
Yksi hyödyllisimmistä PowerShell-komennoista on New-Object. Tämän cmdletin avulla voit luoda objektin .NET-kehyksestä tai Component Object Model (COM) -mallista. Jos esimerkiksi haluat luoda System.Version-objektin, jonka konstruktorimerkkijonona on ”1.2.3.4”, komento suoritetaan seuraavasti:
New-Object -TypeName System.Version -ArgumentList "1.2.3.4"shell23. Valitse-Objekti
Valitse Select-Object-komennolla objekti tai objektiryhmä, jolla on määrittämäsi ominaisuudet. Komennolle voidaan määrittää seuraavat parametrit:
- Ensimmäinen
- Viimeinen
- Ainutlaatuinen
- Ohita
- Hakemisto
Seuraavassa esimerkissä käytämme PowerShell-komentoja Get-Process ja Sort-Object näyttämään ne kolme prosessia, joiden muistin kulutus on suurin komennon suorittamishetkellä.
Get-Process | Sort-Object -Property WS | Select-Object -Last 3shell24. Aseta alias
Windowsin pikakuvakkeet ovat käteviä, kun haluat suorittaa toimintoja entistä nopeammin. Myös PowerShell tarjoaa tämän mahdollisuuden. Voit määrittää pikakuvakkeen eri PowerShell-komentoille Set-Alias-komennolla. Seuraavassa esimerkissä luomme aliasin ”ci” Get-ChildItem-komennolle nykyisessä istunnossa.
PS> Set-Alias -Name ci -Value Get-ChildItem
PS> Get-Alias -Name cishell25. Set-Location
Voit muuttaa työmukistokohdetta Set-Location-komennolla. Uusiksi sijainneiksi sopivat hakemistot, alihakemistot, rekisterikohdat tai palvelintietojen polut. Seuraavassa esimerkissä määritämme C:-aseman nykyiseksi tallennussijainniksi:
PS C:\Windows\> Set-Location HKLM:\
PS HKLM:\> Set-Location C:
PS C:\Windows\>shell26. Asennuspalvelu
Set-Service-komennolla voit hallita palvelua sekä käynnistää, pysäyttää tai keskeyttää sen. Komennolla voi myös muuttaa palvelun ominaisuuksia. Seuraavassa esimerkissä muutamme palvelun näyttönimen ”New Workstation” nimeksi ”Old Workstation”.
Set-Service -Name New Workstation -DisplayName "Old Workstation"shell27. Aseta aikavyöhyke
Järjestelmän aikavyöhykkeen muuttamiseen sopii parhaiten Set-TimeZone-komento. Jos haluat asettaa koordinoidun maailmanajan (UTC) uudeksi järjestelmäajaksi, käytä tätä komentoa:
Set-TimeZone -Id "UTC"shell28. Käynnistä tietokone uudelleen
Voit käynnistää käyttöjärjestelmän uudelleen paikallisella tietokoneellasi tai etätietokoneella käyttämällä asianmukaista PowerShell-komentoa nimeltä Restart-Computer. Komento suoritetaan seuraavasti:
Oma tietokoneesi:
Restart-ComputershellVerkostosi tietyille tietokoneille:
Restart-Computer -ComputerName Server01, Server03shell29. Palvelun uudelleenkäynnistys
Jos haluat pysäyttää ja käynnistää palvelun uudelleen PowerShell-komentojen avulla, käytä Restart-Service-komentoa. Voit esimerkiksi käynnistää uudelleen kaikki palvelut, joiden nimi alkaa kirjaimilla ”Net”:
PS C:\> Restart-Service -DisplayName "net*"shell30. Tyhjennä roskakori
Roskakori on tyhjennettävä säännöllisesti, mikä on mahdollista myös PowerShellin avulla. Komento on Clear-RecycleBin.
Clear-RecycleBinshell31. Get-ComputerInfo
Get-ComputerInfo- komentoa käytetään järjestelmän ja käyttöjärjestelmän ominaisuuksien hakemiseen.
Get-ComputerInfoshell32. Siirrä kohde
Kun haluat siirtää kohteen paikasta toiseen, käytettävissäsi on useita PowerShell-komentoja. Yleisimmin käytetty vaihtoehto on kuitenkin Move-Item. Tässä esimerkissä siirrämme tiedoston old.txt C:-asemalta hakemistoon D:\Temp ja nimeämme sen samalla uudelleen tiedostoksi new.txt.
Move-Item -Path C:\old.txt -Destination D:\Temp\new.txtshellValvonta ja virheiden korjaus sopivilla PowerShell-komennoilla
Järjestelmän valvontaan ja tarkistamiseen tarkoitetut PowerShell-komennot ovat erittäin arvokkaita, etenkin kun testataan uuden verkon suorituskykyä todellisissa olosuhteissa. Seuraavat PowerShell-komennot ovat erityisen hyödyllisiä näihin tarkoituksiin.
33. Virheenkorjausprosessi
Virheenkorjaus on tärkeä prosessi, jolla varmistetaan, että kaikki asetukset ja prosessit toimivat virheettömästi. Tätä varten sinun on ladattava ja määritettävä sopivat virheenkorjaimet. Kun tämä on tehty, käytä Debug-Process-komentoa. Seuraavassa esimerkissä käytämme Explorerin virheenkorjaajaa:
PS C:\> Debug-Process -Name "Explorer"shellJos haluat selvittää useiden prosessien vikoja samanaikaisesti, erota ne toisistaan pilkuilla.
34. Ota PSBreakpoint käyttöön
Voit aktivoida tiettyjä keskeytyksiä Enable-PSBreakpoint- komennolla. Tämä asettaa cmdletin arvoksi teknisesti ”true”. Voit aktivoida kaikki nykyisen istunnon keskeytykset seuraavilla PowerShell-komennoilla:
Get-PSBreakpoint | Enable-PSBreakpointshellKäytä tätä komentoa aktivoidaksesi katkaisupisteet niiden tunnisteiden avulla:
Enable-PSBreakpoint -ID 0, 3, 4shell35. Poista PSBreakpoint käytöstä
PowerShell-katkaisupisteiden poistamiseksi käytöstä sopiva cmdlet on Disable-PSBreakpoint. Teknisesti ottaen Enable-PSBreakpoint-komennon arvoksi asetetaan ”false”. Poistaaksesi katkaisupisteen, jonka tunnus on 0, kirjoita seuraava komento:
Disable-PSBreakpoint -Id 0shell36. Get-Counter
Windows-laitteiden suorituskykytiedot voidaan hakea PowerShellin avulla. Tähän tehtävään sopiva komento on Get-Counter, jota voidaan käyttää sekä paikallisessa tietokoneessa että etätietokoneissa. Seuraavassa esimerkissä haetaan tietoja paikallisesta tietokoneesta:
Get-Counter -ListSet *shell37. Käynnistys-Lepotila
Skriptin tai istunnon keskeyttäminen voi olla ratkaisevan tärkeää, etenkin järjestelmän ylikuormitustilanteissa. PowerShell tarjoaa tähän tarkoitukseen Start-Sleep-komennon, jonka avulla voit määrittää, kuinka kauan toimintoja keskeytetään. Seuraavassa esimerkissä suoritus keskeytyy kahdeksi sekunniksi:
Start-Sleep -Seconds 2shell38. Test-Path
Käytä Test-Path-komentoa tarkistaaksesi, ovatko tietyn polun kaikki osat paikallaan. Mahdolliset tulokset ovat ”True” tai ”False”.
Test-Path -Path "C:\Documents and Settings\user"
Falseshell39. Yhteyden testaus
Voit myös tarkistaa verkon yhteydet verkossasi PowerShellin avulla. Tämä tapahtuu lähettämällä ICMP-kaikupyyntöpaketteja määritellyille vastaanottajille Test-Connection-komennolla, joka pyytää vastauksia Internet Control Message Protocol (ICMP) -protokollan kautta. Esimerkissämme lähetämme pyynnön Server02:lle IPv6-protokollan kautta.
Test-Connection -TargetName Server02 -IPv6shell40. Get-WinEvent
Kun haluat tarkastella yhtä tai useampaa tapahtumalokia, käytettävissäsi on useita PowerShell-komentoja. Käytännöllisin cmdlet tähän tarkoitukseen on Get-WinEvent. Voit hakea kaikki lokit paikalliselta tietokoneeltasi seuraavalla komennolla:
Get-WinEvent -ListLog *shell