Microsoft PowerShell on loistava skriptausalusta. Microsoft tarjoaa PowerShell-tuen lähes kaikille Windows Serverin rooleille ja ominaisuuksille. PowerShellin avulla voit automatisoida toistuvia tehtäviä sekä suorittaa komentorivin avulla helposti tehtäviä, jotka yleensä suoritat GUI-työkaluilla. Jos esimerkiksi tuotantoympäristössä sinun on tarkistettava Windows-palvelinten korjaustilanne, PowerShell-skriptiohjaisen lähestymistavan käyttäminen on paljon helpompaa kuin yhteyden muodostaminen jokaiseen palvelimeen erikseen ja sen jälkeen korjaustilan tarkistaminen. Olen PowerShellin vakiokäyttäjä ja olen suunnitellut tuhansia PowerShell-skriptejä 18 vuoden IT-kokemukseni aikana.

Ennen PowerShelliä ensisijainen skriptikieli Windowsin operatiivisten tehtävien suorittamiseen oli Visual Basic Scripting. Vaikka Visual Basic Scripting on edelleen olemassa ja monet IT-ylläpitäjät käyttävät edelleen mieluummin VB-skriptausta, on syytä mainita, että PowerShell vähentää koodin monimutkaisuutta. Jos haluat esimerkiksi tarkistaa Windows-tietokoneen palvelut, sinun on kirjoitettava VBScript-koodi muistilehtiöön, tallennettava tiedosto .VBS-nimellä ja suoritettava se sitten CSCript-isännän suoritustiedoston avulla. Mutta PowerShellin avulla voit käyttää yksinkertaista Get-Service-cmdlet-ohjelmaa, jonka avulla voit luetella Windows-tietokoneen palvelut nopeasti. Jos sinun piti tallentaa tulosteet tiedostoon VB-skriptin avulla, sinun on jälleen kirjoitettava joukko koodia VB-skriptiin, johon kuuluu tiedoston avaaminen ja sitten sisällön kirjoittaminen tiedostoon. PowerShell ei vain vaadi tiedoston avaamista ennen kuin PowerShell-komentokomennolla haettu sisältö voidaan kirjoittaa tiedostoon. Sinun tarvitsee vain käyttää ”Export-CSV” tai ”Add-Content” -cmdletteja.

Cmdletteja: PowerShell-skriptien rakennuspalikat

PowerShell tarjoaa cmdletteja (lausutaan ”command-lets”), joita kutsutaan joskus komentorivityökaluiksi ja joiden avulla voit saada tietoja käyttöjärjestelmästä, Windows-tietokoneeseen asennetuista sovelluksista, verkkotiedoista, Windows-tietokoneen korjaustilanteesta ja paljon muuta. On tärkeää huomata, että PowerShell-cmdletit on kirjoitettu .NET-kielellä ja ne käyttävät .NET-luokkia tarvittavien tehtävien suorittamiseen. Jos haluat selvittää, mitkä PowerShell-senttiohjelmat ovat käytettävissä paikallisessa tietokoneessa, suorita tämä komento:

Get-Command

Get-Command on PowerShell-senttiohjelma, joka hakee paikalliselle tietokoneelle asennetut komento-ohjelmat, toiminnot, suodattimet ja PowerShell-skriptit. Yllä oleva komento hakee kaikki paikalliseen tietokoneeseen asennetut PowerShell-moduulit. Jos haluat nähdä kaikki paikalliseen tietokoneeseen asennetut komennot järjestyksessä, suorita tämä komento:

Get-Command -Type cmdlet | Sort-Object -Property Noun |FT -GroupBy Noun

Kolme erityyppistä PowerShell-toimintoa

PowerShell-skriptit
Käyttämällä PowerShelliä voit suorittaa kolmenlaisia toimintoja. Ne ovat Get, Set ja Remove. Kaikkia PowerShell-komentoja, jotka alkavat sanalla ”Get”, käytetään yleensä tietojen hakemiseen Windows-komponenteista. Esimerkiksi Get-ADUser suorittaa lukutoiminnon Active Directory -tietokantaan käyttäjätietojen hakemista varten. Alla on muutamia esimerkkejä Get-ADUser PowerShell-cmdletin käytöstä:

Get-ADUser -Filter * -SearchBase ”OU=TestUsers,DC=TechGenix,DC=Com”

Ylläoleva komento hakee kaikki organisaatiokokonaisuudessa sijaitsevat käyttäjätilejä, kun taas alla oleva komento hakee yksittäiseen Active Directory -käyttäjään liittyviä ominaisuuksia:

