Když z webového serveru IIS nejde stáhnout ISO image

Představte si, že někomu potřebujete na IIS webserver vypublikovat ISO image, který by si měl stáhnout. Image nakopírujete na webserver, ale při zadání odkazu do browseru se zobrazí jen Chyba HTTP 404 – Soubor nebo adresář nebyl nalezen. Problém je v tom, že IIS 6.0 musí znát pro každou příponu souboru konkrétní typ MIME. Jakmile nezná tuto vazbu,  odpoví vám výše zmíněnou chybou.

Potřebujeme tedy IIS serveru sdělit, jaký typ MIME odpovídá souborové příponě ISO:

  1. Otevřete IIS Microsoft Management Console (MMC), klepněte pravým tlačítkem myši na název místního počítače a potom klepněte na  Vlastnosti.
  2. Klepněte na tlačítko typy MIME.
  3. Klepněte na tlačítko Nový.
  4. Do pole Přípona zadejte příponu “.iso” bez uvozovek.
  5. Do pole Typ MIME zadejte “application/octet-stream“.
  6. Klepnutím na OK uložte nastavení.
  7. Restartujte službu IIS.

Tentýž postup můžete aplikovat na jakýkoliv další souborový typ.

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.

Instalace skeneru do Windows Serveru 2003

Windows Server 2003 v základním nastavení nepodporuje práci se skenery. Potřebujete-li i přesto tyto funkce zpřístupnit uživatelům, proveďte následující kroky.

nacitani-obrazku-wia

  1. Do Start -> Spustit zadejte services.msc a potvrďte zadání klávesou Enter.
  2. V seznamu najděte službu Načítání obrázků (WIA), klepněte na ni pravým tlačítkem a zvolte Vlastnosti.
  3. Typ spouštění nastavte na Automaticky.
  4. Nainstalujte ovladače skeneru.
  5. Skener se objeví v dialogu  Tento počítač.

WordPress: Nastavení přepisu URL na Microsoft IIS 6.0

Pokud provozujete redakční systém WordPress na platformě Windows Server 2003, možná jste narazili na potíže s přepisem URL trvalých odkazů. Narozdíl od Apache totiž  Microsoft IIS 6.0 nepodporuje přepis URL (ekvivalent mod_rewrite). Je třeba použít filtr, který se o vše postará.

Původní odkazy vypadají přibližně takto:
http://www.jiribrejcha.net/index.php/2009/07/instalujte-ale-potichu/

Za použití přepisu URL se zbavíte části “index.php” v adrese a můžete odkaz přeformátovat do jakékoliv jiné podoby pomocí pravidel:
http://www.jiribrejcha.net/2009/07/instalujte-ale-potichu/

Zmínil jsem, že IIS 6.0 bohužel nic takového v základu neumí. Pro tyto účely je nutné použít některý z pluginů přepisujících adresu. I přes pár hodin strávených s jeho nastavením a testováním jsem si vybral plugin Ionic’s ISAPI Rewrite Filter, který je mimochodem doporučován i vývojáři IIS. Abyste s instalací nemuseli zápasit stejně jako já, tady je návod, jak vše nastavit.

Postup nastavení přepisu URL

  1. Předpokládejme, že máte založen webový server v IIS a v něm běží WordPress. S tím samozřejmě souvisí správně nainstalované PHP a SQL server, ale o tom snad někdy příště.
  2. Stáhněte si freeware filtr Ionic’s ISAPI Rewrite Filter. Obsah archivu rozbalte například do složky “C:\windows\system32\inetsrv\rewriteurl\”.
  3. Otevřete si Správu IIS (Start, Spustit, inetmgr). Pravým tlačítkem klikněte na webový server, kde běží Wordpress a zvolte Vlastnosti.
  4. Přejděte na záložku Filtry ISAPI a klikněte na Přidat.
  5. Přidejte nový filtr viz obrázek. Cesta k souboru je “C:\windows\system32\inetsrv\rewriteurl\lib\IsapiRewrite4.dll”.
    pridat
  6. Výsledný stav vypadá takto.
    isapi
  7. Nyní restartujte IIS.
  8. Otevřete konfigurační soubor filtru “C:\windows\system32\inetsrv\rewriteurl\lib\IsapiRewrite4.ini” a jeho původní obsah nahraďte těmito pravidly pro přepis URL. Po uložení nastavení by mělo být vše funkční, stačí jen ve WordPressu změnit formát odkazů.
  9. # Rewrite odkazu pro WordPress
    RedirectRule ^/index\.php/(.*)$ /$1 [I,R=301]
    RewriteRule ^/(?!index\.php|wp-|xmlrpc)(.*)$ /index.php/$1 [I,L]

  10. Přihlaste se do administrace WordPressu a přejděte do Nastavení a do sekce Trvalé odkazy. Tam přepněte nastavení na Vlastní strukturu a vložte tento formátovací řetězec:

    /%year%/%monthnum%/%postname%/

Dokumentace pluginu hovoří o nutnosti nastavit oprávnění pro otevírání a spouštění na složce “C:\windows\system32\inetsrv\rewriteurl\lib\” pro skupinu IIS_WPG, ale ukázalo se, že to není nutné.

Ověření funkčnosti rewriteru

Pokud potřebujete zjistit, zda samotný rewriter funguje, jak má, postupujte podle tohoto návodu z dokumentace Ionic’s ISAPI Rewrite Filteru. K tomu aby vše fungovalo je potřeba mít povoleno rozšíření webových služeb v IIS podobně jako na obrázku.

enable-iis-extension

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.

Jak vypnout hlášku “Otevřít soubor – upozornění zabezpečení”

