Mi az a PowerShell?What is PowerShell?

A PowerShell egy többplatformos feladatok automatizálására és konfigurálására szolgáló keretrendszer, amely parancssori rendszerhéjból és programozási nyelvből áll.PowerShell is a cross-platform task automation and configuration management framework, consisting of a command-line shell and scripting language. A legtöbb rendszerhéjtól eltérően, amelyek elfogadják és visszaadják a szöveget, a PowerShell a .NET Common Language Runtime (CLR) rendszerre épül, és .NET-objektumokat fogad el és ad vissza.Unlike most shells, which accept and return text, PowerShell is built on top of the .NET Common Language Runtime (CLR), and accepts and returns .NET objects. Ez az alapvető változás teljesen új eszközöket és módszereket biztosít az automatizáláshoz.This fundamental change brings entirely new tools and methods for automation.

A kimenet objektum-alapúOutput is object-based

A hagyományos parancssori felületektől eltérően a PowerShell-parancsmagok az objektumok kezeléséhez lettek kialakítva.Unlike traditional command-line interfaces, PowerShell cmdlets are designed to deal with objects. Egy objektum olyan strukturált információ, amely több, mint csupán a képernyőn megjelenő sztring.An object is structured information that is more than just the string of characters appearing on the screen. A parancs kimenete mindig olyan további adatokat hordoz, amelyeket szükség esetén használhat.Command output always carries extra information that you can use if you need it.

Ha korábban már használta a szöveges feldolgozási eszközöket az adatfeldolgozáshoz, azt tapasztalhatja, hogy a PowerShell használatakor eltérően viselkednek.If you've used text-processing tools to process data in the past, you'll find that they behave differently when used in PowerShell. A legtöbb esetben nem szükséges, hogy a szöveg-feldolgozó eszközök kinyerjenek bizonyos információkat.In most cases, you don't need text-processing tools to extract specific information. Az adatrészeket közvetlenül az általános PowerShell-objektum szintaxisával érheti el.You directly access portions of the data using standard PowerShell object syntax.

A parancs családja bővíthetőThe command family is extensible

Az olyan felületek, mint például a cmd.exe nem biztosítják a beépített parancs közvetlen kibővítésének módját.Interfaces such as cmd.exe don't provide a way for you to directly extend the built-in command set. Létrehozhat külső parancssori eszközöket is, amelyek a-ben futnak cmd.exe .You can create external command-line tools that run in cmd.exe. Ezek a külső eszközök azonban nem rendelkeznek olyan szolgáltatásokkal, mint a Súgó integrációja.But these external tools don't have services, such as Help integration. cmd.exenem ismeri automatikusan, hogy ezek a külső eszközök érvényes parancsok.cmd.exe doesn't automatically know that these external tools are valid commands.

A PowerShell-parancsok _parancsmagként_ismertek.The commands in PowerShell are known as cmdlets. Az egyes parancsmagokat külön is használhatja, de a teljesítményük akkor valósul meg, ha összetett feladatok elvégzéséhez kombinálja őket.You can use each cmdlet separately, but their power is realized when you combine them to perform complex tasks. Sok rendszerhéjhoz hasonlóan a PowerShell hozzáférést biztosít a számítógép fájlrendszeréhez.Like many shells, PowerShell gives you access to the file system on the computer. A PowerShell- szolgáltatók lehetővé teszik más adattárak, például a beállításjegyzék és a tanúsítványtárolók elérését, a fájlrendszerhez való hozzáféréshez egyszerűen.PowerShell providers enable you to access other data stores, such as the registry and the certificate stores, as easily as you access the file system.

Saját parancsmagot és függvény-modulokat is létrehozhat fordított kód vagy parancsfájlok használatával.You can create your own cmdlet and function modules using compiled code or scripts. A modulok parancsmagokat és szolgáltatókat adhatnak hozzá a rendszerhéjhoz.Modules can add cmdlets and providers to the shell. A PowerShell a UNIX rendszerhéj-parancsfájlokhoz és a Batch-fájlokhoz hasonló parancsfájlokat is támogat cmd.exe .PowerShell also supports scripts that are analogous to UNIX shell scripts and cmd.exe batch files.

Parancsaliasok támogatásaSupport for command aliases

A PowerShell támogatja az aliasokat, hogy alternatív nevekkel hivatkozhatnak a parancsokra.PowerShell supports aliases to refer to commands by alternate names. Az aliasok lehetővé teszik a felhasználók számára, hogy más rendszerhéjokban is használják a hasonló műveleteket a PowerShellben.Aliasing allows users with experience in other shells to use common command names that they already know for similar operations in PowerShell.

Az aliasok új nevet társítanak egy másik paranccsal.Aliasing associates a new name with another command. A PowerShell tartalmaz például egy nevű belső függvényt, Clear-Host amely törli a kimeneti ablakot.For example, PowerShell has an internal function named Clear-Host that clears the output window. A parancssorban a vagy az alias is beírható cls clear .You can type either the cls or clear alias at a command prompt. A PowerShell értelmezi ezeket az aliasokat, és futtatja a Clear-Host függvényt.PowerShell interprets these aliases and runs the Clear-Host function.

