Objevte PowerShell
PowerShell je prostředí příkazového řádku a skriptovací jazyk v jednom. PowerShell začal ve Windows, který pomáhá automatizovat úlohy správy. Teď běží na různých platformách a dá se použít pro různé úlohy.
Tím, že PowerShell je jedinečný, je to, že přijímá a vrací objekty .NET místo textu. Tato funkce usnadňuje připojení různých příkazů v kanálu.
K čemu se dá PowerShell použít?
Využití PowerShellu se od doby, kdy se jednalo pouze o Windows, vzrostlo. Stále se používá pro automatizaci úloh Windows, ale v současné chvíli ho můžete použít pro ú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 o cloudových prostředcích a také 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.
Existuje mnoho dalších oblastí použití, ale předchozí seznam vám napoví, že PowerShell má dlouhou cestu.
Kdo používá PowerShell?
PowerShell je výkonný nástroj, který pomáhá lidem pracovat v mnoha rolích. PowerShell tradičně používá role systémového Správa istratoru, ale nyní ji používají lidé, kteří volají jako DevOps, Cloud Ops a dokonce i vývojáři.
Rutiny PowerShell
PowerShell obsahuje stovky předinstalovaných příkazů. Příkazy PowerShellu se nazývají rutiny (vyslovuje se command-lets).
Název každé rutiny se skládá z dvojice Sloveso-podstatné jméno . Například Get-Process
. Tato konvence vytváření názvů usnadňuje pochopení toho, co rutina dělá. Usnadňuje také vyhledání příkazu, který hledáte. Při hledání rutiny, kterou chcete použít, můžete filtrovat podle slovesa nebo podstatného jména.
Použití rutin k prozkoumání PowerShellu
Když poprvé vyzvednete PowerShell, může se zdát zastrašující, protože se zdá, že se toho tolik naučíte. Prostředí PowerShell je navržené tak, aby vám pomohlo se trochu naučit, jak potřebujete.
PowerShell obsahuje rutiny, které vám pomůžou zjistit PowerShell. Pomocí těchto tří rutin můžete zjistit, jaké příkazy jsou k dispozici, co dělají a jaké typy 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á. To vám pomůže vybrat příslušný příkaz a pojmenovat ho, pokud ho vytváříte.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)
Sloveso je důležitým konceptem v PowerShellu. Jedná se o standard pojmenování, který většina rutin sleduje. 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 příkazů, použijte rutinu Get-Verb
:
Get-Verb
Rutina 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
...
Vyhledání příkazů pomocí příkazu Get-Command
Rutina Get-Command
vrátí seznam všech dostupných příkazů nainstalovaných ve vašem systému. Seznam, který dostanete zpět, je poměrně 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. Pří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. Příkaz by měl být jednou z hodnot vrácených rutinou Get-Verb
. Úplně vpravo je část příkazu podstatná část. Podstatné jméno může být cokoli.
Filtrujte sloveso. V příkazu
Get-Process
jeGet
část slovesa . 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
.Filtrování podstatných jmen. V příkazu
Get-Process
jeProcess
část podstatného jména . Pokud chcete filtrovat podstatné jméno, použijte parametr podstatné jméno . 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 rutin 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 příkazů dostupných v aktuální relaci.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
Další 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, kdeProcessName
začínáp
na .Get-Process | Where-Object {$_.ProcessName -like "p*"}
Rutina
Get-Process
vrátí kolekci procesních objektů. Pokud chcete vyfiltrovat odpověď, předáte výstup naWhere-Object
. Potrubí 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-Object
použití operátoru-like
ke shodě procesů, které začínají písmenemp
.
Zkoumání objektů pomocí funkce Get-Member
Jakmile budete schopni najít požadovanou rutinu, budete se chtít dozvědět více o výstupu, který vytváří. Rutina Get-Member
zobrazí typ, vlastnosti a metody objektu. Výstup, který chcete zkontrolovat Get-Member
, nasudíte .
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í. Předchozí příklad zobrazil a Name
MemberType
Definition
členy. Můžete použít Select-Object
k zadání vlastností, které chcete zobrazit. Chcete například zobrazit pouze vlastnosti Name
a Definition
vlastnosti:
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ů.