Powershell oktatóanyag kezdőknek
⚡ Okos összefoglaló
A PowerShell Scripting egy objektumorientált automatizálási motor, amely a .NET keretrendszerre épül. Parancsmagokat, szkripteket és egy szkriptnyelvet kombinál, hogy segítsen az informatikai rendszergazdáknak automatizálni a folyamatokat. Windows, szolgáltatások kezelése és távoli gépek csatlakoztatása egyetlen parancssorból.

Mi az a PowerShell?
Windows PowerShell egy objektumorientált automatizáló motor és szkriptnyelv. IT szakemberek és rendszergazdák számára készült, akiknek a következők adminisztrációját kell irányítaniuk és automatizálniuk: Windows és más alkalmazások. A PowerShell kiterjeszti a tanult fogalmakat Windows Parancssor és Windows Script Host új objektumokkal, parancsmagokkal és egy hatékony folyamattal.
Egyesíti a szkriptelés rugalmasságát, a parancssor sebességét és a grafikus adminisztrációs eszközök mélységét. Segítségével a rendszergazdák hatékonyan oldhatják meg a problémákat, és kiküszöbölhetik az órákig tartó manuális munkát. Ez az oktatóanyag végigvezeti a PowerShell alapismeretein.
Miért érdemes PowerShellt használni?
A PowerShell használatának legfontosabb okai a következők:
- Jól integrált parancssori élményt kínál az operációs rendszerhez.
- Teljes hozzáférést biztosít a .NET keretrendszer minden típusához.
- A vállalati rendszergazdák megbíznak benne.
- Lehetővé teszi a szerver és a munkaállomás komponenseinek manipulálását néhány sorral.
- Rendszergazdáknak szól, tiszta ige-főnév szintaxissal.
- Biztonságosabb, mint a futás vbscript vagy más hagyományos szkriptnyelvek.
PowerShell története
A PowerShell 1.0-s verzióját először 2006-ban adták ki. A PowerShell jelenleg a 7.2-es és újabb verzióknál tart. Ahogy a kiadások megjelentek, a képességei és a tárhelykörnyezetei jelentősen bővültek.
A PowerShell verziónkénti története:
- PowerShell 1.0 — támogatta a helyi közigazgatást Windows Server 2003.
- PowerShell 2.0 — integrálva a következővel: Windows 7 és Windows Server 2008 R2. Hozzáadva a távoli elérési, tranzakciós, háttérfeladatok, események és hibakeresési funkciók.
- PowerShell 3.0 — szállítva Windows 8 és Windows Server 2012 részeként Windows Felügyeleti keretrendszer. Hozzáadott ütemezett feladatok, munkamenet-kapcsolatok és automatikus modulbetöltés.
- PowerShell 4.0 — szállítva Windows 8.1 és Windows Server 2012 R2. Hozzáadva a kívánt állapotkonfiguráció, a továbbfejlesztett hibakeresés és a hálózati diagnosztika.
- PowerShell 5.0 — része Windows Management Framework 5. Hozzáadva a távoli hibakeresés, az osztálydefiníciók és a .NET felsorolások.
- PowerShell 7.2 — .NET 6.0-ra épül. Új operátorokat, dinamikus hibanézeteket és automatikus verzióértesítéseket ad hozzá.
A PowerShell jellemzői
- PowerShell távoli hozzáférés: szkriptek és cmdletek meghívása távoli gépen.
- Háttérmunkák: szkriptek vagy folyamatok aszinkron futtatása a helyi gépen vagy sok távoli gépen.
- Tranzakciók: Lehetővé teszi a cmdletek és a fejlesztők számára, hogy csoportosított műveleteket hajtsanak végre, amelyek együttesen véglegesíthetők vagy visszaállíthatók.
- Esemény: figyelje a vezetői és rendszereseményeket, továbbítsa azokat és cselekedjen.
- Hálózati fájlátvitel: natív támogatás a gépek közötti priorizált, aszinkron, szabályozott fájlátvitelhez a Background Intelligent Transfer Service (BITS) segítségével.
Hogyan indítsuk el a PowerShellt
A PowerShell minden újabb verzióján előre telepítve van. WindowsIndítsd el az alábbiak szerint.
Step 1) Keresés a PowerShellben Windows, majd jelölje ki és kattintson rá.
Step 2) Megnyílik a PowerShell ablak.
Cmdlet vs. Command
A parancsmag (ejtsd: „command-let”) egy könnyűsúlyú parancs, amelyet a PowerShell környezetben használnak. A PowerShell parancsmagokat hív meg a parancssorba, és a PowerShell API-k segítségével létrehozhat saját parancsmagokat. A parancsmagok a következő módokon különböznek a hagyományos shell parancsoktól:
- A parancsmagok azok . NET Framework osztályú objektumok; ezek nem futtathatók önálló végrehajtható fájlként.
- A parancsmagok akár egy tucat sornyi kódban is megírhatók.
- Az elemzést, a kimenet formázását és a hibák megjelenítését a futtatókörnyezet kezeli, nem maga a parancsmag.
- A parancsmagok objektumokkal működnek, így a szövegfolyamok és az objektumok is áramolhatnak a folyamatokon keresztül.
- A parancsmagok rekord alapúak, és egyszerre egyetlen objektumot dolgoznak fel.
A legtöbb PowerShell-funkció parancsmagokon keresztül érhető el, amelyek mindig ige-főnév elnevezési mintát használnak (mindig egyes számban). A parancsmagok objektumokat adnak vissza, nem szöveget. forgatókönyv — a cmdlettől eltérően — egy szövegfájlban tárolt parancsok sorozata, amelynek a neve .ps1 kiterjesztés.
A PowerShell tanulásához gyakran használt igék a következők:
- Kap – visszaszerezni valamit.
- Rajt — futtatni valamit.
- Ki — kiad valamit.
- megáll — megállítani valamit, ami fut.
- Készlet – meghatározni valamit.
- Újszerű – alkotni valamit.
Fontos PowerShell-parancsok
Kaphat segítséget: Tekintse meg a PowerShell-parancsok és -témakörök súgóját.
Példa: súgó megjelenítése a következőhöz: Format-Table parancs.
Get-Help Format-Table
Get-Command: információt szerezni bármiről, amire hivatkozni lehet.
Példa: a gépre telepített parancsmagok és függvények listájának létrehozása.
Get-Command
Szervizszolgáltatás: megkeresi az összes szolgáltatást a gépen.
Példa: minden olyan szolgáltatás lekérése, amelynek a neve „vm”-mel kezdődik.
Get-Service "vm*"
Tagfelvétel: mutasd meg, mit lehet kezdeni egy tárggyal.
Példa: a Get-Service által visszaadott virtuálisgép-szolgáltatások tagjainak listázása.
Get-Service "vm*" | Get-Member
Egyéb hasznos cmdletek:
Get-Module— a telepített parancscsomagok megjelenítése.Get-Content— beolvas egy fájlt és feldolgozza a tartalmát.Get-*helyettesítő karakter — listázza ki az összes „Get-” karakterlánccal kezdődő cmdletet.
Példa: hozzon létre egy mappát.
New-Item -Path 'X:\Guru99' -ItemType Directory
output:
PowerShell adattípusok
A PowerShell támogatja a szabványos .NET adattípusokat, így bármilyen értéket tisztán tárolhat egy változóban.
Speciális változók
A PowerShell számos beépített speciális változót tesz elérhetővé. A leghasznosabbakat az alábbiakban soroljuk fel.
| Speciális változó | Leírás |
|---|---|
| $Error | A legutóbbi hibákat reprezentáló hibaobjektumok tömbje. |
| $Host | Megjeleníti az aktuális tárhelyalkalmazás nevét. |
| $Profil | A felhasználói profil teljes elérési útját tárolja az alapértelmezett shellhez. |
| $PID | A folyamat azonosítóját tárolja. |
| $PSUICulture | Az aktuális felhasználói felület kultúra nevét tartalmazza. |
| $NULL | Az üres vagy null értéket tartalmazza. |
| $False | A logikai FALSE értéket tartalmazza. |
| $Igaz | Tartalmazza a logikai IGAZ értéket. |
PowerShell szkriptek
A PowerShell szkriptek itt vannak tárolva: .ps1 fájlokat. Alapértelmezés szerint nem futtathat szkripteket dupla kattintással – ez a védelem megvédi a rendszert a véletlen sérülésektől. Szkript végrehajtásához kattintson rá jobb gombbal, és válassza a „Futtatás PowerShell-lel”.
A végrehajtási szabályzat szabályozza, hogy mely szkriptek futtathatók. Az aktuális szabályzat megtekintéséhez kattintson ide: Get-ExecutionPolicyLehetséges értékek a következők:
- Korlátozott — szkriptek nem engedélyezettek. Ez az alapértelmezett beállítás.
- AllSigned – csak megbízható fejlesztő által aláírt szkriptek futnak, és mindegyik megerősítést igényel.
- Távoli aláírással — saját szkriptek futtatása, valamint megbízható forrásokból származó aláírt szkriptek.
- Korlátlan — bármilyen szkript lefuthat (takarékosan használd).
A végrehajtási szabályzat módosításának lépései:
Step 1) Nyisson meg egy emelt szintű PowerShell-parancssort a PowerShell parancs jobb gombbal történő kiválasztásával, majd a Futtatás rendszergazdaként.
Step 2) Futtassa az alábbi parancsokat.
Get-ExecutionPolicySet-ExecutionPolicy Unrestricted- belép
Ya megerősítő kérdésnél. Get-ExecutionPolicy
Az első PowerShell-szkript
Nyisd meg a Jegyzettömböt és írd be:
Write-Host "Hello, Guru99!"
Mentse el a fájlt egy .ps1 kiterjesztés – például FirstScript.ps1.
A PowerShellben futtassa a szkriptet a következővel:
& "X:\FirstScript.ps1"
Mi az a PowerShell ISE?
Az Windows PowerShell integrált szkriptelési környezet (ISE) a PowerShell alapértelmezett szerkesztője. Az ISE-ben parancsokat futtathat, teszteket írhat és szkripteket hibakereshet grafikus, ablakos környezetben. Támogatja a többsoros szerkesztést, a szintaxis színezését, a tabulátorok kiegészítését, a szelektív végrehajtást és egyebeket.
A PowerShell ISE egy konzolpanelt is kínál, amelyen közvetlenül futtathatók a parancsok, míg az oldalsó panelek a szkriptek forrását és az ISE-hez csatlakoztatott eszközöket jelenítik meg. Több szkriptablakot is megnyithat egyszerre – ez hasznos olyan szkriptek hibakeresésekor, amelyek más szkriptekben vagy modulokban definiált függvényektől függenek.
Hozza létre újra a korábbi szkriptet az ISE-ben:
- Illeszd be a kódot a szerkesztőbe.
- Mentse el a szkriptet.
- Nyomja meg az F5 billentyűt a futtatásához.
- Figyelje meg a kimenetet a konzol panelen.
2. minta: a következő szkript ingyenesen jelenik meg virtuális memória a gépen.
Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |
Select-Object -Property CSName, FreeVirtualMemory
PowerShell Concepts
A következő fogalmak alkotják a mindennapi PowerShell-munka szókincsét.
| Koncepció | Leírás |
|---|---|
| Parancsmagok | Beépített parancsok, .NET nyelveken, például VB-ben vagy C#-ban írva. A fejlesztők PowerShell beépülő modulok betöltésével vagy írásával bővíthetik a készletet. |
| Funkciók | Magában a PowerShell nyelven írt parancsok, IDE nélkül, például Visual Studio. |
| Scripts | Szöveges fájlok lemezen a következővel: .ps1 kiterjesztés. |
| Alkalmazási területek | Létező Windows a shellből meghívott programok. |
| Mi lenne, ha | Azt utasítja a cmdletet, hogy ne hajtsa végre a műveletet, hanem írja le, hogy mi történne, ha végrehajtaná. |
| megerősít | Utasítja a cmdletet, hogy végrehajtás előtt kérdést küldjön. |
| Bőbeszédű | Magasabb szintű működési részletességet biztosít. |
| Debug | Utasítja a cmdletet hibakeresési információk kibocsátására. |
| ErrorAction | Meghatározza, hogy mit tegyen a cmdlet hiba esetén. Megengedett értékek: continue, stop, silentlycontinue, inquire. |
| ErrorVariable | Megnevezi a hibainformációkat tároló változót. |
| OutVariable | Utasítja a cmdletet, hogy a kimenetét egy adott változóban tárolja. |
| KiBuffer | Meghatározott számú objektumot tárol, mielőtt továbbküldi őket a folyamaton. |
A PowerShell szkriptek használatának előnyei
- A PowerShell szkriptek hatékonyak és tömörek – néhány sorban is sokat elérhetsz.
- A változókat a következővel deklaráljuk:
$<variable>szintaxis. - A változók parancskimenetet, objektumokat és primitív értékeket tárolhatnak.
- A változó típusát nem kell explicit módon megadni.
PowerShell vs. parancssor
| PowerShell | Parancssor |
|---|---|
| Mélyen integrálva a WindowsInteraktív parancssort és teljes szkriptnyelvet kínál. | Az alapértelmezett parancssori felületet a következő biztosítja: MicrosoftEgy egyszerű Win32 alkalmazás, amely más Win32 objektumokkal kommunikál. |
| Interaktívan vagy automatizálási szkripteken keresztül meghívható parancsmagokat használ. | Nincsenek parancsmagok. |
| A kimenetet objektumként kezeli, így az egy másik cmdletbe áramolhat a folyamaton keresztül. | A kimenet egy sima szövegfolyam, nem objektumok. |
| Fejlett funkciók, képességek és belső architektúra. | Alap shell, amely alkalmas a hagyományos kötegelt feladatokhoz. |
A PowerShell alkalmazásai
A PowerShell az informatikai rendszergazdák standard választásává vált, mivel drámaian csökkenti a nagyvállalati hálózatokon átívelő erőfeszítéseket. Képzelje el, hogy több mint négyszáz szervert kezel, és bevezet egy új biztonsági megoldást, amely minden gazdagépen futó adott szolgáltatástól függ.
Az egyes szerverekre való manuális bejelentkezés lassú és hibalehetőségekkel jár. Egyetlen PowerShell szkript percek alatt felméri az összes szervert, jelentést készít arról, hogy mely hosztokon fut már a szolgáltatás, sőt, a többi szerveren engedélyezi is azt. A szkript egyszer rögzíti a szándékot, és megbízhatóan alkalmazza azt az egész szerveren.
