Ez a funkció segíti a felhasználókat a PowerShell megismerésében.This feature helps users to learn PowerShell. Az első, a legtöbb cmd.exe és a UNIX rendszerű felhasználó nagy repertoárt tartalmaz a felhasználóknak, akik már ismerik a nevüket.First, most cmd.exe and Unix users have a large repertoire of commands that users already know by name. A PowerShell-ekvivalensek nem hozhatnak létre azonos eredményeket.The PowerShell equivalents may not produce identical results. Az eredmények azonban elég alaposak ahhoz, hogy a felhasználók a PowerShell-parancs nevének ismerete nélkül is működjenek.However, the results are close enough that users can do work without knowing the PowerShell command name. Az "izmok memóriája" az új parancs-rendszerhéj megtanulásakor a frusztráció egy másik jelentős forrása."Muscle memory" is another major source of frustration when learning a new command shell. Ha cmd.exe évek óta használta, előfordulhat, cls hogy a képernyő törléséhez a parancsot is visszaírja.If you have used cmd.exe for years, you might reflexively type the cls command to clear the screen. A-alias nélkül Clear-Host hibaüzenetet kap, és nem tudja, mi a teendő a kimenet törléséhez.Without the alias for Clear-Host, you receive an error message and won't know what to do to clear the output.

A PowerShell kezeli a konzol bemenetét és megjelenítésétPowerShell handles console input and display

A parancs beírásakor a PowerShell mindig közvetlenül a parancssori bemenetet dolgozza fel.When you type a command, PowerShell always processes the command-line input directly. A PowerShell a képernyőn megjelenő kimenetet is formázza.PowerShell also formats the output that you see on the screen. Ez a különbség jelentős, mivel csökkenti az egyes parancsmagokhoz szükséges munkát.This difference is significant because it reduces the work required of each cmdlet. Ez biztosítja, hogy minden parancsmaggal azonos módon végezze el a dolgokat.It ensures that you can always do things the same way with any cmdlet. A parancsmag-fejlesztőknek nem kell kódot írniuk a parancssori argumentumok elemzéséhez vagy a kimenet formázásához.Cmdlet developers don't need to write code to parse the command-line arguments or format the output.

A hagyományos parancssori eszközök saját sémával rendelkeznek a Súgó kéréséhez és megjelenítéséhez.Traditional command-line tools have their own schemes for requesting and displaying Help. Egyes parancssori eszközök /? a Súgó megjelenítésének elindítására használják, mások pedig -? , /H vagy akár // .Some command-line tools use /? to trigger the Help display; others use -?, /H, or even //. Egyesek nem a konzolon, hanem a grafikus felhasználói felületen jelenítik meg a súgót.Some will display Help in a GUI window, rather than in the console display. Ha nem megfelelő paramétert használ, az eszköz figyelmen kívül hagyhatja a beírt szöveget, és megkezdheti a feladatok automatikus végrehajtását.If you use the wrong parameter, the tool might ignore what you typed and begin executing a task automatically. Mivel a PowerShell automatikusan elemzi és feldolgozza a parancssort, a -? paraméter mindig azt jelenti, hogy a "Súgó megjelenítése ehhez a parancshoz".Since PowerShell automatically parses and processes the command line, the -? parameter always means "show me Help for this command".

Megjegyzés

Ha grafikus alkalmazást futtat a PowerShellben, megnyílik az alkalmazás ablaka.If you run a graphic application in PowerShell, the window for the application opens. A PowerShell csak a megadott parancssori bemenet feldolgozásakor beavatkozik, vagy az alkalmazás kimenete a konzol ablakába kerül.PowerShell intervenes only when processing the command-line input you supply or the application output returned to the console window. Nem befolyásolja az alkalmazás belső működését.It does not affect how the application works internally.

A PowerShell folyamattal rendelkezikPowerShell has a pipeline

A folyamatok a parancssori felületekben használt legértékesebb fogalmak.Pipelines are arguably the most valuable concept used in command-line interfaces. Megfelelő használat esetén a folyamatok csökkentik az összetett parancsok használatának erőfeszítéseit, és megkönnyítik a munka folyamatának megtekintését.When used properly, pipelines reduce the effort of using complex commands and make it easier to see the flow of work. Egy folyamat minden parancsa továbbítja a kimenetét, az elemét elem szerint a következő parancsra.Each command in a pipeline passes its output, item by item, to the next command. A parancsoknak egyszerre csak egy elemmel kell kezelnie.Commands don't have to handle more than one item at a time. Az eredmény csökkenti az erőforrás-használatot, és lehetővé teszi a kimenet azonnali lekérését.The result is reduced resource consumption and the ability to get output immediately.

A folyamatokhoz használt jelölés hasonló a más rendszerhéjokban használt jelölésekhez.The notation used for pipelines is similar to the notation used in other shells. Első pillantásra előfordulhat, hogy nem nyilvánvaló, hogy a folyamatok hogyan különböznek a PowerShellben.At first glance, it may not be apparent how pipelines are different in PowerShell. Bár a képernyőn látható szöveg jelenik meg, a PowerShell csövek objektumokat, nem szöveget, parancsok között.Although you see text on the screen, PowerShell pipes objects, not text, between commands.