V rámci bezpečnostních funkcí Windows zobrazují upozornění před spuštěním .EXE a dalších spustitelných souborů ze sítě. Nevyhnete se mu ani namapováním sdílené složky na jednotku. Zkrátka vždy při snaze o spuštění aplikace vyskočí okno podobné tomuto.

upozorneni

Řešení se ukrývá v Group Policies, respektive v registrech Windows. Pro povolení spouštění .EXE souborů bez zobrazení upozornění přidejte následující hodnotu.

Do větve  HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Associations přidejte řetezcovou hodnotu LowRiskFileTypes a jako její obsah nastavte “.exe;”.

Vše bez uvozovek. Středníkem lze oddělit více typů souborů.

Instalace Microsoft Office na terminálový server

Na vlastní kůži jsem si minulý týden vyzkoušel, že nainstalovat Office na terminálový server opravdu nejde. Potřeboval jsem otevřít několik dokumentů přímo na serveru, ale ouha. Neuvědomil jsem si, že na stroji běží role terminálového serveru.  Microsoft totiž tento scénář úmyslně blokuje. Asi by se mu nelíbilo, kdyby firma některého ze zákazníků nasadila tímto způsobem jednu licenci Office pro hromadné použití všem svým zaměstnancům. A tak jsem byl usměrněn hláškou vyobrazenou níže. Pro příště si to budu pamatovat:)

Pokud se budete v budoucnu pokoušet o něco podobného, pak vězte, že jediná verze Office provozovatelná na terminálovém serveru je Enterprise nebo Volume License. Pro ně existují i celkem zajímavé návody obsahující doporučená nastavení a postupy pro správné nasazení do terminálového prostředí.

Jak nastavit otevírání oken klienta Vzdálené plochy vždy na stejné pozici obrazovky?

Vzdálenou plochu využívá snad každý správce Windows a rozhodně nejen on. Jak ale servery přibývají, může se stát, že potřebujete spravovat více strojů vzdáleně najednou. Máte dva monitory a jednoduše chcete mít na levém monitoru otevřenu plochu jendnoho serveru a na pravém plochu druhého.

Klient Vzdálené plochy ale není tak admin-friendly, jak by mohl být. Otevřete jednu RDP session, následně druhou a zjistíte, že okna se překrývají. Přetáhnete tedy jedno na druhý monitor. Zjistíte, že okna nejsou maximalizovaná, a jsou zobrazeny scrollovací panely. Musíte tedy obě okna maximalozovat. Uf a teď se konečně můžete věnovat tomu, co je opravdu důležité – vašim serverům. Trošku zdlouhavý postup, nemyslíte? Obzvláště pokud ho absolvujete několikrát denně.

Pojďme si ukázat, jak nastavit, aby se na levém monitoru spustila plocha prvního serveru v rozlišení 1024×768 a na pravém plocha druhého ve stejném rozlišení. Předpokládejme, že máte na stole dva 24″ monitory, každý s rozlišením 1920×1200 bodů. Pro každou session uložte nastavení z klienta vzdálené plochy do .RDP souboru.

Otevřete textovým editorem .RDP soubory. Najděte sekci nesoucí údaj o rozlišení (desktopwidth a desktopheight), se kterým se budete na servery připojovat. Nastavení upravte pro oba na:

desktopwidth:i:1024
desktopheight:i:768

Nastavení RDP souboru pro okno otevírané na levém monitoru

Nejpodstatnější je sekce winposstr. Na první pohled je celkem záludná, ale nemějte obavy nás budou zajímat jen poslední čtyři číselné údaje. Ty nesou pozici okna vzdálené plochy na vaší stanici, ze které RDP sessionu otevíráte. Hodnota 2400 znamená, kolik pixelů od levého okraje levého monitoru bude umístěn levý okraj okna. Následující číslo 193 udává kolik pixelů je vzdálen horní okraj okna od horního okraje obrazovky. Třetí a čtvrtý údaj odpovídají vzdálenosti v pixelech pravého a spodního okraje okna vzhledem k levému hornímu rohu levého monitoru. Vztažný bod je tedy vždy levý horní roh levého monitoru.

winposstr:s:0,1,400,193,1440,997

Mezi těmito čtyřmi hodnotami platí následující pravidla.

1440 – 400 – 16 = 1024
pravý okraj okna – levý okraj okna – rezerva 16 pixelů = horizontální rozlišení vzd. plochy 1024 pixelů

997193 – 36 = 768
spodní okraj okna – horní okraj okna – rezerva 36 pixelů = vertikální rozlišení vzd. plochy 768 pixelů

Nastavení RDP souboru pro okno otevírané na pravém monitoru

Výška okna bude stejná, zajistíme tedy jen posun okna doprava. Nastavení by mohlo vypadat takto:

winposstr:s:0,1,2400,193,3440,997

Mezi těmito čtyřmi hodnotami platí následující pravidla.

34402400 – 16 = 1024
pravý okraj okna – levý okraj okna – rezerva 16 pixelů = horizontální rozlišení vzd. plochy 1024 pixelů

997193 – 36 = 768
spodní okraj okna – horní okraj okna – rezerva 36 pixelů = vertikální rozlišení vzd. plochy 768 pixelů 

Pokud jste se v tom všem ještě nezamotali, máte vyhráno. Podle výše uvedených vztahů můžete přepočítat hodnoty tak, aby odpovídali vašim požadavkům na rozlišení a umístění. Velikost rezerv je stále stejná. Budete tedy měnit jen požadované rozlišení okna vzdálené plochy a ona 4 čísla, udávající pozici okna klienta Vzdálené plochy.