Zjištění sériového čísla a modelu PC z příkazového řádku pomocí WMI

Ať už potřebujete skriptem sesbírat modelová označení počítačů nebo zjistit nečitelné sériové číslo domácího stroje, pomůže vám rozhraní WMI.

Pro zobrazení sériového čísla počítače napište do příkazového řádku:

C:\Users\Jirka>wmic /node:”<nazev-pc>” bios get serialnumber

Zavoláním jednoho z těchto příkazů zjistíte modelové označení stroje:

C:\Users\Jirka>wmic /node:”<nazev-pc>” baseboard get product

C:\Users\Jirka>wmic /node:”<nazev-pc>” computersystem get model

Vynecháním parametru node běží příkaz na lokálním PC. Při spouštění na vzdáleném stroji pamatujte na to, že okolo názvu počítače musí být uvozovky.

Naučte se pracovat se symbolickými a pevnými odkazy

Windows Vista a samozřejmě i Windows 7 obsahují podporu tzv. symbolických odkazů, pevných odkazů a spojení adresářů. Ukážeme si, že mohou být velmi užitečné a čeho můžete díky nim dosáhnout.

Pokud jste dříve přišli do styku s některým z unixových operačních systémů, možná tušíte, že na úrovni souborového systému lze vytvářet tzv. symbolické odkazy (symbolic links, symlinks) a pevné odkazy (hard links). Obdobně je tomu i ve Windows. Principy fungování symbolických i pevných linků se mezi těmito dvěma světy téměř neliší. Ve světě Windows se navíc můžete setkat s pojmem spojení adresáře (junction).

Vy, kteří slyšíte tyto pojmy poprvé nezoufejte, vše si vysvětlíme a ukážeme několik příkladů, které si můžete sami vyzkoušet. Předpokladem pro práci s odkazy je Windows Vista a novější, který je prvním systémem Microsoftu s jejich podporou. V tomto ohledu tedy Windows oproti unixovému světu lehce zaspala.

Zástupce

Začněme zlehka u struktury, kterou všichni důvěrně známe již dlouhá léta – zástupce. Připomeňme si jeho charakteristické znaky a čeho lze jeho použitím dosáhnout. Zástupce je soubor s příponou .LNK odkazující na jiný soubor nebo složku na libovolné diskové či síťové jednotce. Prakticky všechny položky nabídky Start jsou právě zástupci. Stejně tak pravděpodobně i vaše pracovní plocha obsahuje několik z nich. Poznáte je podle typického symbolu šipky v levé spodním rohu vyobrazení ikony. Obsahem souboru samotného zástupce je informace o umístění souboru či složky, na kterou odkazuje. Stejně tak nese i informaci o své ikoně a velikosti okna v jakém se má odkazovaný soubor nebo složka otevřít – normální, maximalizované okno atd. Smazání zástupce nemá žádný vliv na cílovou odkazovanou strukturu (soubor či složku), přičemž na strukturu může odkazovat bez problémů i více zástupců zároveň. Odkaz i cílová struktura se mohou nacházet na libovolných diskových oddílech či dokonce na síti.

Symbolický odkaz

Symbolický odkaz je principem svého fungování podobný klasickému zástupci. Odkazuje na soubor či složku a je stejně jako zástupce je reprezentován souborem. Tentokrát s tím rozdílem, že do jeho obsahu nelze zasahovat. Měli byste také myslet na to, že diskový oddíl na němž je samotný symbolický odkaz uložen musí být typu NTFS. Pro odkazovaný cílový soubor čí složku toto omezení neplatí. Sliboval jsem příklady, takže pojďme směle na ně.

Pro vytvoření tohoto odkazu slouží příkaz mklink, který se poprvé objevil ve Windows Vista. Pro jeho spuštění budete potřebovat administrátorské oprávnění, proto spusťte příkazový řádek cmd.exe v Režimu správce.

