Mikä on Powershell?
PowerShell on Microsoftin kehittämä komentosarjakieli ja komentokehote, joka on suunniteltu erityisesti järjestelmänhallintaan ja automatisointiin. Se yhdistää komentojen suorittamisen, skriptauksen ja konfiguraationhallinnan yhteen monipuoliseen työkaluun.
PowerShell on rakennettu .NET-kehysalustalle, mikä tarkoittaa, että se tukee .NET-kirjastoja. Käytännössä tämä tarkoittaa sitä, että jos satut olemaan tuttu esimerkiksi C# -ohjelmointikielen kanssa, pystyt Powershellistä käyttämään sieltä tuttuja luokkia ja funktioita (.NET moduuleja).
Powershellin käynnistys
Löydät powershellin kun kirjoitat "powershell" Windows-napin takaa löytyvään hakukenttään. Älä valitse ylintä, mustaa "PowerShell 7" vaan ota sininen "Windows PowerShell".
PowerShellin Perusteet
cmdletit
PowerShellin peruskomponentteja ovat cmdletit (lausutaan "command-lets"), jotka ovat pieniä komentoja, joita käytetään tiettyjen tehtävien suorittamiseen. Esimerkiksi Get-Command cmdlet listaa kaikki käytettävissä olevat cmdletit, ja Get-Help tarjoaa ohjeita cmdletin käyttöön.
Powershellissa on aliaksia
Edellinen esimerkin Get-Process -komennon voi ajaa myös sen aliaksella ps.
Komennon aliakset saat selville Get-Help komennon avulla.
Get-Help cmdlet
Kun haluat apua jonkun cmdletin kanssa, voit käyttää Get-Help cmdlettiä.
Skriptaus ja Powershell ISE
PowerShell mahdollistaa skriptien kirjoittamisen, jotka ovat joukko cmdletejä ja muita komentoja, jotka suoritetaan järjestyksessä. Skriptit tallennetaan .ps1-päätteisiin tiedostoihin.
Skriptejä on näppärä kirjoittaa ja testata Powershell ISE -editorissa.
Putket (Pipelines)
PowerShellissa voit lähettää yhden cmdletin tuloksen toiselle cmdletille putken (|) avulla, mikä mahdollistaa monimutkaisten komentosekvenssien rakentamisen yksinkertaisilla komponenteilla.
Esimerkiksi, aiempi esimerkki jossa haettiin prosessit voitaisiin putkittaa Where-Object -cmdletille joka osaa suodattaa edellisen komennon palauttamat objektit niiden attribuuttien arvon perusteella. Näin voitaisiin listata vain prosessit jotka käyttävät tällä hetkellä yli 10% CPU:sta.
Get-Process | Where-Object {$_.CPU -gt 10}
Powershell palauttaa objekteja
Get-Process on cmdlet joka listaa prosessit. Päällepäin tuloste näyttää samankaltaiselta kuin Unix-maailman "ps" -komennon tuloste.
Unixin ja Powershellin komennoissa on kuitenkin perustavanlaatuinen ero: PowerShell palauttaa objekteja, ei tekstiä. Objektit on vain muotoiltu tekstiksi. Objektin tyyppi voidaan nähdä Get-Member cmdletillä.
Tehtävät
Windows -harjoittelua
Labra kestää pari minuuttia käynnistyä, odotathan kärsivällisesti ja lisää aikaa tarvittaessa. Sinun ei tarvitse sulkea labraa välissä kun siirryt moduulista toiseen tällä kurssilla. Voit kirjautua RDP:llä palvelimelle tunnuksella "EVILCORP\john.doe" ja salasanalla "Letmein123!"
Selvitä Windowsin käyttöjärjestelmäversio
Saat version selville tällä PowerShell -komennolla:
(Get-CimInstance -ClassName Win32_OperatingSystem).Version
Käyttöjärjestelmän versio
Valmis ryhtymään eettiseksi hakkeriksi?
Aloita jo tänään.
Hakatemian jäsenenä saat rajoittamattoman pääsyn Hakatemian moduuleihin, harjoituksiin ja työkaluihin, sekä pääset discord-kanavalle jossa voit pyytää apua sekä ohjaajilta että muilta Hakatemian jäseniltä.