Ha például a ( Out-Host z) parancsmag használatával kényszeríti a kimenet oldalról oldalra történő megjelenítését egy másik parancsból, a kimenet a képernyőn megjelenő normál szöveghez hasonlóan jelenik meg, az oldalakra bontva:For example, if you use the Out-Host cmdlet to force a page-by-page display of output from another command, the output looks just like the normal text displayed on the screen, broken up into pages:

Get-ChildItem | Out-Host -Paging
    Directory: /mnt/c/Git/PS-Docs/PowerShell-Docs/reference/7.0/Microsoft.PowerShell.Core

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----          05/22/2020    08:30                About
-----          05/20/2020    14:36           9044 Add-History.md
-----          05/20/2020    14:36          12227 Clear-History.md
-----          05/20/2020    14:36           3566 Clear-Host.md
-----          05/20/2020    14:36          29087 Connect-PSSession.md
-----          05/20/2020    14:36           5705 Debug-Job.md
-----          05/20/2020    14:36           3515 Disable-ExperimentalFeature.md
-----          05/20/2020    14:36          25531 Disable-PSRemoting.md
-----          05/20/2020    14:36           7852 Disable-PSSessionConfiguration.md
-----          05/20/2020    14:36          25355 Disconnect-PSSession.md
-----          05/20/2020    14:36           3491 Enable-ExperimentalFeature.md
-----          05/20/2020    14:36          13310 Enable-PSRemoting.md
-----          05/20/2020    14:36           8401 Enable-PSSessionConfiguration.md
-----          05/20/2020    14:36           9531 Enter-PSHostProcess.md
...
<SPACE> next page; <CR> next line; Q quit

A lapozás emellett csökkenti a CPU-kihasználtságot, mivel a Out-Host parancsmagnak a teljes oldal megjelenítésére kész lapokkal történő feldolgozását végzi.Paging also reduces CPU utilization because processing transfers to the Out-Host cmdlet when it has a complete page ready to display. Azok a parancsmagok, amelyek megelőzik a folyamatot a folyamat szüneteltetésének végrehajtásában, amíg a kimenet következő oldala elérhető nem lesz.The cmdlets that precede it in the pipeline pause execution until the next page of output is available.

Objektumok a folyamatbanObjects in the pipeline

Amikor parancsmagot futtat a PowerShellben, a szöveges kimenet jelenik meg, mivel az objektumokat szövegként kell megjeleníteni a konzol ablakban.When you run a cmdlet in PowerShell, you see text output because it is necessary to represent objects as text in a console window. Előfordulhat, hogy a szöveg kimenete nem jeleníti meg a kimenetben lévő objektum összes tulajdonságát.The text output may not display all of the properties of the object being output.

Vegyük például a Get-Location parancsmagot.For example, consider the Get-Location cmdlet. A szöveg kimenete az információk összegzése, nem pedig a által visszaadott objektum teljes ábrázolása Get-Location .The text output is a summary of information, not a complete representation of the object returned by Get-Location. A kimenetben szereplő fejlécet a képernyőn megjelenő megjelenítéshez használt folyamat adja hozzá.The heading in the output is added by the process that formats the data for onscreen display.

Get-Location
Path
----
C:\

A kimenet átirányítása a Get-Member parancsmagnak a által visszaadott objektumra vonatkozó információkat jeleníti meg Get-Location .Piping the output to the Get-Member cmdlet displays information about the object returned by Get-Location.

Get-Location | Get-Member
   TypeName: System.Management.Automation.PathInfo

Name         MemberType Definition
----         ---------- ----------
Equals       Method     bool Equals(System.Object obj)
GetHashCode  Method     int GetHashCode()
GetType      Method     type GetType()
ToString     Method     string ToString()
Drive        Property   System.Management.Automation.PSDriveInfo Drive {get;}
Path         Property   string Path {get;}
Provider     Property   System.Management.Automation.ProviderInfo Provider {get;}
ProviderPath Property   string ProviderPath {get;}

Get-Locationegy PathInfo objektumot ad vissza, amely az aktuális elérési utat és egyéb információkat tartalmazza.Get-Location returns a PathInfo object that contains the current path and other information.

Beépített súgórendszerBuilt-in help system

A UNIX man -lapokhoz hasonlóan a PowerShell részletes súgótémaköröket is tartalmaz, amelyek ismertetik a PowerShell-fogalmakat és a parancs szintaxisát.Similar to Unix man pages, PowerShell includes detailed help articles that explain PowerShell concepts and command syntax. A Get-Help parancsmag használatával jelenítse meg ezeket a cikkeket a parancssorban, vagy tekintse meg a cikkek legutóbb frissített verzióit a PowerShell-dokumentációban online.Use the Get-Help cmdlet to display these articles at the command prompt or view the most recently updated versions of these articles in the PowerShell documentation online.

További lépésekNext steps

A PowerShell-lel kapcsolatos további tudnivalókért tekintse meg a webhely learning PowerShell című szakaszát.To learn more about PowerShell, see the Learning PowerShell section of this site.