První ukázka zachycuje vytvoření symbolického odkazu s názvem n.exe v existující složce C:\Linky, který odkazuje na spustitelný .EXE soubor Poznámkového bloku z Windows. Do příkazového řádku v Režimu správce zadejte mklink C:\Linky\n.exe C:\Windows\system32\notepad.exe. Ve výpisu příkazu dir C:\Linky\ poznáme podle označení <SYMLINK>, že n.exe je ve skutečnosti odkaz. Navíc je reprezentován souborem, takže jeho odstranění provedete prostým smazáním del C:\Linky\n.exe.

Kompletní sled výše popsaných příkazů zachycuje obrázek níže.

Doplněním přepínače tentokrát příkazem mklink /D C:\Linky\fav C:\Users\Jirka\Favorites vytvoříme symbolický odkaz na složku s oblíbenými položkami uživatele Jirka . Příkazy cd C:\Linky\fav a dir si ověřte, že se opravdu vypíší všechny oblíbené webové stránky.

Poznávacím znamením symbolického linku na složku je označení typu <SYMLINKD> ve výpisu příkazu dir C:\Linky\. Ke smazání odkazu na ukázkovou složku použijte příkaz rd C:\Linky\fav. Výpis si můžete prohlédnout níže.

Pevný odkaz

Zatímco symbolický link slouží pouze jako ukazovátko na soubor či složku, pevný odkaz (hard link) lze vytvořit pouze mezi dvěma soubory. Vazba mezi nimi je o poznání důkladnější. Vytvoříme-li pevný odkaz C:\Pevnylink.doc na existující dokument C:\Návody\Odkazy.doc, vznikne vlastně druhá cesta k témuž souboru. Přičemž obě budou odkazovat na stejný soubor, který je na pevném disku fyzicky uložen pouze jednou a zabírá tedy místo na disku pouze jednou. Ať už tedy upravíte text dokumentu C:\Návody\Odkazy.doc či v jeho pevném odkazu C:\pevnylink.doc, budou vždy viditelné z obou umístění. Tuto vazbu vytvoříte příkazem mklink /H C:\Pevnylink.doc C:\Návody\Odkazy.doc.

Zásadní rozdíl oproti symbolickým odkazům spočívá v tom, že v pevné odkazy je možné vytvářet pouze v rámci téhož diskového NTFS oddílu. Liší se i postup při odstraňování souboru a jeho pevného linku. Ve skutečnosti totiž při smazání původního dokumentu C:\Návody\Odkazy.doc zůstává obsah souboru fyzicky stále uložen na pevném disku, protože na něj stále ukazuje pevný odkaz C:\Pevnylink.doc. Dokud neprovedeme smazání pevného linku, bude obsah souboru přes pevný odkaz i nadále přístupný.

Smazání pevného odkazu proveďte příkazem del C:\Pevnylink.doc.

A jak to všechno využít v praxi? Nelíbilo by se vám například přistupovat k hosts souboru přímo přes C:\hosts? Pomůže vám příkaz ve tvaru mklink /H C:\hosts C:\windows\system32\drivers\etc\hosts.

Veškeré operace mazání souborů a odkazů můžete samozřejmě provádět i z grafického rozhraní Průzkumníka.

Spojení adresářů

Zajímavější uplatnění můžete najít pro techniku Spojení adresářů (Junction). Opět jde o dvě cesty ke složce, která je fyzicky na pevném disku uložena jednou. Jde tak trochu o obdobu symbolického linku.

Praktické použití může být následující. Na externím pevném disku v umístění K:\Data\Audio\ máte hudbu, kterou byste rádi viděli jako složku C:\Hudba. Příkazem mklink /J C:\Hudba K:\Data\Audio docílíte přesně tohoto požadavku.

Otevřením složky Hudba na disku C: se rázem transparentně dostáváte přímo na externí disk. Podobně si můžete zpřístupnit například složku pracovní plochy nebo jakoukoliv jinou.

Spojení adresářů můžete zrušit například nástrojem Junction Link Magic.

Uživatelské jméno a název počítače z příkazového řádku

Pokud potřebujete ve vašem skriptu vypsat uživatelské jméno aktuálně přihlášeného uživatele nebo název počítače, pomohou vám tyto dva rychlé příkazy.

whoami
echo %computername%

