První díl článku o PowerShell v3 naleznete zde

Restart-Computer

Mnohokrát se vám stane, že potřebujete ve vašem skriptu nebo funkci restartovat vzdálený počítač a po restartu pokračovat další akcí. Typickým případem je například přidání počítače do domény a jeho následující konfigurace. V PowerShellu verze 2 se toto řešilo typicky ve smyčce, kde jste prováděli ping na vzdálený počítač a po nějaké době jste ve skriptu pokračovali dále. Nová verze naštěstí přináší nové parametry: Wait a For.

Při volání cmdletu Restart-Computer můžete určit, na jakou část operačního systému počkáte. V současné době jsou k dispozici tři možnosti: PowerShell, WinRM, WMI. Až bude příslušná část sytému spuštěna, skript bude pokračovat v dalším běhu. Jedno z možných použití bude určitě ve workflow, kdy při složitějších operacích můžete jednoduše počkat na zkonfigurování počítače (či počítačů).

Jednoduché použití nových parametrů je vidět v aktuálním banneru Mistra Skriptíka.

PowerShell Web Access

Jedna ze skvělých novinek. Vzdálený přístup na server s PowerShellem pomocí prohlížeče. Vzhledem k použitým technologiím tedy možnost spravovat váš server například pomocí mobilního telefonu.

PowerShell Web Access (dále jen pswa) webová aplikace běžící na IIS serveru. Tato aplikace slouží jako gateway, přes kterou se můžete připojit na jakýkoli počítač (se zapnutým a konfigurovaným vzdáleným přístupem) ve vaší společnosti. Vše funguje následujícím způsobem (obrázek převzat z TechNetu, link na konci tohoto článku):

image

Jak pswa nakonfigurovat si ukážeme dále.

Nejprve je potřeba nainstalovat potřebnou část systému:

PS> Install-WindowsFeature –Name WindowspowerShellWebAccess

Vše můžeme samozřejmě udělat i přes Server Manager. Jelikož pswa potřebuje pro svůj běh IIS, je potřeba jej mít nainstalovaný nebo doinstalovat současně s pswa.

Po instalaci je potřeba spustit instalaci vlastní aplikace pro pswa. Vzhledem k tomu, že celá komunikace probíhá přes HTTPS, potřebujeme pro správný běh SSL certifikát.

Malá odbočka: Ve všech návodech (včetně tohoto) se dočtete, že byste pro běh ve firemním prostředí neměli používat self-signed SSL certifikát. Vzhledem k tomu, že cmdlet určený k instalace pswa má parametr, který takový certifikát vytváří, jedná se o nejjednodušší možnost vyzkoušení služby (při mém posledním zkoušení mi celá instalace trvala zhruba minutu). Ovšem je třeba mít na paměti, že pro reálný běh je opravdu dobré využít certifikát vydaný interní či externí certifikační autoritou.

PS> Install-PswaWebApplication –UseTestCertificate
Creating application pool pswa_pool…

Name       State    Applications
----       -----    ------------
pswa_pool  Started

Creating web application pswa…

Path : /pswa
ApplicationPool : pswa_pool
EnabledProtocols : http
PhysicalPath : c:\Windows\Web\PowerShellWebAccess\wwwroot

Creating self-signed certificate…

Create HTTPS Binding…

Po úspěšné instalaci je ještě potřeba přidat autorizační pravidlo. Tímto pravidlem určujeme, kdo se bude moci na náš server připojit.

PS> Add-PswaAuthorizationRule –UserName win2012\administrator –ComputerName win2012 –ConfigurationName Microsoft.PowerShell

Id  RuleName  User                   Destination  ConfigurationName
--  --------  ----                   -----------  -----------------
0   Rule 0    win2012\administrator  win2012      Microsoft.PowerShell

Tím je instalace a konfigurace ukončena. Jak již bylo řečeno – pro testovací podmínky je jedná o opravdu jednoduché kroky. V IIS Manageru, pak pswa vypadá následovně:

image

Nyní se můžeme připojit přes prohlížeč na server, kde nám pswa běží. Vzhledem k tomu, že jsme použili self-signed certifikát, zobrazí se informace o „bezpečnostním problému“. Vzhledem k tomu, že jsme si jisti, můžeme potvrdit volbu „not recommended“ a pokračovat dále.

image

V dalším okně již vyplníme informace, které jsme definovali při tvorbě autorizačního pravidla a klikneme na Sign In.

image

Tímto přihlášením se nám otevírá celý nový svět (nebo minimálně dveře do naší firmy J

Vidíte, že okno PowerShellu běží ve webovém prohlížeči a funguje stejně, jako kdybychom seděli u konzole:

image

Funguje zde dokonce doplňování jmen cmdletů a parametrů pomocí tabulátoru. Jen pro kontrolu, na následujícím obrázku vidíte, že process PowerShellu spuštěný na serveru, kde běží IIS je viditelný i přes pswa:

image

Přes pswa můžete samozřejmě zkoušet i složitější propojení cmdletů pomocí roury:

image

Vše se chová naprosto stejně jako klasická konzole. Pokud máte na gateway serveru zpřístupněné moduly pro administraci vašich interních serverů, není opravdu problém připojit se odkudkoli a spravovat jakýkoli zdroj ve vaší síti. Osobně si myslím, že pswa je jedna z nejlepších novinek PowerShellu v3 na Windows Serveru 2012.

Samozřejmě, že pro firemní použití je potřeba upravit standardní nastavení, které jsem dnes ukázal, ale pro demonstraci použitelnosti toto určitě stačí.

Pokud by vás zajímaly opravdu detailní informace ke konfiguraci, můžete se podívat na článek Deploy Windows PowerShell Web Access na TechNetu.

David Moravec, MVP