Objevte možnosti WMIC

Kouzlo Windows spočívá v tom, že vždy dokáží překvapit něčím novým. Tak schválně, kolikrát jste v praxi použili rozhraní WMIC? K čemu slouží? Co umí? Na tyto otázky se vám pokusím odpovědět v tomto článku.

Windows disponují velmi obsáhlým rozhraním WMI (Windows Management Instrumentation). Rozlišuje několik hlavních tříd, přičemž každá z nich obsahuje objekty odpovídající dílčím komponentám operačního systému. WMI ve spojení s Powershellem či VBScripty umožňuje spravovat prostředky místního počítače, ale i ostatních stanic a serverů v síti. Vyžaduje to ovšem určité znalosti a prvotní seznámení s těmito postupy není zrovna procházkou růžovým sadem.

Microsoft naštěstí k WMI vytvořil rozhraní pro příkazový řádek nazývané WMIC (Windows Management Instrumentation Command-line). Jeho předností je snadné používání a pomůže vám vyhnout se těžkopádnému přístupu WMI. Přímo se tak nabízí využít WMIC v batch skriptech. Ty určitě znáte, mají příponu BAT.

Právě WMIC s příkazovým řádkem Windows se dnes budeme věnovat a ukážeme si několik praktických příkladů, které si můžete vyzkoušet.

Ukázkovým příkladem by mohl být skript realizující jednoduchou inventuru hardwarové konfigurace a softwarového vybavení počítačů v síti. Vytvořili bychom dávkový soubor, který by pomocí WMIC příkazů zjistil informace o přihlášeném uživateli, verzi operačního systému, nainstalovaných programech, běžících procesech, velikosti pevného disku, procesoru a množství operační paměti. Všechny tyto informace by uložil do souboru, jehož název by korespondoval s názvem počítače. To proto, abyste si dokázali spojit shromážděné informace s konkrétním počítačem. To by mohlo být určitě zajímavé, máte-li v síti větší množství počítačů a nechcete je po jednom obcházet a zjišťovat všechny údaje ručně.

Realizaci některých zmíněných funkcí si ukážeme. Je jen na vás, jak je dále využijete.

Režimy WMIC

WMIC může běžet ve dvou režimech. Prvním je klasické “inline” chování, kdy do příkazového řádku zadáte kompletní příkaz a ten vám na konzoli předá svůj výstup. Nejlépe to vystihne následující příklad. Z příkazového řádku Windows zadáme příkaz pro výpis informací o operačním systému. Na výstupu očekáváme požadovaná data a navrácení do příkazového řádku. Takový příkaz lze velmi snadno užít ve skriptu.

wmic os list brief

inline

Druhou možností, jak s WMIC pracovat, je spustit jej v interaktivním režimu. Zkusme stejný příklad v tomto režimu. Rozdíl bude ten, že nejdříve spustíme samotné WMIC a potom zadáme příkazy, které chceme vykonat. Řízení ovšem nebude vráceno přímo zpět příkazovému řádku Windows, ale budeme navráceni do interaktivního režimu WMIC. Pro jeho opuštění je nutné použít příkat exit.

wmic
os list brief
exit

interactive

Příklady

Sérii následujících příkazů si můžete vyzkoušet pouhým zadáním do Příkazového řádku Windows. Pokud se pustíte do testování WMIC a nebudete vědět, jaké jsou parametry toho či onoho příkazu vyzkoušejte za příkaz zadat kombinaci znaků /? (lomítko a otazník). WMIC vám napoví správnou syntaxi.

Informace o hardware

  1. Pojďme zjistit, jaký procesor se ukrývá v našem počítači. Výstup nasměrujme do textového souboru.

    wmic /output:c:\cpu.txt cpu get

  2. Nic nám nebrání vybrat si pouze ty sloupce, které pro nás mají největší vypovídací hodnotu. WMIC nabízí kromě standardního výstupu na konzoli a do textového souboru i mnohem příjemnější formáty Výstup tentokrát uložíme do htm souboru ve formátu tabulky.

    wmic /output:c:\cpu.html cpu get extclock,name,numberofcores /format:htable

  3. Do souboru, jehož název bude shodný s názvem počítače uložíme celkovou velikost operační paměti včetně detailních informací o jednotlivých modulech. Ukázku obsahu výstupního souboru zachycuje tento obrázek.

    wmic /output:”c:\%computername%.txt” memorychip get capacity, caption, devicelocator, name, partnumber

    output

  4. Nyní si nechme zobrazit seznam pevných disků, připojených externích disků ale například i čteček paměťových karet.

    wmic diskdrive get model,size,interfacetype,mediatype

  5. I BIOS vašeho počítače uchovává zajímavé informace.

    wmic bios get /format:list

  6. Důležitým údajem může být i výstup tohoto příkazu, který vrací informace o výrobci počítače, modelu a sériové číslo (Service Tag).

    wmic csproduct

Práce s OS

  1. Chcete-li získat aktuální seznam procesů/služeb, pomohou vám příkazy v následujícím formátu. Pro výstup do souboru lze použít také dvě většítka psaná bez mezery. Výstupní soubor navíc obohatíme o uživatelské jméno proměnnou username.

    wmic service list brief >> c:\%username%-sluzby.txt
    wmic process list brief >> c:\%username%-procesy.txt

  2. Můžete ale ovládat i startovací režim služeb. Naše ukázka zakáže trvale službu Centrum zabezpečení.

    wmic service wscsvc call changestartmode disabled

  3. WMIC zdaleka není jen rozhraní pro pasivní sběr informací, ale umí spouštět i další aplikace. Ukažme si, jak je možné spustit kalkulačku. Na první pohled se může zdát nelogické spouštět kalkulačku takto složitě, ale WMIC nám ji umožňuje spustit vzdáleně na jiném počítači v síti. Stačí do příkazu doplnit parametr node.

    wmic process call create calc.exe
    wmic process /node:jirka-pc call create calc.exe

  4. Tato ukázka dělá přesně to co naznačuje její doslovný překlad, tedy restartuje počítač. Před jejím zkoušením vám vřele doporučuji uložit si veškerou rozdělanou práci.

    wmic os call reboot

  5. Všechny aplikace v počítači nainstalované pomocí Windows Installeru odhalíte tímto příkazem.

    wmic product get name

  6. Nalezení jmen všech souborů větších než 500 MB nebylo nikdy snazší. Příkaz je značně časově náročný, protože porovnává velikost každého souboru na vašem pevném disku.

    wmic datafile where “FileSize>’500000000′” get name

Tento článek byl napsán pro časopis Computer.