Windows 7 címkéhez tartozó bejegyzések

Icon cache törlése Windows 7 alatt

A héten megint megőrült a Windows Explorer a gépemen és elkezdett abszolút nem odavaló ikonokat rajzolgatni a fájlokhoz. Most épp olyan kedve volt, hogy a TXT fájlok is ZIP ikont kaptak:

Icon cache corruption

Az ember azt hinné, hogy ilyen apróság felett át lehet siklani, de pillanatok alatt kiderül, hogy ez sokkal zavaróbb, mint gondolnánk. Sajnos ez a hiba eddig minden Windows verziónál előbb-utóbb előjött, Windows 7 alatt szerencsére már sokkal ritkábban. Mivel ezért mindig elfelejtem, hogyan kell megjavítani, most leírom, hátha más is hasznát veszi.

Az icon cache Windows 7 alatt a %UserProfile%\AppData\Local\IconCache.db fájlban található, ettől kell megszabadulni és újraépíteni. Ez csak úgy megy, ha előbb kilőjük a Windows Explorert, a fájl törlése után pedig újraindítjuk a gépet. Az alábbi batch fájl épp ezt teszi:

@echo off
cls
echo The Explorer process must be killed to delete the Icon DB. 
echo Please SAVE ALL OPEN WORK before continuing
pause
taskkill /IM explorer.exe /F 
echo Attempting to delete Icon DB...
If exist %userprofile%\AppData\Local\IconCache.db goto delID
echo Previous Icon DB not found...trying to build a new one
goto :main

:delID
cd /d %userprofile%\AppData\Local
del IconCache.db /a
echo Icon DB has been successfully deleted
pause
goto main

:main
echo Windows 7 must be restarted to rebuild the Icon DB. 
echo Restart now? (Y/N):
set /p choice=
If %choice% == y goto end
echo Restart aborted...please close this window 
explorer.exe

:end
shutdown /r /t 0
exit

Windows 7 Jump List – amire nem jó

Az elmúlt órákat azzal töltöttem, hogy megpróbáltam a Windows 7 Jump List funkcióját beépíteni a saját alkalmazásomba. Közben számtalanszor volt “na neee, ezt nem hiszem el :(” élményem, ami után mindig hosszas guglizás következett, ezért leírom a tapasztalatokat és a tanulságokat, hogy másnak megspóroljak egy kis időt:

1. A jump list jól programozható WPF 4-ből a System.Windows.Shell névtéren keresztül, XAML-ből és code behindból egyaránt, nem kell hozzá a Windows API Code Pack. “Természetesen” a két környezetben nem azonos az API, tehát nem mindegy, milyen cikket olvas az ember.

2. A jump list Recent items kategóriája csak akkor használható, ha az alkalmazáshoz van fájl kiterjesztés társítva, egyébként nem. Itt jól jöhet a RegistrationHelper.RegisterFileAssociations metódus a Windows API Code Pack példák közül vagy persze írhatunk telepítőt is.

3. A jump listben lehet saját taskokat létrehozni, ennek bemutatására érdekes módon az összes demó a Notepad.exe-t és a Calc.exe-t indítja el. Nem véletlenül. Itt csak olyan útvonalakat lehet megadni, mint amiket például a Start menü Run ablakába be lehet írni, ami a shell által elindítható, végrehajtható. Ha a fájl nem létezik a diszken, kivételt kapunk. Nem véletlenül hívják ezt belül shell linknek, csak managed környezetben lett “task” a neve.

4. A jump list nem egyenlő a menüvel, az ide felvett taskokra történő kattintásról nem fog értesülni az aktuális alkalmazás. Valami hihetetlen kreativitásról tett tanúságot az, aki kitalálta, hogy ha egy jump list elemre kattintunk, akkor mindig el fog indulni egy új példány az alkalmazásból. Annyit tudunk tenni, hogy megadjuk, hogy ez az újabb példány milyen parancssori paramétereket kapjon meg. Ugye ez épp az a scenario, amire az Explorer, az Internet Explorert és a Wordöt használjuk, arra kiváló.

5. Ha olyan taskot szeretnénk a jump listbe tenni, ami az alkalmazás aktuális példányára vonatkozik (például ablak maximalizálás, About ablak megnyitása stb.), akkor az egyetlen lehetőség, hogy a saját exe fájlunk útvonalát adjuk meg és parancssori paraméterben tudatjuk, hogy mit szeretnénk tenni vele. Sajnos ebben az esetben is el fog indítani a Windows egy új példányt az alkalmazásból, aminek indulásakor megvizsgálhatjuk, hogy fut-e már másik példány belőle (az eredeti) és annak valahogy (remoting, named pipe, window message stb.) átküldjük, hogy mit kellene éppen csinálnia, majd a második példány bezárja magát. Ennek persze van 2 nagyon fájó hátránya: az alkalmazásunk csak 1 példányban fog tudni futni, az üzenet átküldése pedig elég gusztustalan munka.

Tudtok jobb megoldást?

 

Dual boot VHD-ból kék halállal

Mint korábban már írtam róla, sikerült megoldanom, hogy a Windows 7-em mellett VHD-ból tudjak Windows Server 2008 R2-t bootolni. Ez működött is szépen, ám a minap a szerver indítása közben kék halál fogadott.

Annyira meglepett (ugye azok a régi szép Win’95-ös idők :)), hogy eltartott egy darabig, amíg a sok szöveg között megtaláltam a hibaüzenetet:

An initialization failure occurred while attempting to boot from a VHD.  The volume that hosts the VHD does not have enough free space to expand the VHD.

Olvasgatás után kiderült, hogy a VHD-ból indított operációs rendszer az indítása során lefoglal magának annyi helyet a diszken, amennyi a VHD maximális mérete. Nálam a VHD csak 8 GB-ot foglalt a diszken, de létrehozáskor meghagytam a default 127 GB-os maximális méretet, mondván, hogy a dinamikus diszk nőhet, ahogy akar, ami nem is okozott gondot egészen addig, amíg volt legalább 127 GB szabad hely, amire induláskor rátehette a mancsát. Mikor a másik oprendszer alól telepakoltam a diszket, emez eldobta magát kék halállal.

Nosza elő a Disk Management MMC-t Windows 7 alatt, Attach VHD, jobb klikk a köteten és Shrink Volume:

Disk Management MMC: Shrink Volume

Ez szépen össze is nyomta a kötetet, amitől azonban a VHD nem lett kisebb, csak éppen lett a végén egy rakás “unallocated” terület. De ennek a szerencsétlennek azt is le kell foglalnia bootoláskor, mert ha nem, akkor kék marad. Keresgéltem, de sehol nem találtam Shrink VHD opciót, végül az ingyenes vmToolkit VHD Resizer eszközzel sikerült megoldani a problémát.

Van erre beépített eszköz?

 

Windows 7: GodMode, ISO edition switcher, azonos ISO minden editionhöz

Külföldi weblapokon olvasgatva futottam bele néhány érdekességbe a Windows 7-tel és a telepítőjével kapcsolatban.

GodMode – minden beállítás egy helyen

Csak hozzunk létre egy új mappát, aminek legyen ez a neve (így, GUIDostul):

GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}

Így fog kinézni:

Win7 GodMode icon

Ha pedig belekattintunk, kapunk 276 parancsikont csoportokba rendezve:

Win7 GodMode mappa Lehet köztük olyanokat találni, amibe még máshol nem futottunk bele.

Aki tudja, honnan jön a GUID vagy van más hasonló mappa, írja meg!

Forrás: http://windows7themes.net/windows-7-enable-secret-godmode.html

Windows 7 ISO Image Edition Switcher

Nem tudom, ki hogy van vele, engem zavar, hogy a különböző Windows 7 változatokhoz más telepítő lemezkép (ISO) tartozik. Ez főleg akkor kínos, ha van kéznél egy Enterprise ISO, de éppen csak Professional kellene, mert akkor le kell töltenünk még egy ISO-t, ami sokáig tarthat. Az alábbi kis alkalmazással úgy kapcsolhatjuk át a változatot az ISO-n belül, hogy még az SHA-1 hash is megegyezik azzal, amit az MSDN-ről vagy a TechNetről töltenénk le:

