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):
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ě:
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.
V dalším okně již vyplníme informace, které jsme definovali při tvorbě autorizačního pravidla a klikneme na Sign In.
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:
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:
Přes pswa můžete samozřejmě zkoušet i složitější propojení cmdletů pomocí roury:
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.