Powershell oktatóanyag kezdőknek: Ismerje meg a Powershell-szkripteket
Mi az a PowerShell?
Windows PowerShell egy objektum-orientált automatizálási motor és szkriptnyelv. Főleg informatikai szakembereknek és rendszergazdáknak készült, hogy ellenőrizzék és automatizálják az adminisztrációt Windows OS és egyéb alkalmazások. Lenyűgöző új koncepciókat kínál a megszerzett tudás és a programon belül létrehozott szkriptek bővítésére Windows Parancssor és Windows Script Host környezetek.
Egyesíti a szkriptelés rugalmasságát, a parancssori sebességet és a grafikus felhasználói felület alapú adminisztrációs eszköz erejét. Lehetővé teszi a problémák hatékony megoldását azáltal, hogy segít a rendszergazdáknak a jövőbeni kézi munkaórák kiküszöbölésében. Végigmegyünk minden fontos szemponton, amelyet tudnia kell a PowerShell megtanulásához.
Ez egy teljes útmutató a Powershell szkriptelési alapjaihoz… kezdjük!
Miért érdemes Powershell-t használni?
Íme néhány fontos ok a Powershell használatára:
- A Powershell jól integrált parancssori élményt kínál az operációs rendszerhez
- A PowerShell teljes hozzáférést biztosít a .NET-keretrendszer összes típusához
- A rendszergazdák megbízhatóak.
- A PowerShell egy egyszerű módja a kiszolgáló- és munkaállomás-összetevők kezelésének
- Egyszerűbb szintaxis létrehozásával a rendszergazdák számára készült
- A PowerShell biztonságosabb, mint a futás vbscript vagy más szkriptnyelvek
PowerShell története
A PowerShell első 1.0-s verziója 2006-ban jelent meg. Ma a PowerShell 7.2-es verziója van. Ahogy telt az év és a verzió, a PowerShell képességei és tárhelykörnyezete jelentősen bővült.
Tekintse meg a Powershell verzió szerinti történetét:
- A PowerShell 1. verziója támogatta a helyi adminisztrációt Windows szerver 2003
- A PowerShell 2.0 integrálva lett Windows 7 és Windows Server 2008 R2. Ez a verzió támogatja a távvezérlést, és javítja a PowerShell képességeit, például tranzakciókat, háttérfeladatokat, eseményeket, hibakeresést stb.
- A PowerShell 3.0 a program belső részeként jelent meg Windows irányítási keret. Telepítésre került Windows 8 és Windows Server 2012. Felvehet és ütemezhet feladatokat, munkamenet-kapcsolatot, automatikus modulbetöltést stb.
- A PowerShell 4.0-t együtt szállították Windows 8.1 és Windows Server 2012 R2. Ebben a verzióban hozzáadtuk a kívánt állapotkonfiguráció támogatását, a továbbfejlesztett hibakeresést és a hálózati diagnosztikát.
- A PowerShell 5.0 belső részeként jelent meg Windows felügyeleti keretrendszer 5. Ebben a verzióban a szolgáltatások a távoli hibakeresés, osztálydefiníciók, .NET felsorolások stb.
- Megjelent a PowerShell 7.2. .NET 6.0-ra épül. Ez a verzió új operátorokat, egyszerűsített és dinamikus hibanézetet, automatikus új verzióértesítéseket stb. kínál.
Ebben a Powershell szkriptelési oktatóanyagban a következő lépésben a Powershell szolgáltatásairól fogunk tanulni.
A Powershell jellemzői
- PowerShell távoli: A PowerShell lehetővé teszi a parancsfájlok és parancsmagok meghívását egy távoli gépen.
- Háttér állások: Segít aszinkron módon meghívni a parancsfájlt vagy a folyamatot. A feladatokat a helyi gépen vagy több távolról működtetett gépen is futtathatja.
- Tranzakciók: Engedélyezze a parancsmagot, és lehetővé teszi a fejlesztők számára a végrehajtást
- Este: Ez a parancs segít a felügyeleti és rendszeresemények figyelésében, továbbításában és az azokra vonatkozó műveletekben.
- Hálózati fájlátvitel: A Powershell natív támogatást kínál a fájlok elsőbbségi, aszinkron, fojtott, gépek közötti átviteléhez a Background Intelligent Transfer Service (BITS) technológia segítségével.
A PowerShell elindítása
Ebben a Powershell-szkript oktatóanyagban megtudjuk, hogyan indítható el a Powershell Windows OS.
A PowerShell minden legújabb verziójában előre telepítve van Windows. Ehhez el kell indítanunk a PowerShellt, és követnünk kell a megadott lépéseket:
Step 1) Keresés a PowerShellben Windows. Válassza ki és kattintson
Step 2) Megnyílik a Power Shell ablak
PowerShell parancsmag
A parancsmag, amelyet Command letnek is neveznek, egy egyszerű parancs, amelyet a Window PowerShell-környezetben használnak. A PowerShell meghívja ezeket a parancsmagokat a parancssorban. A PowerShell APIS használatával parancsmagokat hozhat létre és hívhat meg.
Cmdlet vs. Command
A parancsmagok a következő módokon különböznek a többi parancshéj-környezetben lévő parancsoktól ?
- A parancsmagok azok . NET Framework osztály objektumai Nem hajtható végre külön
- A parancsmagok akár egy tucat sornyi kódból is összeállíthatnak
- Az elemzést, a kimeneti formázást és a hibabemutatót nem kezelik a parancsmagok
- A parancsmagok folyamata objektumokon működik. Így a szövegfolyam és az objektumok nem adhatók át kimenetként a feldolgozáshoz
- A parancsmagok rekord alapúak, így egyszerre egyetlen objektumot dolgoznak fel
A PowerShell legtöbb funkciója a parancsmagból származik, amely mindig ige-főnév formátumban van, nem többes számban. Ráadásul a parancsmag objektumokat ad vissza, nem szöveget. A parancsmag több sorból álló, .ps1 kiterjesztésű szövegfájlban tárolt parancsok sorozata.
A cmdlet mindig egy igéből és egy főnévből áll, amelyeket kötőjellel választanak el. A PowerShell megtanulásához használt igék közül néhány:
- Kap - Hogy szerezzek valamit
- Rajt – Futni valamit
- Ki — Kiadni valamit
- megáll - Megállítani valamit, ami fut
- Készlet - Meghatározni valamit
- Újszerű - Létrehozni valamit
PowerShell parancsok
Az alábbiakban felsoroljuk a fontos PowerShell-parancsokat:
Kaphat segítséget: Súgó a PowerShell-parancsokról és témakörökről
Példa: Súgó információ megjelenítése a Format-Table parancsról
Get-Help Format-Table
Get-Command: Szerezzen információkat mindenről, amire hivatkozni lehet
Példa Powershell-szkriptre: A gépre telepített parancsmagok, függvények listájának létrehozása
Get-Command
Szervizszolgáltatás: Megkeresi az összes olyan parancsmagot, amelyben a „szolgáltatás” szó szerepel.
Példa: Szerezzen be minden „vm”-vel kezdődő szolgáltatást
Get-Service "vm*"
Tagság: Mutassa meg, mit lehet tenni egy tárggyal
Példa: Szerezze be a VM-folyamatok tagjait.
Get-Service "vm*" | Get-Member
Egyéb parancsok:
- Get Module Megjeleníti a parancscsomagokat
- Tartalom beszerzése Ez a parancsmag képes fájlokat fogadni, feldolgozni a tartalmát, és tenni is tud vele valamit
- Get- get Megkeresi az összes parancsmagot, amelyek a "get-" szóval kezdődnek
Példa: Hozzon létre egy mappát
New-Item -Path 'X:\Guru99' -ItemType Directory
output:
Powershell adattípusok
Speciális változók
Speciális változó | Leírás |
---|---|
$Error | Hibaobjektumok tömbje, amely a legújabb hibákat jeleníti meg |
$Host | Jelenítse meg az aktuális tárhely alkalmazás nevét |
$Profil | Az alapértelmezett shell felhasználói profiljának teljes elérési útját tárolja |
$PID | Tárolja a folyamatazonosítót |
$PSUICulture | A jelenlegi felhasználói felületi kultúra nevét viseli. |
$NULL | Üres vagy NULL értéket tartalmaz. |
$False | FALSE értéket tartalmaz |
$Igaz | IGAZ értéket tartalmaz |
PowerShell szkriptek
A Powershell-szkriptek .ps1 fájlban tárolódnak. Alapértelmezés szerint nem futtathat szkriptet a fájlra való dupla kattintással. Ez megvédi a rendszert a véletlen sérülésektől. Egy szkript végrehajtásához:
1. lépés: kattintson rá jobb gombbal, és kattintson a „Futtatás PowerShell-lel” lehetőségre.
Ezenkívül van egy szabályzat, amely korlátozza a szkriptek végrehajtását. Ezt a házirendet a Get-ExecutionPolicy parancs futtatásával tekintheti meg.
A következő kimenetek egyikét kapja meg:
- Korlátozott— Nem engedélyezettek a szkriptek. Ez az alapértelmezett beállítás, így a parancs futtatásakor először jelenik meg.
- AllSigned— Megbízható fejlesztő által aláírt szkripteket futtathat. Ennek a beállításnak a segítségével a szkript megerősítést kér a futtatás előtt.
- Távoli aláírással— Futtathatja saját vagy szkriptjeit megbízható fejlesztő által aláírt.
- Korlátlan— Bármilyen szkriptet futtathat, amelyet futtatni szeretne
A végrehajtási szabályzat megváltoztatásának lépései
Step 1) Nyisson meg egy emelt szintű PowerShell-promptot. Kattintson a jobb gombbal a PowerShellre, majd a „Futtatás rendszergazdaként” elemre.
Step 2) Írja be a következő parancsokat
- Get-ExecutionPolicy
- A készlet-végrehajtási politika korlátlan
- Írja be az Y-t a promptba
- Get-ExecutionPolicy
Az első PowerShell-szkript
Jegyzettömbbe írja be a következő parancsot
Write-Host "Hello, Guru99!"
A PowerShell-szkriptek ps1 kiterjesztéssel rendelkeznek. Mentse a fájlt FirstScript.ps1 néven
A Powershellben hívja meg a szkriptet a paranccsal
& "X:\FirstScript.ps1"
Mi az a PowerShell ISE?
A Windows A PowerShell Integrated Scripting Environment (ISE) az alapértelmezett szerkesztő Windows PowerShell. Ebben az ISE-ben parancsokat, írótesztet és hibakereső szkripteket futtathat egy ablakalapú grafikus felhasználói felületen. Többsoros szerkesztést, szintaktikai színezést, tabulátor-kiegészítést, szelektív végrehajtást és sok más dolgot végezhet.
Windows A PowerShell ISE lehetővé teszi a parancsok futtatását a konzol ablaktáblájában is. Ugyanakkor támogatja az ablaktáblákat is, amelyek segítségével egyidejűleg megtekintheti a szkript forráskódját és más eszközöket, amelyeket csatlakoztathat az ISE-hez.
Akár több script ablakot is megnyithat egyszerre. Ez különösen akkor hasznos, ha olyan szkriptet keres, amely más szkriptekben vagy modulokban meghatározott függvényeket használ.
Ugyanaz a szkript, amelyet a Jegyzettömbben készítettünk, létrehozható az ISE-ben
- Illessze be a kódot a szerkesztőbe
- Szkript mentése
- Használja az F5 billentyűt a szkript futtatásához
- Figyelje meg a kimenetet a konzolban
2. minta:
A következő kód az ingyenes Virtuális memória a gépedben
Get-WmiObject -Class Win32_OperatingSystem –ComputerName localhost | Select-Object -Property CSName,FreeVirtualMemory
PowerShell Concepts
Ebben a Powershell kezdőknek szóló oktatóanyagában a fontos Powershell-fogalmakat fogjuk megismerni:
Parancsmagok | A parancsmagok .net nyelveken, például VB vagy C# írt build-parancsok. Lehetővé teszi a fejlesztők számára a parancsmagok készletének kiterjesztését PowerShell beépülő modulok betöltésével és írásával. |
Funkciók | A függvények PowerShell nyelven írt parancsok. Más IDE használata nélkül is fejleszthető Visual Studio és fejlesztők. |
Scripts | A szkriptek .ps1 kiterjesztésű szövegfájlok a lemezen |
Alkalmazási területek | Az alkalmazások létező Windows programok. |
Mi van ha | Azt mondja a parancsmagnak, hogy ne hajtsa végre, hanem mondja meg, mi történne, ha a parancsmag futna. |
megerősít | Utasítsa a parancsmagot a parancs végrehajtására a parancs végrehajtása előtt. |
Bőbeszédű | Magasabb részletgazdagságot biztosít. |
Debug | Utasítja a parancsmagot, hogy adjon meg hibakeresési információkat. |
ErrorAction | Arra utasítja a parancsmagot, hogy hiba esetén egy adott műveletet hajtson végre. Az engedélyezett cselekvések folytatódnak, megállnak, csendben – folytassák és érdeklődjenek. |
ErrorVariable | Megadja azt a változót, amely a hibainformációkat tartalmazza. |
OutVariable | Megmondja a parancsmagnak, hogy egy adott változót használjon a kimeneti információk tárolására |
KiBuffer | Utasítja a parancsmagot, hogy a folyamatban lévő következő parancsmag meghívása előtt tartsa meg az objektumok adott számát. |
A PowerShell-szkript használatának előnyei
- A PowerShell-szkriptek nagyon hatékonyak, és kevesebb sorban sok mindent el tudnak végezni.
- A változók deklarálása $ formában történik
- Változók használhatók a parancsok, objektumok és értékek kimenetének megtartására.
- A változó „típusát” nem kell megadni.
PowerShell vs. Parancssor
PowerShell | Parancssor |
---|---|
A PowerShell mélyen integrálódik a Windows OS. Interaktív parancssori felületet és szkriptnyelvet kínál. | A Command Prompt egy alapértelmezett parancssori felület, amelyet a Microsoft. Ez egy egyszerű win32-alkalmazás, amely képes kommunikálni és kommunikálni bármely win32-objektummal Windows operációs rendszer. |
A PowerShell úgynevezett parancsmagokat használ. Meghívható a futási környezetben vagy az automatizálási parancsfájlokban. | A parancssorból nem kínálnak ilyen funkciókat. |
A PowerShell objektumnak tekinti őket. Így a kimenet bemenetként továbbítható más parancsmagokhoz a folyamaton keresztül. | A parancssor vagy akár a *nix shell, a parancsmagból generált kimenet nem csupán egy szövegfolyam, hanem objektumok gyűjteménye. |
A PowerShell nagyon fejlett a funkciók, a képességek és a belső működés tekintetében. | A parancssor nagyon alapvető. |
A Powershell alkalmazásai
Mára a PowerShell ideális választássá vált az informatikai rendszergazdák számára, mivel megkönnyíti a felügyeleti műveleteket és erőfeszítéseket a nagy vállalati hálózatokban. Tegyük fel például, hogy egy nagy hálózatot kezel, amely több mint négyszáz szervert tartalmaz. Most egy új biztonsági megoldást szeretne bevezetni. Ez a biztonsági megoldás egy bizonyos szolgáltatástól függ, amelynek futnia kell ezeken a szervereken.
Biztosan bejelentkezhet minden kiszolgálóra, és megnézheti, hogy telepítve van-e a szolgáltatás, és fut-e vagy sem. Azonban minden bizonnyal sok emberi hibára van szükség, mivel a személyzetnek sok időt kell töltenie ezzel a nem produktív folyamattal.
Ha azonban a PowerShellt használja, akkor ezt a feladatot néhány perc alatt elvégezheti. Ennek az az oka, hogy a teljes művelet egyetlen szkripttel történik, amely információkat gyűjt a szervereken futó szolgáltatásokról.
Összegzésként
- Windows A PowerShell egy objektumorientált automatizálási motor és szkriptnyelv
- A Powershell jól integrált parancssori élményt kínál az operációs rendszerhez
- A PowerShell első 1.0-s verziója 2006-ban jelent meg
- A PowerShell lehetővé teszi a parancsfájlok és parancsmagok meghívását egy távoli gépen
- A PowerShell minden legújabb verziójában előre telepítve van Windows
- A parancsmag egy egyszerű parancs, amelyet a Windows PowerShell-környezetben használnak
- Get, Start, Out, Stop, Set, New fontos PowerShell parancsok
- A logikai, bájt, csevegés, decimális, decimális és hosszú a PowerShell fontos adattípusai
- $Error. A $Host, $Profile, $PID, $PSUICulture, $NULL néhány speciális változó, amelyet a PowerShell használ.
- A Windows A PowerShell Integrated Scripting Environment (ISE) a PowerShell alapértelmezett szerkesztője
- A PowerShell mélyen integrálódik a Windows Az operációs rendszer, míg a Command Prompt egy alapértelmezett parancssori felület, amelyet a Microsoft
- A PowerShell ideális választássá vált az informatikai rendszergazdák számára, mivel megkönnyíti a felügyeleti műveleteket és erőfeszítéseket a nagy vállalati hálózatokban