Skip to content


«
»

Co je Windows PowerShell a co nabízí

PowerShell

Rozhraní PowerShell je jednoduše řečeno výkonnější nástupce Příkazového řádku (cmd). Umožní totiž kromě příkazů Příkazového řádku přistupovat k registrům Windows, efektivně můžeme spravovat běh služeb a procesů v systému, umí přistupovat též k objektům zabezpečení a tzv. sady WMI objektů, prohlížet protokol událostí a mnohé další. PowerShell lze zcela zdarma stáhnout z webu společnosti Microsoft a nainstalovat také na počítače se systémem Windows XP SP2 a novější, hlavní využití má však jako serverové řešení, tedy ve Windows Server, ve verzi 2008 je již součástí systému.

PowerShell přišel s Windows Vista v r. 2006 a ve Windows Server 2008 byl již standardní součástí. Má za cíl nahradit Příkazový řádek a nabízí spoustu možností navíc díky skriptům, které jsou postavené na .NET narozdíl od BAT dávkových souborů. Taktéž PowerShell díky technologii .NET Framework umí velmi dobře využít tzv. regulárních výrazů, jež jsou základem teorie formálních jazyků, automatů a gramatických systémů.

Po spuštění vypadá okno docela podobně jako když spustíme Příkazový řádek, jen v modré barvě (výchozí, já mám nastavenou zelenou se žlutým písmem). Vidíme tzv. systémový prompt, tentokrát kromě cesty je zde ještě na začátku PS (PowerShell).

Spuštěné prázdné okno PowerShell

Spuštěné prázdné okno PowerShell

Zkusme si první příkaz v PowerShell, vypíšeme si běžně známý příkaz ipconfig -all, který slouží k diagnostice připojení k síti a používáme jej běžně v Příkazovém řádku.

Příkaz ipconfig -all v PowerShell je stejný jako v Příkazovém řádku

Příkaz ipconfig -all v PowerShell je stejný jako v Příkazovém řádku

Vidíme, že výpis je identický tomu z Příkazového řádku. Také další příkazy jsou stejné, např. cd pro přesun do jiného adresáře, rd pro přejmenování, atd. V čem je tedy PowerShell lepší?

To jsme nastínili již na začátku, umí věci, se kterým si Příkazový řádek neporadí. Nejprve se však seznámíme se základní syntaxí příkazů, která je do jisté míry stále stejná.

Příkazy většinou mají syntaxi xyz-abc -par, kde xyz je nějaké klíčové slovo pro akci (get, set, atd.), abc je přímo co chceme a -par jsou parametry vybraného příkazu. Vidíme, že do jisté míry je PowerShell podobný Příkazovému řádku, přestože jsou to zcela jiné přístupy. Tudíž lze odvodit, že např. příkaz get-service je příkaz k výpisu služeb. Mnohé příkazy lze také psát v podobě tzv. aliasů, je to pohodlnější. Popis aliasů najdeme pod příkazem get-alias. Obecně si pamatujme, že get je výpis něčeho, set nastavení, start spuštění a stop ukončení. Tohle Příkazový řádek neumožňuje. Zkusme si tedy vypsat například aktuálně běžící procesy a poté jeden z nich ukončit. Nejprve použijeme příkaz get-process a následně stop-process -abc. Viz obrázek s výpisem.

Výpis běžících procesů v systému Windows

Výpis běžících procesů v systému Windows

Nápovědu k libovolnému příkazu či aliasu získáme pomocí get-help abcd, kde abcd může být příkaz či jiný alias.

Jednou z velkých výhod PowerShellu je možnost procházet a editovat registry, což umožní správcům efektivně spravovat registry bez nutnosti použití programu regedit. Do klíčů registru se dostaneme zadáním příkazu cd (známý už z Příkazového řádku) a zkratky klíče (HKCU, HKLM, atd.). Napišme příkaz cd hkcu: (nutná dvojtečka kvůli odlišení adresáře od klíče registru) a následně příkazem dir (jako v Příkazovém řádku) můžeme zobrazit podklíče.

Procházení registru Windows v rozhraní PowerShell

Procházení registru Windows v rozhraní PowerShell

V rozhraní PowerShell je taktéž možno pohodlně pracovat se soubory a složkami. A to včetně vytváření složek a souborů, přejmenování, mazání a další běžné operace se soubory. Jen místo grafického rozhraní použijeme příkazy v PowerShell. Podívejme se na příklad vytvoření složky a souboru:

  • New-Item -Path C:/Windows/Prace -ItemType Directory vytvoří novou složku Prace na dané cestě Path
  • New-Item -Path C:/Windows/Work/mynewfile.txt -ItemType File vytvoří nový textový soubor mujsoubor.txt ve složce Prace

kde ItemType určuje, zda vytváříme složku (Directory) či soubor (File). Struktura příkazu je poměrně jednoduchá a logická. Jakoby říkala „vytvoř novou položku na cestě a bude to soubor či složka“. Velmi podobné příkazy použijeme pro přejmenování a kopírování souborů:

  • Rename-Item -Path C:/Windows/Work/soubor1.txt soubor2.txt přejmenuje daný soubor1.txt na soubor2.txt na dané cestě
  • Copy-Item -Path C:/Folder1/Office -Destination C:/Temp kopírování složky Office ze složky Folder1 do cílové složky Temp v C:/

