Bevezetés a PowerShell világába
A PowerShell egy hatékony feladatautomatizálási keretrendszer és parancssori felület, amelyet a Microsoft fejlesztett ki a .NET platformra építve. Elsősorban rendszergazdák és fejlesztők használják a mindennapi adminisztrációs feladatok gyors és egyszerű elvégzésére. A PowerShell lehetővé teszi, hogy szkriptek segítségével bonyolult műveleteket hajtsunk végre, például felhasználók kezelését, szolgáltatások állapotának ellenőrzését, vagy akár hálózati beállítások módosítását. A PowerShell kód .ps1 kiterjesztéssel menthető, és a parancsokat cmdleteknek nevezzük, amelyek egységes szerkezettel rendelkeznek: Ige-Főnév formátumban. A PowerShell nem csupán egy parancssor, hanem egy teljes értékű szkriptnyelv, amely támogatja a változókat, a ciklusokat, a feltételes utasításokat és a csővezetéket is. A Microsoft folyamatosan fejleszti, és 2016 óta nyílt forráskódú, MIT licenc alatt elérhető PowerShell Core néven. A PowerShell segítségével a rendszergazdák jelentős időt takaríthatnak meg, hiszen egyetlen szkripttel több száz számítógépen végezhetnek el egységes beállításokat. A PowerShell kód írása során érdemes megismerkedni az alapvető parancsokkal, a csővezeték működésével, valamint a végrehajtási szabályokkal, amelyek a biztonságos szkriptezést szolgálják.

Alapvető cmdletek és használatuk
A PowerShell központi elemei a cmdletek, amelyek előre definiált parancsok. A leggyakrabban használt cmdletek közé tartozik a Get-Help, amely részletes információt nyújt bármely parancsról. A Get-Process megjeleníti a futó folyamatokat, míg a Set-Location a munkakönyvtár módosítására szolgál. A PowerShell támogatja a csővezetéket, ami azt jelenti, hogy egy parancs kimenetét közvetlenül átadhatjuk egy másik parancsnak. Ez rendkívül hatékony adatfeldolgozást tesz lehetővé. A gyakran használt cmdletek közé tartozik még a Get-Service, amely a számítógépen futó szolgáltatások állapotát listázza, valamint a Get-EventLog, amellyel az eseménynaplók tartalmát kérdezhetjük le. Az Active Directory kezeléséhez speciális cmdletek állnak rendelkezésre, például a Get-ADUser és a Get-ADComputer. A szkriptek biztonságos futtatásához a Set-ExecutionPolicy cmdlet segítségével állítható be a végrehajtási szabály, amely korlátozza, hogy mely szkriptek futhassanak a rendszeren. Az alábbi táblázat néhány alapvető cmdletet mutat be rövid leírással.

Get-Help: Súgó megjelenítése bármely parancshoz
Get-Process: Futó folyamatok listázása
Set-Location: Munkakönyvtár módosítása
Get-Service: Szolgáltatások állapotának lekérése
Get-EventLog: Eseménynaplók megjelenítése
Get-ADUser: Active Directory felhasználók lekérése
Set-ExecutionPolicy: Végrehajtási szabály beállítása

Példák PowerShell kódra
Egy egyszerű PowerShell szkript segítségével lekérdezhetjük azokat az Active Directory felhasználókat, akik az elmúlt 7 napban lettek létrehozva. A következő kódrészlet ezt mutatja be. A szkript először beállítja a referencia dátumot, majd a Get-ADUser cmdlet segítségével szűri a felhasználókat a whenCreated attribútum alapján. A -Filter paraméterben a szűrési feltételt adjuk meg, a -Properties paraméterrel pedig a kívánt tulajdonságokat listázzuk.

$Fecha = (Get-Date).AddDays(-7)
Get-ADUser -Filter {whenCreated -ge $Fecha} -Properties Name, Enabled, whenCreated

A PowerShell lehetőséget ad arra is, hogy a kimenetet táblázatos formában jelenítsük meg, vagy exportáljuk egy CSV fájlba. A következő példa a futó szolgáltatások listáját exportálja egy szöveges fájlba:
Get-Service | Out-File C:\szolgaltatasok.txt
A csővezeték használatával összetettebb műveletek is elvégezhetők. Például a Get-Process parancs kimenetét továbbíthatjuk a Sort-Object cmdletnek, hogy a folyamatokat memóriahasználat szerint rendezzük. A PowerShell kódban használhatunk változókat, amelyeket a $ jellel jelölünk, például $processz nevet. A ciklusok és feltételek segítségével komplex logikát építhetünk be a szkriptekbe. Az alábbi lista néhány gyakori programozási szerkezetet mutat be a PowerShellben.
for ciklus: ismétlés adott számú alkalommal
foreach ciklus: gyűjtemény elemeinek bejárása
if feltétel: egyszerű elágazás
switch feltétel: többirányú elágazás
Tippek a PowerShell hatékony használatához
A PowerShell szkriptek írásakor érdemes betartani néhány alapvető szabályt a jobb olvashatóság és karbantarthatóság érdekében. Használjunk kommenteket a kód magyarázatára, amelyeket a # jellel kezdünk. A cmdletek paramétereit célszerű teljes névvel megadni a rövidítések helyett, mert így a kód egyértelműbb lesz. A végrehajtási szabály beállításával biztosíthatjuk, hogy csak megbízható szkriptek fussanak a rendszeren. A PowerShell támogatja a távkezelést is, így távoli számítógépeken is futtathatunk parancsokat a New-PSSession





