PowerShell (tsz. PowerShells)
PowerShell a rendszergazdák, fejlesztők és DevOps szakemberek által széles körben használt eszköz, mivel erős automatizálási lehetőségeket kínál, és jól integrálható más Microsoft termékekkel, mint például az Active Directory, Azure vagy Microsoft 365. Támogatja a távoli parancsok végrehajtását és a szkriptek készítését, amelyekkel összetett feladatok is könnyen kezelhetővé válnak.
Objektumalapú környezet: A PowerShell eltér a hagyományos parancssori eszközöktől, mivel az adatok szöveges alapon való kezelése helyett objektumokat használ. Amikor egy parancsot végrehajtunk, az eredmény objektumokat ad vissza, amelyekkel könnyebb és hatékonyabb dolgozni, mint a szöveges kimenetekkel.
Cmdlet-ek: A PowerShell a beépített cmdlet-eket (ejtsd: “command-let”) használja. Ezek speciális, előre definiált parancsok, amelyek egyszerűsítik az automatizálási feladatokat. Például fájlok kezelése, rendszerinformációk lekérdezése, folyamatok futtatása mind cmdlet-ek segítségével végezhető el. A cmdlet-ek általában ige-főnév
formában épülnek fel, például:
Get-Process
: Folyamatok listázásaGet-ChildItem
: Fájlok és könyvtárak listázásaSet-ExecutionPolicy
: A PowerShell végrehajtási szabályainak beállításaSzkriptnyelv: A PowerShell szkriptnyelve erős és rugalmas. Lehetővé teszi komplex feladatok automatizálását, feltételes logikát, ciklusokat és változók használatát. Szkriptek írásával és futtatásával rendszergazdai feladatokat automatizálhatsz, például felhasználói fiókok létrehozását, rendszerek állapotának figyelését vagy adatbázis-műveleteket.
Pipelining: A PowerShellben a pipe (|) használata lehetővé teszi, hogy az egyik parancs kimenetét egy másik parancs bemeneteként továbbítsd. Ez a pipelining különösen hasznos az automatizálás során, mert lehetővé teszi, hogy több műveletet is összekapcsolj és egy parancsban végezz el:
Get-Process | Where-Object {$_.CPU -gt 100} | Stop-Process
A fenti példa leállít minden olyan folyamatot, amely több mint 100%-nyi CPU-t használ.
Távoli végrehajtás: A PowerShell támogatja a távoli parancsok végrehajtását, vagyis egy számítógépről vezérelhetsz távol lévő szervereket vagy munkaállomásokat. Ezt a Windows Remote Management (WinRM) technológia támogatja, és különösen hasznos nagy infrastruktúrák menedzselésekor.
Saját modulok és parancsok létrehozása: A PowerShell lehetővé teszi saját cmdlet-ek és modulok létrehozását. A modulok gyűjtemények, amelyek tartalmazhatnak cmdlet-eket, függvényeket és változókat, így lehetővé téve, hogy saját, testreszabott funkciókat adjunk a PowerShell környezethez.
Integráció a Microsoft technológiákkal: PowerShell erősen integrált a Microsoft ökoszisztémával, beleértve a Windows Server funkciókat, az Active Directory-t, az Exchange Server-t, a SharePoint-ot, valamint az Azure-t és a Microsoft 365-öt. Számos speciális modul létezik ezekhez a szolgáltatásokhoz, amelyekkel egyszerűsíthető a menedzsment és az automatizáció.
PowerShell Core (Keresztplatform támogatás): A PowerShell Core, a PowerShell nyílt forráskódú változata, Linuxon és macOS-en is futtatható, így lehetővé teszi, hogy egységesen dolgozz különböző operációs rendszereken. A PowerShell Core pwsh
néven érhető el, és kicsit eltér a hagyományos Windows-specifikus PowerShell-től, de alapvető funkcionalitása hasonló.
Rendszeradminisztráció: A PowerShell lehetővé teszi a Windows rendszerek központi menedzselését. Például fájlok kezelése, felhasználók és csoportok létrehozása, szoftvertelepítések automatizálása, szerverek monitorozása és rendszergazdai feladatok automatizálása könnyen elvégezhető.
Active Directory menedzsment: Az Active Directory modul lehetővé teszi a felhasználók, csoportok, számítógépek és egyéb AD-objektumok kezelését. Például automatizálható felhasználói fiókok létrehozása, jelszó visszaállítása, csoportokhoz való hozzáadás, és így tovább:
New-ADUser -Name "John Doe" -SamAccountName "jdoe" -Path "OU=Users,DC=example,DC=com"
Automatizált frissítések: PowerShell használható szoftverek, Windows-frissítések és konfigurációs változások telepítésére nagy számú gépre egyszerre.
Folyamatok monitorozása és kezelése: A PowerShell lehetőséget nyújt a futó folyamatok figyelésére és vezérlésére. Leállíthatók, újraindíthatók vagy elindíthatók folyamatok, feltételek alapján:
Get-Process | Where-Object {$_.CPU -gt 50} | Stop-Process
Azure és felhőszolgáltatások kezelése: PowerShell segítségével könnyen menedzselhetők az Azure erőforrások, például virtuális gépek, tárolók vagy hálózatok. Az Azure PowerShell modul támogatja az erőforrások létrehozását, módosítását és monitorozását:
New-AzVm -ResourceGroupName "MyResourceGroup" -Name "MyVM" -Image "UbuntuLTS"
CI/CD pipeline integráció: PowerShell gyakran használatos folyamatos integrációs és telepítési (CI/CD) folyamatok automatizálására, különösen DevOps környezetekben, ahol különböző rendszerek és szolgáltatások közötti folyamatokat kell koordinálni.
Egyszerű parancs futtatása:
Get-Date
Ez a parancs visszaadja az aktuális dátumot és időt.
Folyamatok listázása és szűrése:
Get-Process | Where-Object {$_.CPU -gt 50}
Ez a parancs kilistázza az összes folyamatot, amelyek több mint 50%-nyi CPU-t használnak.
Fájlok másolása:
Copy-Item -Path "C:\Source\file.txt" -Destination "C:\Destination\"
Szkript írása egy fájlba: A PowerShell szkriptek .ps1
fájlban kerülnek mentésre, például:
$name = "John Doe"
Write-Host "Hello, $name"
Ezt a szkriptet mentheted egy hello.ps1
fájlba, majd futtathatod PowerShellből.