Spusťte je pouhým vložením do okna příkazového řádku. Příkaz whoami můžete spustit i jinou cestou, jedná se totiž o klasický spustitelný EXE soubor. Naproti tomu příkaz echo musí být interpretován skrze cmd.exe – jinými slovy ho nespustíte například z vyhledávacího pole nabídky Start a z dialogu Spustit.

Zjištění MAC adresy síťového adaptéru

Fyzickou MAC adresu síťové karty obvykle zjišťujeme hledáním odpovídající hodnoty v objemném výstupu příkazu ipconfig /all. Znáte ale utilitu getmac? Jde o jednoúčelový nástroj, který je integrovanou součástí Windows Vista a 7. Vyzkoušejte si následující příkaz.

getmac /V /NH

Výstup může být následující. Řekněte sami, není příjemnější nežli sáhodlouhý sled informací z ipconfigu?

Instalujte, ale potichu

Dnes se budeme zabývat činností, kterou dobře zná každý z nás. Nahlédneme do možností instalace aplikací ve Windows. Nemusíte mít strach, že se budeme učit klikat na notoricky známý sled tlačítek Další, Další, Další, Dokončit. Podíváme se totiž společně na celou věc trošku z jiné stránky a vezmeme instalaci aplikací do vlastních rukou.

Instalace v grafickém rozhraní

Můžete se setkat s několika způsoby instalace aplikací. První a nejznámější je výše naznačený postup, kdy spustíte grafickou verzi instalátoru a postupně se proklikáváte jeho dialogy. Je-li třeba, upřesníte některé základní parametry, jako například složku, kam si přejete program nainstalovat, nebo zda se má na ploše vytvořit zástupce. V posledních kroku se s vámi instalátor rozloučí a vy můžete program poprvé spustit. Každou aplikaci je třeba alespoň lehce nastavit, takže i to bude jistě jeden z kroků. Některé aplikace navíc vyžadují akceptování smlouvy EULA (End User License Agreement) nebo vám nabídnou účast v programu pro zlepšení kvality daného software. Doposud byla vaše pozornost odváděna na instalaci a nastavení aplikace samotné, a až nyní jí můžete skutečně začít používat. Nicméně pokud instalujete pouze malé množství programů, může tento postup být poměrně časově efektivní.

Portable aplikace

Nejste-li příznivci instalování, pak možná provozujete své aplikace v takzvané portable verzi. Funguje to tak, že si stáhnete upravenou verzi aplikace tak, aby nevyžadovala instalaci, zkopírujete ji na USB flash disk a veškeré softwarové vybavení si nosíte s sebou. I to je samozřejmě zajímavé řešení. O tom snad ale někdy příště.

Tichá instalace

Pojďme rovnou k náplni tohoto článku. Řeč bude o tiché instalací aplikací. Tichá v tom slova smyslu, že automaticky běží na pozadí a neobtěžuje uživatele žádnými dialogy. My ji pouze skriptem z příkazového řádku zadáme požadované parametry. Vše ještě rozšíříme o automatické nastavení aplikací a lehkou údržbu systému. Výhodou tiché instalace je její rychlost a podpora naprosté většiny dnešních aplikací. V případě nasazení většího množství aplikací na větší počet počítačů prakticky nemá konkurenci. Patrně jedinou nevýhodou je vyšší časová náročnost přípravy instalačního skriptu.

Nejčastějšími příponami instalačních souborů bývají .exe a .msi. Software je distribuován uvnitř těchto balíčků a celou instalaci programu řídí takzvaný instalátor. V případě .msi je jím Windows Installer. U spustitelných .exe souborů se můžete setkat s několika různými instalátory. Po bližším ohledání zjistíte, že jde zpravidla o InstallShield, Inno Setup, případně nějaký další.

Typ instalátoru nám jasně říká, jaké parametry lze pro tichou instalaci aplikace použít. Stručný seznam instalátorů a jim odpovídajících parametrů najdete v této tabulce. Velmi dobrým zdrojem je také server http://www.appdeploy.com/.

Instalátor Parametry
InstallShield setup.exe /s
Windows Installer msiexec /i setup.msi /qn REBOOT=ReallySuppress
Inno Setup setup.exe /VERYSILENT
Neznámý setup.exe /?