windows7_iso_image_edition_switcher.zip

Nem próbáltam ki, de még jól jöhet egyszer.

Windows 7 ei.cfg Removal Utility

A fentinél szebb megoldás (ezt sem próbáltam ki), ha a telepítő rákérdez, hogy melyik verziót akarjuk telepíteni (amihez természetesen a hozzá tartozó termékkulcsot meg kell adni). Személy szerint nekem ez a funkció nagyon hiányzik a telepítőből, aki közel van a tűzhöz mondja meg, hogy miért nincs benne. Ha minden igaz, akkor mindössze annyit kell tennünk, hogy a lemezképről törölnünk kell az ei.cfg fájlt, amit az alábbi kis alkalmazás egy pillanat alatt meg is tesz:

eicfg_removal_utility.zip

Ráadásul mindez visszafordítható, mert csak az UDF fájlrendszer deletion bitjét állítja át.

Forrás: http://lifehacker.com/5438005/eicfg-removal-utility-lets-you-use-any-product-key-with-your-windows-7-disc

Akinek PhD-ja van licenszelésből, megmondhatná, hogy ez mennyire sérti a licenszet 🙂

 

Technorati-címkék: ,,

Dual boot VHD-ból

Új gépet telepítek és azt találtam ki, hogy lesz rajta egyszerre egy Windows 7 és egy Windows Server 2008 R2 is. A Windows 7 fog a C: meghajtóról bootolni és a hozzá tartozó összes adat a W: meghajtón lesz. A Windows Server 2008 R2-t VHD-be telepítem, amit szintén a W: meghajtón fogok elhelyezni. Már jó ideje nem használtam dual bootot, mert zavart a sok partíció, de most úgy döntöttem, adok egy esélyt a VHD bootnak. Meglepett, hogy mennyire egyszerű mindezt összehozni.

A Windows 7-et simán (már amennyire egy 64-bites oprendszer és a hozzá tartozó driverek telepítése sima lehet – nem az) sikerült feltelepíteni a szokásos módon a C: meghajtóra. Windows 7 alól megformáztam a második (illetve mivel a telepítő csinál egy plusz partíciót, valójában harmadik) partíciót és elneveztem W:-nek. Szerencsére volt már készen egy Windows Server 2008 R2 VHD image-em, amit bemásoltam erre a partícióra. A VHD-n mindössze annyit módosítottam, hogy előtte lesysprepeltem:

  sysprep /generalize /oobe /shutdown

Ezek után jött a Boot Configuration Database matatás, amit a Windows 7 Command Promptjából végeztem el. A biztonság kedvéért először készítettem egy backupot:

  bcdedit /export w:bcd.backup

Azután duplikáltam a Windows 7 boot beállításait és adtam neki egy nevet, ami a boot menüben meg fog jelenni:

  bcdedit /copy {default} /d "Windows Server 2008 R2 VHD"

Ez visszaad egy GUID-ot, amire szükségünk lesz, tehát érdemes bekapcsolni a Command Prompton a Quick Edit Mode-ot. Itt jön a lényeg:

  bcdedit /set {az előbbi GUID} device vhd=[W:]\ws2008r2.vhd
  bcdedit /set {az előbbi GUID} osdevice vhd=[W:]\ws2008r2.vhd

Ennyi, ettől kezdve indításkor megjelenik a boot menü és lehet operációs rendszert választani.

Ahogy írtam, nekem volt készen egy másik gépen előkészített VHD image-em. Ha nem lett volna, akkor elvileg a következő a megoldás:

  1. Indítsuk el DVD-ről a Windows Server 2008 R2 telepítőjét a szokásos módon.
  2. Amikor megjelenik a partícióra kiválasztására szolgáló “Where do you want to install Windows?” ablak, akkor Next helyett nyomjunk Shift+F10-et, mire kapunk egy szép fekete Command Promptot.
  3. Command Promptban DISKPART-tal hozzunk létre egy új VHD-t:
    • create vdisk file=w:ws2008r2.vhd type=expandable maximum=50000 select vdisk file=w:ws2008r2.vhdattach vdiskexit
  4. EXITbeírásával lépjünk ki a Command Promptból.
  5. A Refresh gombra kattintva a lehetséges célpartíciók között meg fog jelenni az imént létrehozott VHD is, amire a szokásos módon telepíthetjük az operációs rendszert.

