Výukový program Powershell pro začátečníky: Naučte se skriptování Powershell
Co je PowerShell?
Windows PowerShell je objektově orientovaný automatizační stroj a skriptovací jazyk. Je určen především pro IT profesionály a systémové administrátory pro kontrolu a automatizaci správy Windows OS a další aplikace. Poskytuje přesvědčivé nové koncepty pro rozšíření znalostí, které jste získali, a skriptů, které jste v rámci programu vytvořili Windows Příkazový řádek a Windows Prostředí Script Host.
Kombinuje flexibilitu skriptování, rychlost příkazového řádku a výkon nástroje pro správu založeného na grafickém uživatelském rozhraní. Umožňuje vám efektivně řešit problémy tím, že pomáhá správci systému eliminovat budoucí manuální pracovní dobu. Projdeme si všechny důležité aspekty, které byste měli znát, abyste se naučili PowerShell.
Toto je kompletní průvodce základy skriptování v Powershell... můžeme začít!
Proč používat Powershell?
Zde jsou některé důležité důvody pro použití Powershell:
- Powershell nabízí dobře integrované prostředí příkazového řádku pro operační systém
- PowerShell umožňuje úplný přístup ke všem typům v rámci .NET
- Důvěryhodné správci systému.
- PowerShell je jednoduchý způsob manipulace s komponentami serveru a pracovní stanice
- Je zaměřen na systémové administrátory tím, že vytváří jednodušší syntaxi
- PowerShell je bezpečnější než běh VBScript nebo jiné skriptovací jazyky
Historie PowerShellu
První verze PowerShellu 1.0 byla vydána v roce 2006. Dnes je PowerShell ve verzi 7.2. S přibývajícím rokem a verzí výrazně rostly možnosti PowerShellu a hostitelská prostředí.
Podívejte se na historii Powershell podle verzí:
- PowerShell verze 1 podporoval místní správu Windows Server 2003
- PowerShell 2.0 byl integrován s Windows 7 a Windows Server 2008 R2. Tato verze podporuje vzdálené ovládání a vylepšuje možnosti PowerShellu, jako jsou transakce, úlohy na pozadí, události, ladění atd.
- PowerShell 3.0 byl vydán jako interní součást Windows rámec řízení. Byl nainstalován na Windows 8 a Windows Server 2012. Můžete přidávat a plánovat úlohy, konektivitu relace, automatické načítání modulů atd.
- PowerShell 4.0 byl dodán s Windows 8.1 a Windows Server 2012 R2. V této verzi byla přidána podpora pro konfiguraci požadovaného stavu, rozšířené ladění, diagnostika sítě.
- PowerShell 5.0 byl vydán jako interní součást Windows management framework 5. Funkce nabízí v této verzi vzdálené ladění, definice tříd, .NET výčty atd.
- Vyšel PowerShell 7.2. Je postaven na .NET 6.0. Tato verze nabízí nové operátory, zjednodušené a dynamické zobrazení chyb, automatická upozornění na novou verzi atd.
Dále v tomto tutoriálu pro skriptování Powershell se seznámíme s funkcemi Powershell.
Vlastnosti Powershell
- PowerShell Remoting: PowerShell umožňuje spouštění skriptů a rutin na vzdáleném počítači.
- Práce na pozadí: Pomáhá vám asynchronně vyvolávat skript nebo kanál. Své úlohy můžete spouštět buď na místním počítači, nebo na více vzdáleně ovládaných strojích.
- Transakce: Povolí cmdlet a umožní vývojářům provádět
- Večer: Tento příkaz vám pomůže naslouchat, přeposílat a reagovat na události správy a systému.
- Síťový přenos souborů: Powershell nabízí nativní podporu pro prioritní, asynchronní, omezený přenos souborů mezi počítači pomocí technologie BITS (Background Intelligent Transfer Service).
Jak spustit PowerShell
Nyní v tomto tutoriálu skriptu Powershell se naučíme, jak spustit Powershell Windows OS.
PowerShell je předinstalovaný ve všech nejnovějších verzích Windows. Potřebujeme spustit PowerShell, k tomu musíme postupovat podle uvedených kroků:
Krok 1) Vyhledejte PowerShell v Windows. Vyberte a klikněte
Krok 2) Otevře se okno Power Shell
Rutina PowerShell
Rutina, která se také nazývá Command let, je odlehčený příkaz používaný v základním prostředí Windows PowerShell. PowerShell vyvolá tyto rutiny v příkazovém řádku. Můžete vytvořit a vyvolat příkaz rutiny pomocí PowerShell APIS.
Rutina vs. příkaz
Rutiny se liší od příkazů v jiných prostředích příkazového prostředí následujícím způsobem:
- Cmdlety jsou . NET Framework objekty třídy Nelze provést samostatně
- Rutiny mohou vytvářet pouze tucet řádků kódu
- Rutiny nezpracovávají analýzu, formátování výstupu a prezentaci chyb
- Proces rutin funguje na objektech. Textový proud a objekty tedy nelze předat jako výstup pro zřetězení
- Rutiny jsou založené na záznamech, takže zpracovávají jeden objekt najednou
Většina funkcí prostředí PowerShell pochází z rutiny, která je vždy ve formátu sloveso-podstatné jméno a nikoli v množném čísle. Navíc rutina vrací objekty, nikoli text. Rutina je řada příkazů, které tvoří více než jeden řádek, uložených v textovém souboru s příponou .ps1.
Rutina se vždy skládá ze slovesa a podstatného jména oddělených pomlčkou. Některá ze sloves, která se používají k tomu, abyste se naučili PowerShell, jsou:
- Získejte — Získat něco
- Home — Něco provozovat
- Ven — Vydat něco
- Stop — Zastavit něco, co běží
- sada — Něco definovat
- Nový — Něco vytvořit
PowerShell příkazů
Níže je uveden seznam důležitých příkazů PowerShell:
Získejte pomoc: Nápověda k příkazům a tématům PowerShellu
Příklad: Zobrazení informací nápovědy k příkazu Formát-tabulka
Get-Help Format-Table
Get-Command: Získejte informace o čemkoli, co lze vyvolat
Příklad skriptu Powershell: Chcete-li vygenerovat seznam rutin, funkcí nainstalovaných ve vašem počítači
Get-Command
Získejte servis: Najde všechny rutiny se slovem 'service'.
Příklad: Získejte všechny služby, které začínají „vm“
Get-Service "vm*"
Získat člena: Ukažte, co lze s předmětem dělat
Příklad: Získejte členy procesů vm.
Get-Service "vm*" | Get-Member
Další příkazy:
- Získat modul Zobrazí balíčky příkazů
- Získat obsah Tato rutina může vzít soubor a zpracovat jeho obsah a něco s ním udělat
- Get-get Najde všechny rutiny začínající slovem 'get-
Příklad: Vytvořte složku
New-Item -Path 'X:\Guru99' -ItemType Directory
Výstup:
Datové typy Powershell
Speciální proměnné
Speciální proměnná | Description |
---|---|
$Error | Pole chybových objektů, které zobrazují nejnovější chyby |
$Host | Zobrazí název aktuální hostitelské aplikace |
$Profil | Ukládá celou cestu uživatelského profilu pro výchozí prostředí |
$ PID | Ukládá identifikátor procesu |
$PSUICkultura | Drží název aktuální kultury uživatelského rozhraní. |
$NULL | Obsahuje prázdnou nebo NULL hodnotu. |
$False | Obsahuje hodnotu FALSE |
$Pravda | Obsahuje hodnotu TRUE |
PowerShell skripty
Skripty Powershell jsou uloženy v souboru .ps1. Ve výchozím nastavení nemůžete spustit skript pouhým poklepáním na soubor. To chrání váš systém před náhodným poškozením. Chcete-li spustit skript:
Krok 1: Klikněte na něj pravým tlačítkem myši a klikněte na „Spustit s PowerShell“.
Navíc existuje politika, která omezuje provádění skriptu. Tuto zásadu můžete zobrazit spuštěním příkazu Get-ExecutionPolicy.
Získáte jeden z následujících výstupů:
- Omezený— Nejsou povoleny žádné skripty. Toto je výchozí nastavení, takže se zobrazí poprvé při spuštění příkazu.
- Vše podepsáno— Můžete spouštět skripty podepsané důvěryhodným vývojářem. S pomocí tohoto nastavení si skript před spuštěním vyžádá potvrzení, že jej chcete spustit.
- RemoteSigned— Můžete spouštět své skripty nebo skripty podepsané důvěryhodným vývojářem.
- Neomezený— Můžete spustit libovolný skript, který chcete spustit
Kroky ke změně zásad provádění
Krok 1) Otevřete zvýšenou výzvu PowerShellu. Klikněte pravým tlačítkem na PowerShell a „Spustit jako správce“
Krok 2) Zadejte následující příkazy
- Get-ExecutionPolicy
- Nastavit zásady provádění bez omezení
- Do výzvy zadejte Y
- Get-ExecutionPolicy
První skript PowerShell
Do poznámkového bloku napište následující příkaz
Write-Host "Hello, Guru99!"
Skripty PowerShell mají příponu ps1. Uložte soubor jako FirstScript.ps1
V Powershell zavolejte skript pomocí příkazu
& "X:\FirstScript.ps1"
Co je PowerShell ISE?
Jedno Windows PowerShell Integrated Scripting Environment (ISE) je výchozí editor pro Windows PowerShell. V tomto ISE můžete spouštět příkazy, psát test a ladit skripty v prostředí GUI v základním okně. Můžete provádět víceřádkové úpravy, barvení syntaxe, doplňování tabulátorů, selektivní provádění a spoustu dalších věcí.
Windows PowerShell ISE také umožňuje spouštět příkazy v podokně konzoly. Podporuje však také panely, které můžete použít k současnému zobrazení zdrojového kódu vašeho skriptu a dalších nástrojů, které můžete zapojit do ISE.
Můžete dokonce otevřít více oken skriptů současně. To je zvláště užitečné, když ladíte skript, který používá funkce definované v jiných skriptech nebo modulech.
Stejný skript, který jsme vytvořili v poznámkovém bloku, lze vytvořit v ISE
- Vložte kód do editoru
- Uložit skript
- Pro spuštění skriptu použijte F5
- Sledujte výstup v konzole
Ukázka 2:
Následující kód poskytne zdarma Virtuální paměť ve vašem stroji
Get-WmiObject -Class Win32_OperatingSystem –ComputerName localhost | Select-Object -Property CSName,FreeVirtualMemory
PowerShell Concepts
Nyní v tomto tutoriálu Powershell pro začátečníky se seznámíme s důležitými koncepty Powershell:
Cmdlets | Rutiny jsou příkazy build napsané v jazycích .net jako VB nebo C#. Umožňuje vývojářům rozšířit sadu rutin načtením a zápisem modulů snap-in PowerShell. |
Funkce | Funkce jsou příkazy, které jsou napsány v jazyce PowerShell. Může být vyvinut bez použití jiného IDE jako Visual Studio a vývojáři |
Skripty | Skripty jsou textové soubory na disku s příponou .ps1 |
Aplikace | Aplikace jsou existující programy pro Windows. |
Co když | Řekne rutině, aby se nespustila, ale aby vám řekla, co by se stalo, kdyby se rutina spustila. |
Potvrdit | Dejte rutině pokyn, aby se před provedením příkazu zeptala. |
Podrobný | Poskytuje vyšší úroveň detailů. |
Ladit | Dává pokyn rutině, aby poskytla informace o ladění. |
ErrorAction | Dává pokyn rutině, aby provedla konkrétní akci, když dojde k chybě. Povolené akce pokračují, zastavte se, potichu – pokračujte a zeptejte se. |
ErrorVariable | Specifikuje proměnnou, která obsahuje informace o chybě. |
MimoVariable | Řekne rutině, aby použila konkrétní proměnnou k uložení výstupních informací |
VenBuffer | Dává pokyn rutině, aby podržela konkrétní počet objektů, než zavolá další rutinu v kanálu. |
Výhody použití skriptu PowerShell
- Skripty PowerShellu jsou opravdu výkonné a mohly by dělat spoustu věcí na méně řádcích.
- Proměnné jsou deklarovány ve tvaru $
- Proměnné lze použít k uložení výstupu příkazu, objektů a hodnot.
- „Typ“ proměnné nemusí být specifikován.
PowerShell vs. Příkazový řádek
PowerShell | Příkazový řádek |
---|---|
PowerShell se hluboce integruje s Windows OS. Nabízí interaktivní rozhraní příkazového řádku a skriptovací jazyk. | Příkazový řádek je výchozí rozhraní příkazového řádku, které poskytuje Microsoft. Je to jednoduchá aplikace win32, která může komunikovat a mluvit s libovolnými objekty win32 v Windows operační systém. |
PowerShell používá takzvané rutiny. Lze jej vyvolat buď v běhovém prostředí nebo v automatizačních skriptech. | Žádné takové funkce nenabízí příkazový řádek. |
PowerShell je považuje za objekty. Výstup tedy může být předán jako vstup dalším rutinám prostřednictvím kanálu. | Příkazový řádek nebo dokonce *nix shell, výstup generovaný z rutiny není jen proud textu, ale soubor objektů. |
PowerShell je velmi pokročilý, pokud jde o funkce, schopnosti a vnitřní fungování. | Příkazový řádek je velmi jednoduchý. |
Aplikace Powershell
Dnes se PowerShell stal ideální volbou pro správce IT, protože usnadňuje správu a úsilí ve velkých podnikových sítích. Předpokládejme například, že spravujete velkou síť, která obsahuje více než čtyři sta serverů. Nyní chcete implementovat nové bezpečnostní řešení. Toto bezpečnostní řešení závisí na určité službě, která musí na těchto serverech běžet.
Určitě se můžete přihlásit ke každému serveru a zjistit, zda mají tuto službu nainstalovanou a spuštěnou nebo ne. Určitě to však vyžaduje mnoho lidských chyb, protože vaši zaměstnanci musí tomuto neproduktivnímu procesu věnovat spoustu času.
Pokud však používáte PowerShell, můžete tento úkol dokončit během několika minut. To proto, že celá operace se provádí pomocí jediného skriptu, který shromažďuje informace o službách běžících na serverech.
Shrnutí
- Windows PowerShell je objektově orientovaný automatizační stroj a skriptovací jazyk
- Powershell nabízí dobře integrované prostředí příkazového řádku pro operační systém
- PowerShell první verze 1.0 byla vydána v roce 2006
- PowerShell umožňuje spouštění skriptů a rutin na vzdáleném počítači
- PowerShell je předinstalovaný ve všech nejnovějších verzích Windows
- Rutina je odlehčený příkaz používaný v základním prostředí Windows PowerShell
- Get, Start, Out, Stop, Set, New jsou důležité příkazy PowerShellu
- Boolean, Byte, Chat, Decimal, Decimal, Long jsou důležité datové typy prostředí PowerShell
- $Error. $Host, $Profile, $PID, $PSUICulture, $NULL jsou některé speciální proměnné používané v PowerShellu
- Jedno Windows PowerShell Integrated Scripting Environment (ISE) je výchozí editor pro PowerShell
- PowerShell se hluboce integruje s Windows OS, zatímco příkazový řádek je výchozí rozhraní příkazového řádku, které poskytuje Microsoft
- PowerShell se stal ideální volbou pro správce IT, protože usnadňuje správu a úsilí ve velkých podnikových sítích