Microsoft PowerShell je skvělá skriptovací platforma. Společnost Microsoft poskytuje podporu prostředí PowerShell pro téměř všechny role a funkce systému Windows Server. Pomocí prostředí PowerShell můžete automatizovat opakované úlohy a také snadno provádět úlohy pomocí příkazového řádku, které obvykle provádíte pomocí nástrojů grafického uživatelského rozhraní. Pokud například v produkčním prostředí potřebujete zkontrolovat stav záplatování na serverech systému Windows, je použití přístupu pomocí skriptů prostředí PowerShell mnohem jednodušší než připojení ke každému serveru zvlášť a následná kontrola stavu záplatování. Jsem pravidelným uživatelem prostředí PowerShell a za 18 let své praxe v IT jsem navrhl tisíce skriptů PowerShell.
Před prostředím PowerShell byl hlavním skriptovacím jazykem pro provádění provozních úloh systému Windows skriptovací jazyk Visual Basic. Ačkoli skriptování v jazyce Visual Basic stále existuje a mnoho správců IT stále preferuje používání skriptování VB, je třeba zmínit, že prostředí PowerShell snižuje složitost kódu. Chcete-li například zkontrolovat služby v počítači se systémem Windows, musíte napsat kód jazyka VBScript do poznámkového bloku, uložit soubor jako .VBS a poté jej spustit pomocí souboru pro spuštění hostitele CSCript. Pomocí prostředí PowerShell však můžete použít jednoduchou rutinu Get-Service, která vám pomůže rychle vypsat služby z počítače se systémem Windows. Pokud byste potřebovali uložit výstup do souboru pomocí skriptu VB, budete opět muset ve skriptu VB napsat spoustu kódu, který zahrnuje otevření souboru a následný zápis obsahu do souboru. Prostředí PowerShell právě nevyžaduje otevření souboru předtím, než lze obsah získaný rutinou prostředí PowerShell zapsat do souboru. Stačí použít rutiny „Export-CSV“ nebo „Add-Content“.
- Kurzy: V prostředí PowerShell jsou k dispozici rutiny (cmdlets, vyslovuje se „command-lets“), někdy označované jako nástroje příkazového řádku, pomocí kterých můžete získat informace o operačním systému, aplikacích nainstalovaných v počítači se systémem Windows, informace o síti, stavu záplat v počítači se systémem Windows a mnoho dalšího. Je důležité si uvědomit, že rutiny prostředí PowerShell jsou napsány v prostředí .NET a k provádění požadovaných úloh používají třídy prostředí .NET. Pokud chcete zjistit, které rutiny prostředí PowerShell jsou k dispozici v místním počítači, spusťte tento příkaz:
- Tři typy operací PowerShell
- Kombinace rutin prostředí PowerShell
- Aliasy prostředí PowerShell
- Ukládání informací do souboru CSV
Kurzy: V prostředí PowerShell jsou k dispozici rutiny (cmdlets, vyslovuje se „command-lets“), někdy označované jako nástroje příkazového řádku, pomocí kterých můžete získat informace o operačním systému, aplikacích nainstalovaných v počítači se systémem Windows, informace o síti, stavu záplat v počítači se systémem Windows a mnoho dalšího. Je důležité si uvědomit, že rutiny prostředí PowerShell jsou napsány v prostředí .NET a k provádění požadovaných úloh používají třídy prostředí .NET. Pokud chcete zjistit, které rutiny prostředí PowerShell jsou k dispozici v místním počítači, spusťte tento příkaz:
Get-Command
Get-Command je rutina prostředí PowerShell, která načte rutiny, funkce, filtry a skripty prostředí PowerShell nainstalované v místním počítači. Výše uvedený příkaz se dotazuje na všechny moduly prostředí PowerShell nainstalované v místním počítači. Pokud potřebujete zobrazit všechny příkazy nainstalované v místním počítači v určitém pořadí, proveďte tento příkaz:
Get-Command -Type cmdlet | Sort-Object -Property Noun |FT -GroupBy Noun
Tři typy operací PowerShell
Pomocí prostředí PowerShell můžete provádět tři typy operací. Jsou to operace Získat, Nastavit a Odebrat. Jakákoli rutina prostředí PowerShell, která začíná slovem „Get“, se obvykle používá k získání informací z komponent systému Windows. Například příkaz Get-ADUser provede operaci čtení proti databázi Active Directory a získá informace o uživateli. Několik příkladů použití rutiny PowerShell Get-ADUser je uvedeno níže:
Get-ADUser -Filter * -SearchBase „OU=TestUsers,DC=TechGenix,DC=Com“
Výše uvedený příkaz získá všechny uživatelské účty umístěné v organizační jednotce, zatímco příkaz níže získá vlastnosti spojené s jedním uživatelem služby Active Directory:
Get-ADUser -Identity JohnThomas -Properties *
K úpravě informací o součásti systému Windows se používají rutiny prostředí PowerShell začínající slovem „Set“. Například pomocí příkazu Set-ADUser můžete provádět různé provozní úlohy, jak je uvedeno v následujících příkazech:
Set-ADUser -Identity JohnThomas -HomeFolder \\Server1\%UserName%
Následující příkazy nastavují vlastnost mail pro uživatele JohnThomas.
$ThisUser = Get-ADUser -Identity JohnThomas -Properties Mail
$ThisUser.Mail = [email protected]
Set-ADUser -Instance $ThisUser
K provádění operací mazání se používají všechny rutiny prostředí PowerShell začínající slovem „Remove“. Například příkaz Remove-ADUser lze použít k odstranění uživatele služby Active Directory, jak je uvedeno níže:
Remove-ADUser -Identity JohnThomas
Kombinace rutin prostředí PowerShell
Jednou z nejlepších funkcí prostředí PowerShell je možnost kombinovat dvě nebo více rutin prostředí PowerShell v jednom příkazu prostředí PowerShell. Takové příkazy se někdy nazývají jednořádkové příkazy prostředí PowerShell. Pokud například potřebujete odstranit všechny zakázané uživatelské účty ze služby Active Directory, můžete zkombinovat rutiny PowerShell Search-ADAccount a Remove-ADUser, jak ukazuje následující příkaz:
Search-ADAccount -AccountDisabled | Where {$_.ObjectClass -eq „User“} | Remove-ADUser
Jak vidíte ve výše uvedeném příkazu, rutina Search-ADAccount PowerShell provede prohledání celého adresáře active directory a vyhledá zakázané účty a poté pomocí operátoru roura (|) dáte rutině Remove-ADUser pokyn, aby provedla operaci odstranění pouze těch uživatelů, kteří byli vyhledáni rutinou Search-ADAccount.
Aliasy prostředí PowerShell
Přestože je mnoho rutin prostředí PowerShell snadno čitelných a použitelných, prostředí PowerShell poskytuje také funkci zvanou alias prostředí PowerShell. Prostředí PowerShell je dostatečně inteligentní na to, aby doplnilo název rutiny PowerShell stisknutím klávesy Tab. V případě, že máte problém zapamatovat si název rutin prostředí PowerShell, můžete si vytvořit aliasy prostředí PowerShell. Můžete například vytvořit alias pro rutinu PowerShell Get-MailBoxStatistics pomocí následujícího příkazu:
New-Alias ShowMB Get-MailBoxStatistics
Pokud do okna prostředí PowerShell zadáte „ShowMB“, prostředí PowerShell vyhledá rutinu spojenou s aliasem ShowMB a poté ji spustí.
Ukládání informací do souboru CSV
Pokud jde o ukládání informací do souboru CSV, prostředí PowerShell ušetří spoustu práce se skriptováním. Prostředí PowerShell poskytuje rutinu „Export-CSV“, kterou můžete použít s jakoukoli jinou rutinou prostředí PowerShell. Ve výchozím nastavení jakýkoli příkaz prostředí PowerShell, který provedete, zobrazí výsledné informace v příkazovém okně prostředí PowerShell, pokud na konec příkazu nepřidáte příkaz Export-CSV, jak je uvedeno v následujícím příkazu:
Get-ADUser -Filter * -SearchBase „OU=TestUsers,DC=TechGenix,DC=Com“ | Export-CSV C:\Temp\AllUsersInAnOU.CSV
Všimněte si, že ve výše uvedeném příkazu pouze přidáváte „Export-CSV“ na konec příkazu, aby byl výstup exportován do souboru CSV.
Jak vidíte, skripty prostředí PowerShell zkracují čas potřebný k provádění každodenních provozních úloh. Prostředí PowerShell je schopno provádět tři provozní úlohy: Get (Získat), Set (Nastavit) a Remove (Odebrat) a 97 % rutin prostředí PowerShell začíná těmito třemi slovy, aby bylo možné snadno identifikovat funkci rutiny prostředí PowerShell. Vysvětlili jsme si také, jak snadno lze spojit dva rutiny do jediného příkazu a zefektivnit tak skripty prostředí PowerShell.
.