A Windows Server 2008 R2 simán elindult, a Sysprep miatt természetesen első alkalommal lassan, de miután ráillesztette magát az új vasra, ment minden rendesen. Annyi zavart csak, hogy a Windows 7 által készített 100 MB-os boot partíció is megjelent, amit úgy tüntettem el, hogy elvettem tőle a betűjelet.

Run as Admin egy kattintásra Windows 7-en

Bizony gyakran előfordul, hogy Windows 7-en vagy Server 2008-on valamelyik MMC-t (például az IIS Managert) rendszergazdai jogosultságokkal kellene elindítanunk. Ekkor a szokásos megoldás a körülményes jobb klikk –> Run as Administrator menüpontra kattintás, amit bármelyik parancsikonon megspórolhatunk, ha a bal egérgombos kattintás közben nyomjuk a CTRL+SHIFT párost.

Köszönet Viktornak a tippért.

Technorati-címkék: ,,

Seven – Ready To Go

Ahogy előzetes megígérték – még júliusban – elkészült a Windows 7 és a Windows Server 2008 R2! Nem tudom, hogy ki miért fog átállni, át fog-e egyáltalán, összeszedtem néhány kedvenc és nem annyira kedvenc feature-ömet.

A lista nem teljes és abszolút szubjektív válogatás.

Windows 7

A W7-t béta kora óta használom élesben a notebookomon és nagyon jó tapasztalatom van vele. Szerintem minden idők legstabilabb bétája volt, és ha az RC óta nem sokat rontottak rajta, akkor tudom ajánlani 🙂

  • Felhasználóknak:
    • Érezhetően gyorsabb boot, standby és hibernate (ok, most lehet mondani, hogy a Vistát nem nagy kunszt legyűrni 🙂
    • Sokkal tempósabb ablak- és fájlkezelés.
    • Működik a hálózat, de tényleg! Nincs gond a vezeték nélküli hálózatokkal és nincsenek belassulások akkor sem, ha a domaines notebookomat olyan másik hálózatra kötöm, ahonnan nem találja meg a DC-t.
    • Jobb akkumulátor gazdálkodás.
    • Az új tálca számomra használhatatlan 😦 De majdnem teljesen vissza lehet állni a régire 🙂
  • Fejlesztőknek:
    • Rengeteg új API, amit elsősorban vastag kliens alkalmazások tudnak kihasználni. Aki ezzel foglalkozik, annak feltétlenül érdemes megnézni a PhotoView (XP2Win7) referencia alkalmazást.
    • .NET 4 értelemszerűen nincs benne, csak .NET 3.5 SP1 😦
    • IIS 7.5
    • PowerShell V2 + ISE
  • Üzemeltetőknek:
    • DirectAccess – bye-bye VPN
    • Sokkal kevesebb és gyorsabb UAC prompt.

Windows Server 2008 R2

  • Hyper-V V2: Live migration, dynamic virtual machine storage
  • Service accounts: az IIS 7 AppPooloknál nagyon bevált
  • PowerShell V2 + Integrated Scripting Environment (ISE): remote, background, transactions, debugger
  • IIS 7.5: PowerShell v2, BPA, néhány (többet vártam) bővítmény integrálva ééééés végre lehet ASP.NET-et telepíteni Server Core-ra!!! Vigyázat, mert a .NET Frameworknek csak egy “subset”-je támogatott, a felhasználói felülettel (WinForms, WPF) és a shellel kapcsolatos részek nem. Természetesen itt is csak 3.5 van, 4.0 még nincs.

Elérhetőség: MSDN és TechNet előfizetőknek augusztus 6-án (újabb források szerint 14-én), boltokban október 22-én. Bővebben itt.

További újdonságok magyar nyelvű screencastokban a TechNet oldalon megtalálhatóak.

GT-nek biztos hosszabb listája van… Nektek mi tetszik?