Pokud chceme soubor přesunout, za celý příkaz přidáme parametr -PassThru, který zajistí smazání původního objektu.

Dostáváme se k pokročilejšímu použití rozhraní PowerShell. Nyní se dostáváme již k práci s tzv. WMI (Windows Management Instrumentation) objekty, což je jakási sada nástrojů a objektů pro správu systému. V PowerShellu když potřebujeme vyvolat nějakou akci, která využívá WMI, užijeme alias Get-WmiObject, což naznačuje, že se bude pracovat s WMI. Uveďme jen pár praktických příkladů, které mohou použít zejména správci IT:

Get-WmiObject -Class Win32_LogonSession -ComputerName vypsání aktuálně přihlášených počítačů k danému počítači ComputerName (viz níže)

Get-WmiObject -Class Win32_BIOS -ComputerName vypíše konfiguraci systému BIOS

Get-WmiObject -Class Win32_Desktop -ComputerName vypíše souhrnné nastavení systému

Get-WmiObject -Class Win32_QuickFixEngineering -ComputerName výpis instalovaných aktualizací, včetně času a uživatele kdo ji instaloval

A samozřejmě mnohé další. Za ComputerName se dosadí název počítače či jeho IP adresa, pro místní počítač není třeba zadávat tento parametr. To už jsou však úkoly pokročilé správy Windows a běžný uživatel je nebude patrně příliš potřebovat. Na obrázku níže vidíme výpis instalovaných aktualizací dle uvedeného příkazu.

Výpis instalovaných aktualizací v systému včetně uživatele a času instalace

Výpis instalovaných aktualizací v systému včetně uživatele a času instalace

Pro koho tedy PowerShell je? Zejména pro zkušené uživatele a správce Windows a sítí pod Wíndows, pro správu Windows Server, apod. Je faktem, že běžného uživatele PowerShell nebude asi příliš zajímat, přesto není od věci o něm vědět, že neexistuje pouze Příkazový řádek, ale i něco lepšího pro efektivní správu. Uvedli jsme jen naprosté základy k syntaxi a pár příkladů, kde je možné PowerShell využít, zejména ty, na co nestačí Příkazový řádek. PowerShell je postaven na .NET a tudíž využívá objektově-orientované programování (OOP), takže můžeme vytvářet celé skripty s podmínkami, cykly, atd. Narozdíl od dávkových BAT souborů. Shrňme si přednost PowerShell rozhraní:

  • použití stejných příkazů jako v Příkazovém řádku (cmd)
  • přístup k registrům Windows a editace klíčů i hodnot
  • správa zabezpečení systému
  • práce s WMI objekty
  • kompletní možnosti souborových operací
  • správa procesů a služeb, jejich spouštění, zastavení a násilné ukončení (kill)
  • a mnohé další, zde nezmíněné vlastnosti a možnosti

PowerShell tak zejména správcům dává do rukou výkonné prostředí pro správu Windows bez nutnosti užití grafického rozhraní. Mnohem výkonnější než Příkazový řádek. Ještě bych se rád na závěr zmínil o použití tzv. ServerCore režimu ve Windows Server 2008.

V praktické správě serveru často potřebujeme co nejlépe šetřit systémovými prostředky a diskovým prostorem. Proto Windows Server 2008 umožní běh systému v novém režimu Server Core, který je také mnohem bezpečnější, protože nespouští řadu zneužitelných služeb. Tento nový režim systému umožní instalovat OS bez GUI. Systém je administrován jen za pomocí rozhraní PowerShell. Správcům nepotřebujícím GUI to výrazně šetří systémové prostředky a RAM. Uveďme základní výhody i nevýhody tohoto režimu:

  • + minimální počet služeb, rolí a tím i menší spotřeba paměti a procesů
  • + možnost rychlejší práce s menším zatížením
  • + eliminace hackerských útoků omezením kernelu (jádra)
  • - nutná znalost příkazů a syntaxí rozhraní PowerShell
  • - administrátoři se musí spokojit čistě s textovým prostředím
  • - některé role serveru (jako je terminálový server) nelze v Server Core instalovat

Ano, jak se říká „vše má své plus i mínus“. V praxi například není potřeba instalovat grafické rozhraní pro správu DHCP, DNS či WINS serveru. To vše je možné řídit pouze pomocí PowerShell bez plýtvání prostředky. Zkušeným správcům zcela jistě bude tento režim užitečný.

PowerShell je nástupcem Příkazového řádku se spoustou výkonnějších možností a vlastností, které jsme stručně v článku zmínili. Velkou výhodou je použití klasických cmd příkazů a navíc má spoustu dalších možností. I když běžný uživatel s ním nepřijde do styku, není na škodu o tomto rozhraní aspoň vědět a třeba si jej přímo vyzkoušet.

 

Rubrika: Návody, Ostatní, Počítačové programy, Představení.

0 reakcí

Mějte přehled o nových komentářích, přihlašte se k odběru RSS kanálu komentářů tohoto příspěvku.

Některé HTML je povoleno

(vyžadováno)

(vyžadováno, nebude nikde zobrazeno)