V případě, že nevíte, jaký instalátor výrobce aplikace použil, můžete si veškeré parametry nechat vypsat zadáním příkazu setup.exe /? do příkazového řádku Windows. Setup.exe nahraďte správným názvem souboru a případně cestou k němu.

Píšeme skript

Nejnázornější bude malá ukázka, vzhůru do ní. Náš skript [šipka k skript.png] bude postupně volat tiché instalace programů, nastaví Adobe Reader, tak aby se choval podle našich přání a na závěr provede lehkou očistu systému od zbytečností. V průběhu svého běhu bude na příkazový řádek vypisovat informace o stavu instalace, abychom věděli, co se povedlo a kde je naopak něco špatně.

skript

Na začátku si definujme proměnnou Apps, která obsahuje cestu ke složce s instalačními balíčky. Dejme tomu, že jsme je umístili do složky C:\Install.

SET Apps=C:\Install

Pojďme nainstalovat první aplikaci. Bude jí například Mozilla Firefox. Místo %Apps% se vloží cesta, kterou jsme do proměnné uložili v předchozím kroku a spustí se instalátor s parametrem pro tichou instalaci.

“%Apps%\Firefox Setup 3.0.10.exe” /S

Firefox po nainstalování vyžaduje vytvoření nového profilu. To zařídíme tímto příkazem. Všimněte si proměnné %ProgramFiles%, která je systémová (je automaticky nastavena systémem) a ukrývá v sobě cestu ke složce „Program Files“.

“%ProgramFiles%\Mozilla Firefox\firefox.exe” -CreateProfile “default

Požadujete-li nastavit Firefox jako výchozí prohlížeč zadejte i tento příkaz.

“%ProgramFiles%\Mozilla Firefox\firefox.exe” -setDefaultBrowser -silent

Tato část kódu ve skriptu kontroluje po dokončení instalace každé aplikace, zda instalace proběhla v pořádku. Pokud je něco špatně, vypíše „ERROR“.

IF ERRORLEVEL 1 ECHO ERROR
IF NOT ERRORLEVEL 1 ECHO OK

Pro přehlednost výstupu oddělíme důležité části prázdným řádkem.

ECHO.

Jako další nainstalujeme Adobe Reader. Výsledek instalace můžeme ovlivnit mnoha parametry. Instalátoru zde říkáme, že si po dokončení nepřejeme provádět restart počítače a že instalujeme Reader všem uživatelům počítače. Také chceme automaticky akceptovat smlouvu EULA a zakázat automatické spuštění Readeru po dokončení instalace.

“%Apps%\Acrobat\AdbeRdr910_en_US_Std.exe” /sAll /rs /l /msi”/qn /norestart ALLUSERS=1 EULA_ACCEPT=YES SUPPRESS_APP_LAUNCH=YES”

Při prvním spuštění by nás ovšem Reader přivítal dotazem, zda se chceme zúčastnit programu pro zlepšení software. Tento dialog můžeme zrušit přidáním tohoto příkazu do skriptu.

REG ADD “HKCU\Software\Adobe\CommonFiles\Usage\Reader 9 ” /t REG_DWORD /v OptIn /d 0 /f

Ukažme si, že to jde i jednoduše. Typickým příkladem aplikace využívající Windows Installer je komprimační nástroj 7zip. Tichou instalaci, která mimochodem trvá pouze několik vteřin, zahájíme takto.

msiexec /i “%Apps%\7z465.msi” /qn

Pro správu obrázků si nainstalujme XnView.

“%Apps%\xnview\XnView-win.exe” /verysilent

Plugin Microsoft Silverlight nainstalujeme takto.

“%Apps%\Silverlight.2.0.exe” /q

Zjednodušeně si ukažme, jak přímo skriptem vyčistit ikony na ploše. Acrobat jsme instalovali všem uživatelům, proto je zástupce umístěn jinde. XnView se nainstalovalo pouze aktuálnímu uživateli, a tak ikonu najdete v jeho uživatelském plofilu. Cesty se mohou mírně lišit na Windows XP a Windows Vista.

DEL “%SystemDrive%\Users\Public\Desktop\Adobe Reader 9.lnk”
DEL “%UserProfile%\Desktop\XnView.lnk”

