Powershell výukový program pro začátečníky
⚡ Chytré shrnutí
PowerShell Scripting je objektově orientovaný automatizační engine postavený na frameworku .NET. Kombinuje cmdlety, skripty a skriptovací jazyk, které pomáhají IT administrátorům automatizovat. Windows, spravovat služby a připojovat vzdálené počítače z jednoho příkazového řádku.

Co je PowerShell?
Windows PowerShell je objektově orientovaný automatizační engine a skriptovací jazyk. Je určen pro IT profesionály a systémové administrátory, kteří potřebují řídit a automatizovat administraci Windows a další aplikace. PowerShell rozšiřuje koncepty probrané v Windows Příkazový řádek a Windows Hostitel skriptů s novými objekty, rutinami a výkonným kanálem.
Kombinuje flexibilitu skriptování, rychlost příkazového řádku a hloubku grafického uživatelského rozhraní pro správu. Díky němu mohou administrátoři efektivně řešit problémy a eliminovat hodiny manuální práce. Tento tutoriál vás provede základy, které potřebujete k naučení se PowerShellu od nuly.
Proč používat PowerShell?
Nejdůležitější důvody pro použití PowerShellu jsou:
- Nabízí dobře integrované prostředí příkazového řádku pro operační systém.
- Poskytuje úplný přístup ke všem typům v .NET frameworku.
- Důvěryhodný pro správce systémů napříč podniky.
- Umožňuje manipulovat s komponentami serveru a pracovní stanice pomocí několika řádků.
- Určeno pro systémové administrátory s čistou syntaxí sloves a podstatných jmen.
- Bezpečnější než běh VBScript nebo jiné starší skriptovací jazyky.
Historie PowerShellu
PowerShell 1.0 byl poprvé vydán v roce 2006. PowerShell je nyní ve verzi 7.2 a novější. S vydáváním nových verzí se jeho možnosti a hostitelská prostředí výrazně rozrostly.
Historie PowerShellu podle verzí:
- PowerShell 1.0 — podporovaná místní správa Windows Server 2003.
- PowerShell 2.0 — integrovaný s Windows 7 a Windows Server 2008 R2. Přidána vzdálená komunikace, transakce, úlohy na pozadí, události a ladění.
- PowerShell 3.0 — dodáváno s Windows 8 a Windows Server 2012 jako součást Windows Management Framework. Přidány plánované úlohy, připojení relací a automatické načítání modulů.
- PowerShell 4.0 — dodáváno s Windows 8.1 a Windows Server 2012 R2. Přidána konfigurace požadovaného stavu, vylepšené ladění a diagnostika sítě.
- PowerShell 5.0 — část Windows Management Framework 5. Přidáno vzdálené ladění, definice tříd a výčty .NET.
- PowerShell 7.2 — postaveno na .NET 6.0. Přidává nové operátory, dynamické zobrazení chyb a automatická oznámení o verzích.
Funkce PowerShellu
- Vzdálená komunikace PowerShellu: spouštět skripty a cmdlety na vzdáleném počítači.
- Úkoly na pozadí: spouštět skripty nebo kanály asynchronně na lokálním počítači nebo na mnoha vzdálených počítačích.
- Transakce: umožňují cmdlets a vývojářům provádět seskupené operace, které lze společně potvrdit nebo vrátit zpět.
- Eventy: naslouchat, předávat a reagovat na události managementu a systému.
- Síťový přenos souborů: nativní podpora pro prioritní, asynchronní a omezený přenos souborů mezi počítači prostřednictvím služby Background Intelligent Transfer Service (BITS).
Jak spustit PowerShell
PowerShell je předinstalován ve všech novějších verzích WindowsSpusťte jej následovně.
Krok 1) Vyhledejte PowerShell v Windows, poté jej vyberte a klikněte.
Krok 2) Otevře se okno PowerShellu.
Rutina vs. příkaz
A cmdlet (vyslovuje se „command-let“) je odlehčený příkaz používaný v prostředí PowerShellu. PowerShell spouští rutiny (cmdlets) na příkazovém řádku a vy si můžete vytvořit vlastní pomocí rozhraní API PowerShellu. Rutiny (cmdlets) se od tradičních příkazů shellu liší v následujících ohledech:
- Cmdlety jsou . NET Framework objekty třídy; nelze je spustit jako samostatné spustitelné soubory.
- Cmdlety lze napsat v pouhých tuctu řádků kódu.
- Analýzu, formátování výstupu a prezentaci chyb zajišťuje běhové prostředí, nikoli samotná rutina.
- Rutiny pracují s objekty, takže textové streamy i objekty mohou protékat kanály.
- Rutiny jsou založeny na záznamech a zpracovávají vždy jeden objekt.
Většina funkcí PowerShellu je poskytována prostřednictvím rutin, které vždy používají vzorec pojmenování sloveso-podstatné jméno (vždy v jednotném čísle). Rutiny vracejí objekty, nikoli text. skript — na rozdíl od cmdletu — je to série příkazů uložených v textovém souboru s .ps1 rozšíření.
Mezi běžná slovesa, která budete používat k učení PowerShellu, patří:
- Získejte — něco získat.
- Home — něco spustit.
- Ven — něco vytisknout.
- Stop — zastavit něco, co běží.
- sada — definovat něco.
- Nový — něco vytvořit.
Důležité příkazy PowerShellu
Získejte pomoc: zobrazit nápovědu k příkazům a tématům PowerShellu.
Příklad: zobrazení nápovědy pro Format-Table příkaz.
Get-Help Format-Table
Get-Command: získat informace o čemkoli, co lze vyvolat.
Příklad: vygenerování seznamu cmdletů a funkcí nainstalovaných v počítači.
Get-Command
Získejte servis: vyhledá všechny služby na počítači.
Příklad: získejte všechny služby, jejichž název začíná na „vm“.
Get-Service "vm*"
Získat člena: ukázat, co se dá s objektem dělat.
Příklad: seznam členů služeb virtuálních počítačů vrácených funkcí Get-Service.
Get-Service "vm*" | Get-Member
Další užitečné cmdlety:
Get-Module— zobrazit nainstalované balíčky příkazů.Get-Content— číst soubor a zpracovat jeho obsah.Get-*zástupný znak — vypíše všechny cmdlet začínající na „Get-“.
Příklad: vytvoření složky.
New-Item -Path 'X:\Guru99' -ItemType Directory
Výstup:
Datové typy PowerShellu
PowerShell podporuje standardní datové typy .NET, takže můžete libovolnou hodnotu čistě uložit do proměnné.
Speciální proměnné
PowerShell nabízí řadu vestavěných speciálních proměnných. Ty nejužitečnější jsou uvedeny níže.
| Speciální proměnná | Description |
|---|---|
| $Error | Pole objektů chyb představujících nejnovější chyby. |
| $Host | Zobrazuje název aktuální hostitelské aplikace. |
| $Profil | Ukládá úplnou cestu k uživatelskému profilu pro výchozí shell. |
| $ PID | Ukládá identifikátor procesu. |
| $PSUICkultura | Obsahuje název aktuální kultury uživatelského rozhraní. |
| $NULL | Obsahuje prázdnou nebo nulovou hodnotu. |
| $False | Obsahuje booleovskou hodnotu FALSE. |
| $Pravda | Obsahuje booleovskou hodnotu TRUE. |
PowerShell skripty
Skripty PowerShellu jsou uloženy v .ps1 soubory. Ve výchozím nastavení nelze skript spustit dvojitým kliknutím – toto zabezpečení chrání systém před náhodným poškozením. Chcete-li spustit skript, klikněte na něj pravým tlačítkem myši a vyberte „Spustit s PowerShellem“.
Zásady provádění řídí, které skripty se mohou spouštět. Aktuální zásady si můžete zobrazit pomocí Get-ExecutionPolicyMožné hodnoty zahrnují:
- Omezený — nejsou povoleny žádné skripty. Toto je výchozí nastavení.
- Vše podepsáno — spouštějí se pouze skripty podepsané důvěryhodným vývojářem a každý z nich vyžaduje potvrzení.
- RemoteSigned — spouštějí se vaše vlastní skripty a také podepsané skripty z důvěryhodných zdrojů.
- Neomezený — lze spustit jakýkoli skript (používejte střídmě).
Kroky ke změně zásad provádění:
Krok 1) Otevřete příkazový řádek PowerShellu s oprávněními ke zvýšení oprávnění kliknutím pravým tlačítkem myši na PowerShell a výběrem Spustit jako správce.
Krok 2) Spusťte níže uvedené příkazy.
Get-ExecutionPolicySet-ExecutionPolicy Unrestricted- vstoupit
Yna potvrzovací výzvu. Get-ExecutionPolicy
První skript PowerShell
Otevřete Poznámkový blok a napište:
Write-Host "Hello, Guru99!"
Uložte soubor s a .ps1 rozšíření – například FirstScript.ps1.
V PowerShellu spusťte skript s tímto příkazem:
& "X:\FirstScript.ps1"
Co je PowerShell ISE?
Jedno Windows Integrované skriptovací prostředí PowerShellu (ISE) je výchozí editor pro PowerShell. V ISE můžete spouštět příkazy, psát testy a ladit skripty v grafickém prostředí založeném na okně. Podporuje víceřádkovou editaci, barvení syntaxe, doplňování tabulací, selektivní spouštění a další.
PowerShell ISE také nabízí konzolový panel, který spouští příkazy přímo, zatímco boční panely zobrazují zdrojový kód vašich skriptů a všech nástrojů připojených k ISE. Můžete otevřít více oken skriptů najednou – což je užitečné při ladění skriptů, které závisí na funkcích definovaných v jiných skriptech nebo modulech.
Znovu vytvořte dřívější skript v ISE:
- Vložte kód do editoru.
- Uložte skript.
- Stiskněte F5 pro jeho spuštění.
- Sledujte výstup v podokně konzole.
Ukázka 2: Následující skript zobrazí volné virtuální paměť na stroji.
Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |
Select-Object -Property CSName, FreeVirtualMemory
PowerShell Concepts
Následující koncepty tvoří slovní zásobu každodenní práce s PowerShellem.
| Pojem | Description |
|---|---|
| Cmdlets | Vestavěné příkazy napsané v jazycích .NET, jako je VB nebo C#. Vývojáři rozšiřují sadu načtením nebo napsáním modulů snap-in PowerShellu. |
| Funkce | Příkazy napsané v samotném jazyce PowerShell, bez nutnosti IDE, například Visual Studio. |
| Skripty | Textové soubory na disku s .ps1 rozšíření. |
| Aplikace | Stávající Windows programy volané ze shellu. |
| Co kdyby | Říká rutině, aby se nespustila, ale aby popsala, co by se stalo, kdyby se tak stalo. |
| Potvrdit | Dává cmdlet pokyn, aby se před spuštěním dozvěděl/a o provedení operace. |
| Podrobný | Poskytuje vyšší úroveň provozních detailů. |
| Ladit | Dává rutině pokyn k vygenerování ladicích informací. |
| ErrorAction | Definuje, co cmdlet provede v případě chyby. Povolené hodnoty: continue, stop, silentlycontinue, inquire. |
| ErrorVariable | Pojmenovává proměnnou, která obsahuje informace o chybě. |
| MimoVariable | Říká rutin��, aby uložila svůj výstup do určité proměnné. |
| VenBuffer | Uchovává určitý počet objektů před jejich odesláním do kanálu. |
Výhody používání PowerShellových skriptů
- PowerShellové skripty jsou výkonné a stručné – v několika řádcích toho dosáhnete hodně.
- Proměnné se deklarují pomocí
$<variable>syntax. - Proměnné mohou obsahovat výstup příkazů, objekty a primitivní hodnoty.
- Typ proměnné není nutné explicitně specifikovat.
PowerShell vs. příkazový řádek
| PowerShell | Příkazový řádek |
|---|---|
| Hluboce integrováno s WindowsNabízí interaktivní příkazový řádek a plnohodnotný skriptovací jazyk. | Výchozí rozhraní příkazového řádku poskytované MicrosoftJednoduchá Win32 aplikace, která komunikuje s jinými Win32 objekty. |
| Používá cmdlety, které lze vyvolat interaktivně nebo prostřednictvím automatizačních skriptů. | Žádné rutiny (cmdlety). |
| Zachází s výstupem jako s objekty, aby mohl být předán do další rutiny prostřednictvím kanálu. | Výstupem je prostý proud textu, nikoli objekty. |
| Pokročilé funkce, možnosti a interní architektura. | Základní shell, vhodný pro starší dávkové úlohy. |
Aplikace PowerShellu
PowerShell se stal standardní volbou IT administrátorů, protože dramaticky snižuje úsilí ve velkých podnikových sítích. Představte si, že spravujete více než čtyři sta serverů a zavádíte nové bezpečnostní řešení, které závisí na konkrétní službě běžící na každém hostiteli.
Ruční přihlašování ke každému serveru je pomalé a náchylné k chybám. Jeden PowerShellový skript dokáže během několika minut prozkoumat každý server, nahlásit, na kterých hostitelích je služba spuštěna, a dokonce ji povolit na ostatních. Skript zachytí záměr jednou a spolehlivě jej aplikuje na celý server.
