Get-ADUser -Identity JohnThomas -Properties *

PowerShell-komentoja, jotka alkavat sanalla ”Set”, käytetään Windows-komponenttien tietojen muokkaamiseen. Esimerkiksi Set-ADUserin avulla voit suorittaa erilaisia operatiivisia tehtäviä alla olevien komentojen mukaisesti:

Set-ADUser -Identity JohnThomas -HomeFolder \\Server1\%UserName%

Alhaalla olevilla komennoilla asetetaan käyttäjän JohnThomas sähköpostiominaisuus.

$ThisUser = Get-ADUser -Identity JohnThomas -Properties Mail
$ThisUser.Mail = [email protected]
Set-ADUser -Instance $ThisUser

powershell-skriptit

Kaikkea PowerShell-cmdletteja, jotka alkavat sanalla ”Poista”, käytetään poistotoimintojen suorittamiseen. Esimerkiksi Remove-ADUser-komentoa voidaan käyttää Active Directory -käyttäjän poistamiseen alla esitetyllä tavalla:

Remove-ADUser -Identity JohnThomas

PowerShell-komentokomentojen yhdistäminen

Yksi PowerShellin parhaista ominaisuuksista on mahdollisuus yhdistää kaksi tai useampia PowerShell-komentokomentoja yhdeksi PowerShell-komennoksi. Tällaisia komentoja kutsutaan joskus yhden rivin PowerShell-komennoiksi. Jos esimerkiksi haluat poistaa kaikki käytöstä poistetut käyttäjätilit Active Directorysta, voit yhdistää Search-ADAccount- ja Remove-ADUser PowerShell-komentokomennot alla olevan komennon mukaisesti:

Search-ADAccount -AccountDisabled | Where {$_.ObjectClass -eq ”User”} | Remove-ADUser

Kuten yllä olevasta komennosta näkyy, Search-ADAccount PowerShell-cmdlet suorittaa haun koko aktiivihakemistosta etsiäkseen käytöstä poistettuja tilejä, ja sitten putkioperaattorin (|) avulla ohjeistat Remove-ADUseria suorittamaan poisto-operaation vain niille käyttäjille, jotka Search-ADAccount on löytänyt.

PowerShellin aliakset

Vaikka monet PowerShell-cmdletit ovat helppolukuisia ja helppokäyttöisiä, PowerShell tarjoaa myös ominaisuuden nimeltä PowerShell alias. PowerShell on tarpeeksi älykäs täydentämään PowerShell-cmdletin nimen painamalla Tab-näppäintä. Jos sinulla on vaikeuksia muistaa PowerShell-komentojen nimiä, voit luoda PowerShell-alasanoja. Voit esimerkiksi luoda aliaksen Get-MailBoxStatistics PowerShell-cmdletille alla olevalla komennolla:

New-Alias ShowMB Get-MailBoxStatistics

Kun kirjoitat PowerShell-ikkunaan ”ShowMB”, PowerShell etsii ShowMB-aliasiin liittyvän cmdletin ja suorittaa sen.

Tietojen tallentaminen CSV-tiedostoon

Kun tietoja tallennetaan CSV-tiedostoon, PowerShell säästää paljon skriptityötä. PowerShell tarjoaa ”Export-CSV”-cmdletin, jota voit käyttää minkä tahansa muun PowerShell-cmdletin kanssa. Oletusarvoisesti mikä tahansa PowerShell-komento, jonka suoritat, näyttää tuloksena olevat tiedot PowerShellin komentoikkunassa, ellet lisää Export-CSV:tä komennon loppuun, kuten alla olevassa komennossa näkyy:

Get-ADUser -Filter * -SearchBase ”OU=TestUsers,DC=TechGenix,DC=Com” | Export-CSV C:\Temp\AllUsersInAnOU.CSV

Huomaa, että yllä olevassa komennossa lisäät vain komennon loppuun ”Export-CSV”, jotta tuloste viedään CSV-tiedostona.

Kuten huomaat, PowerShell-skriptit lyhentävät päivittäisten operatiivisten tehtävien suorittamiseen kuluvaa aikaa. PowerShell pystyy suorittamaan kolme operatiivista tehtävää; Get, Set ja Remove, ja 97 prosenttia PowerShell-komentokomennoista alkaa näillä kolmella sanalla, jotta PowerShell-komentokomennon toiminto on helppo tunnistaa. Kerroimme myös, kuinka helppoa on yhdistää kaksi cmdlettiä yhdeksi komennoksi, jotta PowerShell-skriptit olisivat tehokkaampia.

Vastaa

Sähköpostiosoitettasi ei julkaista.