Kompletní skript včetně několika vzorových aplikací si můžete stáhnout tady. Samozřejmě také můžete spouštět jednotlivé příkazy ručně přímo v příkazovém řádku. Pro účely testování doporučuji využít Microsoft Virtual PC a vytvořit si virtuální stroj.

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

Windows 7: Připinování zástupce aplikace na Taskbar a do Start Menu skriptem

Ve Windows 7 si můžete umístit na Taskbar či do Stat menu zástupce libovolných aplikací. Pokud to ale chcete provést skriptem možná jako já zjistíte, že to není tak snadné. Pouhé zkopírování zástupce do odpovídající složky nestačí. To bylo dříve možné například u Quick Launch panelu. Pokud ale chcete přišpendlit zástupce aplikace na hlavní panel Windows (Pin to Taskbar) nebo do nabídky Start (Pin to Start Menu), musíte použít tento postup. Na Windows 7 RC zaručeně funguje.

  1. Stáhněte si tento balíček skriptů a soubory rozbalte například do složky C:\Skripty.
  2. Pro připinování Outlooku na taskbar spusťte skript PinItem.wsf s těmito parametry:

    cscript //nologo C:\Skripty\PinItem.wsf /item:”%ProgramData%\Microsoft\Windows\Start Menu\Programs\Microsoft Office\Microsoft Office Outlook 2007.lnk” /taskbar

  3. Připinování Outlooku do Start Menu bude vypadat takto:

    cscript //nologo C:\Skripty\PinItem.wsf /item:”%ProgramData%\Microsoft\Windows\Start Menu\Programs\Microsoft Office\Microsoft Office Outlook 2007.lnk”

Tichá instalace Virtual PC 2007

Virtual PC 2007 v 32 bitové i 64 bitové verzi  je ditribuováno jako soubor setup.exe. Abychom z něj získali .msi balíček použijeme tento příkaz. Výsledkem jsou dva soubory uložené ve složce C:\Temp. Jedním je balíček Virtual_PC_2007_Install.msi a druhým je aktualizace XML Core Services (msxml6-KB927977-enu-x86.exe), kterou Virtual PC vyžaduje.

setup.exe /c /t C:\Temp

Samotnou instalaci Virtual PC pak obvykle realizuji tímto skriptem. Proměnná Apps obsahuje cestu k instalačním souborům. Poslední řádek definuje systémovou proměnnou pro výchozí umístění virtuálních pevných disků (VHD) a  nastavení virtuálních počítačů (VMC). Nechci je totiž mít uložené na systémovém disku aktuálního OS. Raději volím úložiště E:\VM na externím disku.

Tichá Instalace 32 bitové verze

“%Apps%\msxml6-KB927977-enu-x86.exe” /quiet
msiexec /qn /i “%Apps%\Virtual_PC_2007_Install.msi” allusers=2
REG ADD “HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment” /t REG_SZ /v MYVIRTUALMACHINES /d E:\VM /f

Tichá Instalace 64 bitové verze

“%Apps%\msxml6-KB927977-enu-amd64.exe” /quiet
msiexec /qn /i “%Apps%\Virtual_PC_2007_Install.msi” allusers=2
REG ADD “HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment” /t REG_SZ /v MYVIRTUALMACHINES /d E:\VM /f

Výpis písmene aktuální jednotky ze skriptu

Našel jsem zajímavý způsob, jak vypsat aktuální písmeno jednotky, ze které je skript volán. K čemu je to dobré? Mám batch skript na USB flash disku a ten v různých počítačích dostává přiřazena různá  písmena. Někde se tváří jako E:\, jinde dostane H:\. Záleží na konkrétním případě. Já ale potřebuji zjistit písmeno jednotky, ať je jakékoliv, a použít jej ve skriptu.

SET drv=%cd:~0,2%
ECHO %drv%

První řádek vypíše první dva znaky (lze ovlivnit číslem za čárkou) z proměnné nesoucí aktuální adresář. Druhý pak obstarává kontrolní výpis. Výstup skriptu bude například “E:” bez uvozovek.