Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
PowerShell je prostředí příkazového řádku a skriptovací jazyk v jednom. PowerShell byl původně vyvinut na Windows, aby pomáhal automatizovat administrativní úkoly. Teď běží na různých platformách a dá se použít pro různé úlohy.
PowerShell je jedinečný tím, že přijímá a vrací objekty .NET, nikoli text. Tato funkce usnadňuje propojení různých příkazů v potrubí.
K čemu se dá PowerShell použít?
PowerShell byl zpočátku jen pro Windows. Teď je multiplatformní a dá se použít pro různé úlohy, jako jsou:
- Správa cloudu. PowerShell se dá použít ke správě cloudových prostředků. Můžete například načíst informace, aktualizovat nebo nasadit nové prostředky.
- CI/CD. Dá se také použít jako součást kanálu kontinuální integrace nebo průběžného nasazování.
- Automatizujte úlohy pro Službu Active Directory a Exchange. Můžete ho použít k automatizaci téměř libovolné úlohy ve Windows, jako je vytváření uživatelů ve službě Active Directory a poštovních schránek v Exchangi.
Kdo používá PowerShell?
PowerShell je výkonný nástroj, který pomáhá lidem pracovat v mnoha rolích. PowerShell tradičně používali správci systému. Teď jej používají lidé, kteří se nazývají DevOps, Cloud Ops a dokonce i vývojáři.
PowerShell příkazy (cmdlets)
PowerShell obsahuje stovky předinstalovaných příkazů. Příkazy PowerShellu se nazývají cmdlety (vyslovuje se jako command-lets).
Název každého cmdletu se skládá z dvojice Sloveso-Podstatné jméno. Například: Get-Process. Tato pojmenovací konvence usnadňuje pochopení toho, co cmdlet dělá. Usnadňuje také vyhledání příkazu, který hledáte. Při hledání cmdletu, který chcete použít, můžete filtrovat podle slovesa nebo podstatného jména.
Použití cmdletů k prozkoumání PowerShellu
Když se poprvé setkáte s PowerShellem, může se zdát zastrašující, protože je toho tolik, co se musíte naučit. Prostředí PowerShell je navrženo tak, aby vám pomohlo postupně se učit podle vašich potřeb.
PowerShell obsahuje rutiny, které vám pomůžou zjistit PowerShell. Pomocí těchto čtyř cmdletů můžete zjistit, jaké příkazy jsou k dispozici, co dělají a na jakých typech dat fungují.
-
Get-Verb. Spuštění tohoto příkazu vrátí seznam příkazů, které většina příkazů dodržuje. Odpověď obsahuje popis toho, co tyto příkazy dělají. Vzhledem k tomu, že většina příkazů dodržuje tyto zásady vytváření názvů, nastavuje očekávání ohledně toho, co příkaz dělá. Tento příkaz vám pomůže vybrat odpovídající příkaz a pojmenovat příkaz při vytváření vlastních příkazů. -
Get-Command. Tento příkaz načte seznam všech příkazů nainstalovaných na vašem počítači. -
Get-Member. Funguje na výstupu založeném na objektech a dokáže zjistit, jaké objekty, vlastnosti a metody jsou pro příkaz k dispozici. -
Get-Help. Vyvolání tohoto příkazu s názvem příkazu jako argument zobrazí stránku nápovědy popisující různé části příkazu.
Pomocí těchto příkazů můžete zjistit téměř cokoli, co potřebujete vědět o PowerShellu.
Verb (Příkaz)
Verb je důležitým konceptem v PowerShellu. Jedná se o standard pojmenování, který většina cmdletů dodržuje. Jedná se také o normu pojmenování, kterou očekáváte, když píšete vlastní příkazy. Myšlenka spočívá v tom, že sloveso říká, co se snažíte udělat, například čtení nebo změna dat. PowerShell obsahuje standardizovaný seznam sloves. Pokud chcete získat úplný seznam všech možných sloves, použijte rutinu Get-Verb:
Get-Verb
Cmdlet vrátí dlouhý seznam sloves. Popis poskytuje kontext pro to, co má příkaz dělat. Tady je několik prvních řádků výstupu:
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
...
Hledání příkazů pomocí Get-Command
Rutina Get-Command vrátí seznam všech dostupných příkazů nainstalovaných ve vašem systému. Seznam může být velký. Množství informací, které se vrátí, můžete omezit filtrováním odpovědi pomocí parametrů nebo pomocných rutin.
Filtrovat podle názvu
Výstup Get-Command můžete filtrovat pomocí různých parametrů. Filtrování umožňuje najít příkazy, které mají určité vlastnosti. Parametr Name umožňuje najít konkrétní příkaz podle názvu.
Get-Command -Name Get-Process
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-Process 7.0.0.0 Microsoft.PowerShell.Management
Co když chcete najít všechny příkazy, které pracují s procesy? Zástupné znaky * můžete použít k porovnání jiných forem řetězce. Například:
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
Filtrování podle podstatných jmen a sloves
Existují další parametry, které filtrují hodnoty sloves a podstatných jmen. Slovesná část názvu příkazu je úplně vlevo. Sloveso by mělo být jednou z hodnot vrácených Get-Verb cmdletem. Nejpravější část příkazu je část s podstatným jménem. Podstatné jméno může být cokoli.
Filtrování podle slovesa. V příkazu
Get-Processje část slovesaGet. Pokud chcete filtrovat část slovesa, použijte parametr Sloveso .Get-Command -Verb 'Get'V tomto příkladu jsou uvedeny všechny příkazy, které používají příkaz
Get.Filtrovat podle podstatného jména. V příkazu
Get-Processje část podstatného jménaProcess. Chcete-li filtrovat podle podstatného jména, použijte parametr Noun. Následující příklad vrátí všechny rutiny, které mají podstatná jména začínající písmenemU.Get-Command -Noun U*
Můžete také zkombinovat parametry a zúžit hledání, například:
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
Použití pomocných cmdletů k filtrování výsledků
Výsledky můžete filtrovat také pomocí jiných rutin.
Select-Object. Tento univerzální příkaz vám pomůže vybrat konkrétní vlastnosti z jednoho nebo více objektů. Můžete také omezit počet vrácených položek. Následující příklad vrátí hodnoty vlastnosti Name a Source pro prvních 5 dostupných příkazů v aktuální relaci.Get-Command | Select-Object -First 5 -Property Name, SourceName Source ---- ------ Add-AppPackage Appx Add-AppPackageVolume Appx Add-AppProvisionedPackage Dism Add-AssertionOperator Pester Add-ProvisionedAppPackage DismDalší informace naleznete v tématu Select-Object.
Where-Object. Tato rutina umožňuje filtrovat vrácené objekty na základě hodnot vlastností. Příkaz přebírá výraz, který může testovat hodnotu vlastnosti. Následující příklad vrátí všechny procesy, kdeProcessNamezačíná nap.Get-Process | Where-Object {$_.ProcessName -like "p*"}Rutina
Get-Processvrátí kolekci procesních objektů. Pokud chcete vyfiltrovat odpověď, přesměrujte výstup naWhere-Object. Propojování znamená, že dva nebo více příkazů jsou propojeny pomocí znaku svislé roury|. Výstup z jednoho příkazu se odešle jako vstup pro další příkaz. Výraz filtru proWhere-Objectpoužívá operátor-likeke shodování procesů, které začínají písmenemp.
Zkoumání objektů pomocí Get-Member
Jakmile vyhledáte požadovaný cmdlet, chcete se dozvědět více o výstupu, který vytváří. Rutina Get-Member zobrazí typ, vlastnosti a metody objektu. Výstup, který chcete zkontrolovat, přesměrujte do Get-Member.
Get-Process | Get-Member
Výsledek zobrazí vrácený typ jako TypeName a všechny vlastnosti a metody objektu. Tady je výňatek takového výsledku:
TypeName: System.Diagnostics.Process
Name MemberType Definition
---- ---------- ----------
Handles AliasProperty Handles = Handlecount
Name AliasProperty Name = ProcessName
...
Pomocí parametru MemberType můžete omezit vrácené informace.
Get-Process | Get-Member -MemberType Method
PowerShell ve výchozím nastavení zobrazuje jenom několik vlastností. V předchozím příkladu se zobrazily členy Name, MemberType a Definition. Můžete použít Select-Object k zadání vlastností, které chcete zobrazit. Chcete například zobrazit pouze vlastnosti Name a Definition:
Get-Process | Get-Member | Select-Object Name, Definition
Hledání podle typu parametru
Get-Member ukázali jsme, že Get-Process vrací objekty typu Proces . Parametr ParameterType parametru Get-Command lze použít k vyhledání dalších příkazů, které jako vstup přebírají objekty Process .
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…
Znalost výstupního typu příkazu vám může pomoct zúžit hledání souvisejících příkazů.