Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A PowerShell egy parancssori rendszerhéj és egy szkriptnyelv. A PowerShell a Windowson indult el, hogy megkönnyítse a felügyeleti feladatok automatizálását. Most platformfüggetlen, és különböző feladatokhoz használható.
A PowerShell egyedivé teszi, hogy szöveg helyett .NET-objektumokat fogad el és ad vissza. Ez a funkció megkönnyíti a különböző parancsok csatlakoztatását egy folyamatban.
Mire használható a PowerShell?
A PowerShell használata azóta növekszik, hogy windowsos volt. Továbbra is a Windows-feladatautomatizáláshoz használják, de ma a következő feladatokhoz használhatja:
- Felhőfelügyelet. A PowerShell a felhőbeli erőforrások kezelésére használható. Lekérheti például a felhőbeli erőforrásokra vonatkozó információkat, valamint frissítheti vagy üzembe helyezheti az új erőforrásokat.
- CI/CD. A folyamatos integrációs/folyamatos üzembehelyezési folyamat részeként is használható.
- Az Active Directory és az Exchange feladatainak automatizálása. Ezzel szinte bármilyen feladatot automatizálhat Windows rendszeren, például felhasználókat hozhat létre az Active Directoryban és postaládákat az Exchange-ben.
A használatnak még sok más területe van, de az előző lista arra utal, hogy a PowerShell hosszú utat tett meg.
Ki használja a PowerShellt?
A PowerShell egy hatékony eszköz, amely számos szerepkörben dolgozó felhasználóknak nyújt segítséget. A PowerShellt hagyományosan a System Rendszergazda istrator szerepkör használja, de most már devOps-nak, cloud ops-nak, sőt fejlesztőknek hívják magukat.
PowerShell-parancsmagok
A PowerShell több száz előre telepített parancsot tartalmaz. A PowerShell-parancsokat parancsmagoknak nevezzük (ejtsd: command-lets).
Az egyes parancsmagok neve egy Verb-Noun párból áll. Például: Get-Process
. Ez az elnevezési konvenció megkönnyíti a parancsmagok megértését. Emellett megkönnyíti a keresett parancs megkeresését is. Ha használni kívánt parancsmagot keres, szűrhet az igére vagy a főnévre.
Parancsmagok használata a PowerShell megismeréséhez
Amikor először veszi fel a PowerShellt, az ijesztőnek tűnhet, mivel úgy tűnik, hogy annyira tanulni kell. A PowerShell úgy lett kialakítva, hogy segítsen egy kicsit egyszerre tanulni, ahogy szüksége van rá.
A PowerShell olyan parancsmagokat tartalmaz, amelyek segítenek a PowerShell felderítésében. A három parancsmag használatával megtudhatja, hogy milyen parancsok érhetők el, mit tesznek, és milyen típusokon működnek.
Get-Verb
. A parancs futtatása azoknak az igéknek a listáját adja vissza, amelyeket a legtöbb parancs betart. A válasz tartalmazza ezeknek az igéknek a leírását. Mivel a legtöbb parancs ezt az elnevezési konvenciot követi, elvárásokat támaszt a parancsok végrehajtásával kapcsolatban. Ez segít kiválasztani a megfelelő parancsot, és hogy mit nevezhet el egy parancsnak, ha létrehoz egyet.Get-Command
. Ez a parancs lekéri a számítógépre telepített összes parancs listáját.Get-Member
. Objektumalapú kimeneten működik, és képes felderíteni, hogy milyen objektumok, tulajdonságok és metódusok érhetők el egy parancshoz.Get-Help
. A parancs argumentumként való meghívása egy parancs nevével egy súgóoldalt jelenít meg, amely a parancs különböző részeit ismerteti.
Ezekkel a parancsokkal szinte bármit felfedezhet, amit tudnia kell a PowerShellről.
Parancs
Az ige a PowerShell egyik fontos fogalma. Ez egy elnevezési szabvány, amelyet a legtöbb parancsmag követ. Ez egy elnevezési szabvány is, amely a saját parancsok írásakor várható. Az ötlet az, hogy az Igét mondja ki, hogy mit próbál tenni, például olvasni vagy esetleg módosítani az adatokat. A PowerShell az igék szabványosított listáját tartalmazza. Az összes lehetséges igék teljes listájának lekéréséhez használja a Get-Verb
parancsmagot:
Get-Verb
A parancsmag az igék hosszú listáját adja vissza. A leírás kontextust biztosít az ige rendeltetéséhez. A kimenet első néhány sora a következő:
Verb AliasPrefix Group Description
---- ----------- ----- -----------
Add a Common Adds a resource to a container, or attaches an item to another item
Clear cl Common Removes all the resources from a container but does not delete the container
Close cs Common Changes the state of a resource to make it inaccessible, unavailable, or unusab…
Copy cp Common Copies a resource to another name or to another container
Enter et Common Specifies an action that allows the user to move into a resource
Exit ex Common Sets the current environment or context to the most recently used context
...
Parancsok keresése a Get-Command paranccsal
A Get-Command
parancsmag a rendszeren telepített összes elérhető parancs listáját adja vissza. A visszakapott lista elég nagy. A válasz paraméterek vagy segéd parancsmagok használatával történő szűrésével korlátozhatja a visszaadandó információk mennyiségét.
Név szűrése
Különböző paraméterekkel szűrheti a kimenetet Get-Command
. A szűrés lehetővé teszi bizonyos tulajdonságokkal rendelkező parancsok keresését. A Név paraméterrel név szerint kereshet meg egy adott parancsot.
Get-Command -Name Get-Process
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-Process 7.0.0.0 Microsoft.PowerShell.Management
Mi a teendő, ha meg szeretné találni a folyamatokkal működő összes parancsot? A sztring más formáihoz helyettesítő karaktert *
is használhat. Példa:
Get-Command -Name *-Process
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Debug-Process 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Get-Process 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Start-Process 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Stop-Process 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Wait-Process 7.0.0.0 Microsoft.PowerShell.Management
Szűrés főnévre és igére
Vannak más paraméterek is, amelyek az igére és a főnévre szűrnek. A parancs nevének igerésze a bal szélső rész. Az igének a parancsmag által visszaadott Get-Verb
értékek egyikének kell lennie. A parancsok jobb szélső része a főnév. A főnév bármi lehet.
Szűrés az igére. A parancsban
Get-Process
az igerész a következőGet
. Az igerészre való szűréshez használja az Ig paramétert.Get-Command -Verb 'Get'
Ez a példa felsorolja az összes parancsot, amely az igét
Get
használja.Szűrjön főnévre. A parancsban
Get-Process
a főnév a következőProcess
. A főnévre való szűréshez használja a Főnév paramétert. Az alábbi példa az összes főnévvel rendelkező parancsmagot adja vissza a betűvel kezdődőenU
.Get-Command -Noun U*
A paraméterek kombinálásával szűkítheti a keresést, például:
Get-Command -Verb Get -Noun U*
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-UICulture 7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Unique 7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Uptime 7.0.0.0 Microsoft.PowerShell.Utility
Találatok szűrése segítő parancsmagokkal
Az eredmények szűréséhez más parancsmagokat is használhat.
Select-Object
. Ez a sokoldalú parancs segít kiválasztani egy vagy több objektum adott tulajdonságait. A visszakapott elemek számát is korlátozhatja. Az alábbi példa az aktuális munkamenetben elérhető első 5 parancs Név és Forrás tulajdonságértékeit adja vissza.Get-Command | Select-Object -First 5 -Property Name, Source
Name Source ---- ------ Add-AppPackage Appx Add-AppPackageVolume Appx Add-AppProvisionedPackage Dism Add-AssertionOperator Pester Add-ProvisionedAppPackage Dism
További információ: Select-Object.
Where-Object
. Ez a parancsmag lehetővé teszi a visszaadott objektumok szűrését a tulajdonságok értékei alapján. A parancs egy tulajdonság értékét tesztelő kifejezést vesz fel. Az alábbi példa az összes folyamatot visszaadja, ahol aProcessName
kezdő érték ap
következő: .Get-Process | Where-Object {$_.ProcessName -like "p*"}
A
Get-Process
parancsmag folyamatobjektumok gyűjteményét adja vissza. A válasz szűréséhez a kimenetet a következőre kell átirányítaniWhere-Object
: . A piping azt jelenti, hogy két vagy több parancs egy cső|
karakteren keresztül csatlakozik. Az egyik parancs kimenete a következő parancs bemeneteként lesz elküldve. A szűrőkifejezésWhere-Object
az operátort használja a-like
betűvelp
kezdődő folyamatok egyeztetésére.
Objektumok felfedezése a Get-Member használatával
Miután megtalálta a kívánt parancsmagot, többet szeretne tudni arról, hogy milyen kimenetet hoz létre. A Get-Member
parancsmag megjeleníti egy objektum típusát, tulajdonságait és metódusait. A vizsgálandó kimenet becsúszása Get-Member
.
Get-Process | Get-Member
Az eredmény megjeleníti a visszaadott típust, valamint TypeName
az objektum összes tulajdonságát és metódusát. Íme egy részlet egy ilyen eredményből:
TypeName: System.Diagnostics.Process
Name MemberType Definition
---- ---------- ----------
Handles AliasProperty Handles = Handlecount
Name AliasProperty Name = ProcessName
...
A MemberType paraméterrel korlátozhatja a visszaadott adatokat.
Get-Process | Get-Member -MemberType Method
Alapértelmezés szerint a PowerShell csak néhány tulajdonságot jelenít meg. Az előző példában a tagok és Definition
a Name
tagok MemberType
láthatók. Megadhatja Select-Object
a megtekinteni kívánt tulajdonságokat. Például csak a Name
tulajdonságokat Definition
szeretné megjeleníteni:
Get-Process | Get-Member | Select-Object Name, Definition
Keresés paramétertípus szerint
Get-Member
Get-Process
folyamat típusú objektumokat ad vissza. A ParameterType paraméter használható Get-Command
más parancsok megkeresésére, amelyek bemenetként folyamatobjektumokat használnak.
Get-Command -ParameterType Process
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Debug-Process 7.0.0.0 Microsoft.PowerShell.Managem…
Cmdlet Enter-PSHostProcess 7.1.0.0 Microsoft.PowerShell.Core
Cmdlet Get-Process 7.0.0.0 Microsoft.PowerShell.Managem…
Cmdlet Get-PSHostProcessInfo 7.1.0.0 Microsoft.PowerShell.Core
Cmdlet Stop-Process 7.0.0.0 Microsoft.PowerShell.Managem…
Cmdlet Wait-Process 7.0.0.0 Microsoft.PowerShell.Managem…
A parancsok kimeneti típusának ismerete segíthet szűkíteni a kapcsolódó parancsok keresését.