kezdõlap | home fel | up

lapanet | blog | telepítés bekötött szemmel IV.


a driverekkel késznek tekinthetõ windowsunkon már csak pár finomítást kell elvégezni és telepíteni kedvenc programjainkat (utólag kiderült, hogy ez a rész túl terjedelmesre sikerült, ezért ebben a részben az operációs rendszerhez kapcsolódó végsõ simításokat tudom csak részletezni). ehhez a telepítõ több lehetõséget is kínál:

detachedprogram

már grafikus (visszaszámlálós) módban, de még az eszközök telepítése elõtt ad lehetõséget program futtatására. akkor fut le, mikor még 39 perc van hátra. használata a válaszfájl alábbi módon történõ kiegészítésével lehetséges:

[GuiUnattended]
DetachedProgram = ''%systemdrive%\extras\install.exe''

cmdlines.txt

ugyancsak grafikus módban, de már a telepítés befejezése elõtti 12. percben (a hotfixek integrálásához esetlegesen használt svcpack.inf után) futnak le az itt megadott parancsok. használatához elég létrehozni az $OEM$ könyvtárban egy 'cmdlines.txt' nevû fájlt. a fájl tartalma például a következõ:

[Commands]
''reg import cmdlines.reg''

az elsõ sor kötelezõ, a második sor pedig az ugyanitt található 'cmdlines.reg' importálását végzi el. a cmdlines.txt funkcionalitása korlátozott, én kizárólag reg bejegyzéseket rögzítek segítségével. az alábbiakban ezekbõl egy rövid (és reményeim szerint problémamentes) ízelítõ. többek között tehát az alábbi sorokat tartalmazza a cmdlines.reg (a # kommentek törlendõk):

Windows Registry Editor Version 5.00

### 2003 alatt letiltja a leállítás / restart okára való rákérdezést:

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Reliability]
"ShutdownReasonOn"=dword:00000000

### minden exe fájl jobbklikk menüjéhez 'run high' feliratú bejegyzést tesz, mellyel a program magasabb prioritással futtatható (ha a program is úgy akarja...):

[HKEY_CLASSES_ROOT\exefile\shell\Run High]
[HKEY_CLASSES_ROOT\exefile\shell\Run High\command]
@="cmd.exe /c start /high \"%1\" \"%1\""

### a TEMP változó helyét állítja be, hogy ne a júzer profiljába szemeteljen:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
"TEMP"="C:\\TMP"
"TMP"="C:\\TMP"

[HKEY_CURRENT_USER\Environment]
"TEMP"="C:\\TMP"
"TMP"="C:\\TMP"

### rendszervisszaállítás kikapcsolása:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore]
"DisableSR"=dword:00000001

### ismeretlen fájltípusok programjait ne akarja az internetrõl kilesni (úgyse sikerül...):

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"NoInternetOpenWith"=dword:00000001

### jobbklikk-menü a CD-tálca bezárásához. a 'nircmd' progit elõzõleg elmentettük az $OEM$\$1\$Progs\nircmd könyvtárba. sajnos a menüpont minden meghajtónál megjelenik, ez van. még mindig olcsóbb, mint felállni.

[HKEY_CLASSES_ROOT\Drive\shell\draw]
@="Close"
[HKEY_CLASSES_ROOT\Drive\shell\draw\command]
@="C:\\app\\nircmd\\nircmd.exe cdrom close"

### intézõ keresésnél nézze a rejtett és rendszermappákat is, alkönyvtárakkal együtt:

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer]
"SearchSystemDirs"=dword:00000001
"SearchHidden"=dword:00000001
"IncludeSubFolders"=dword:00000001

guirunonce / runonceex

a guirunonce futtatása a válaszfájl kiegészítésével történik, az alábbiakban megadott parancsfájl az elsõ (jellemzõen automatikus) bejelentkezéskor fut le:

[GuiRunOnce]
%systemdrive%\TMP\guirunonce.cmd

eszerint szükségünk van egy $OEM$\$1\TMP\guirunonce.cmd fájlra, mellyel programjaink nagyrészét fogjuk telepíteni.

kis mellékvágányként megjegyzem, hogy a runonceex gyakolratilag a guirunonce.cmd-vel megegyezõ funkcionalitással bír. a runonceex annyiban szebb, mint a parancssor, hogy csini kis felületen pipálgatja az egyes parancsok elvégzését. sajnos nincs screenshot, de talán rémlik hogyan néz ki a bal felsõ sarokban megjelenõ kis ablak, pl. az ie7 telepítését követõ bejelentkezéskor. én maradok a parancssoros verziónál.

a könnyebb áttekinthetõség érdekében a guirunonce.cmd-t több szakaszra bontottam. természetesen az itt felsorolt programok és mûveletek egyéni preferenciáimat tükrözik, de jó kiindulópontot jelenthetnek más, hasonló feladatok elvégzéséhez. az alábbiakban sok kukuc meg ECHO fog szerepelni, lényegük, hogy csak az ECHO-s sorok tartalmát írja ki a futtatásnál. valahogy így:



guirunonce

a szintén gyakori vendég start/wait arra jó, hogy csak az adott feladat elvégzését követõen ugorjon neki az azt követõknek.

guirunonce / dev

vagyis elõször az eszközökkel kapcsolatos mûveletek jönnek. elsõként a telefon driverét telepítjük erõszakkal, ne akkor értetlenkedjen windowsunk, mikor elõször galvanikus kapcsolatba lépnek egymással:

@ECHO.
@ECHO ***********
@ECHO *** dev ***
@ECHO ***********
@ECHO.
@ECHO *** dev *** motomodem

@rundll32.exe setupapi.dll,InstallHinfSection DefaultInstall 132 C:\tmp\drv\09_motv3\USBMOT2000.INF

aztán a devcon nevû eszközzel letiltjuk az egyik hálókártyát (ide talán dupla & kéne...):

@ECHO.
@ECHO *** dev *** 3com lan disable

@start /wait C:\tmp\appz\devcon disable PCI\VEN_10B7&DEV_9201&SUBSYS_80AB1043&REV_40

esetleges másik hálókártyánk pedig kaphat egybõl fix belsõ ip-címet:

@netsh interface ip set address name="Local Area Connection" static 192.168.0.1 255.255.255.0 192.168.0.1

ezt követõen újra megfuttatjuk a devcon-t, hogy iso-mountoló programot telepítsen. hogy miért nem daemon tools? nincs szükségem a játéklemez-emulációkra, csak egy ingyenes parancssori eszközre, amivel iso fájlokat tudok csatolgatni. az alább látható osrscsi tökéletesen megfelel a célnak. mindjárt látni fogjuk, ahogy az office egy iso fájlból kibújva telepkedik gombnyomás nélkül...

@ECHO.
@ECHO *** dev *** osrscsi - virtual drive

@start /wait C:\tmp\appz\devcon install C:\app\osrscsi_v22\osrscsipt.inf root\osrscsi

az elõbb a reg bejegyzéseknél szándékosan kihagytam az osrscsi-ra vonatkozó részeket, ezennel bepótolom. a cmdlines.reg fájlba 'mount' és 'dismount' parancsokat rakok az iso fájlokhoz, az alábbi módon:

[HKEY_CLASSES_ROOT\.iso]
@="isofile"

[HKEY_CLASSES_ROOT\isofile]
[HKEY_CLASSES_ROOT\isofile\shell]
[HKEY_CLASSES_ROOT\isofile\shell\Mount]
[HKEY_CLASSES_ROOT\isofile\shell\Mount\command]
@="C:\\app\\osrscsi_v22\\x86\\osrspmgmtcl -add -cdrom:%1"

[HKEY_CLASSES_ROOT\isofile\shell\Dismount]
[HKEY_CLASSES_ROOT\isofile\shell\Dismount\command]
@="C:\\app\\osrscsi_v22\\x86\\osrspmgmtcl -delete:%1"

kicsit hülyén jön ki, de ez azt jelenti, hogy a már mountolt fáljt (meghajtót) csak az eredeti iso fájlra jobbklattyal lehet eltávolítani. falun elmegy. de térjünk vissza a guirunonce-hez, adjunk hozzá egy álnyomtatót a windowshoz. ez hasznos lehet, ha nyomtató híján pl. nyomtatási képet szeretnénk nézni. halálos lehet persze, ha az ál laserjet 4-hez igazított diplomamunkánkat a kopigenerál canon drivere kicsit másképp látja...

@ECHO.
@ECHO *** dev *** dummyprinter

@start /wait rundll32 printui.dll,PrintUIEntry /if /b "lpt1" /f %windir%\inf\ntprint.inf /r "lpt1:" /m "HP LaserJet 4"

guirunonce / os

végeztünk az eszközökkel, kicsit maceráljuk a windows-t, mielõtt a programokra térünk. látni fogjuk, bõven van mit varázsolni. elsõ körben megtaláltatjuk a telepítõ DVD betûjelét. ezt én nem látom szükségesnek, mert nem telepítek semmit onnan. késõbb ennek érveire és ellenérveire visszatérünk, addig legalábbis referenciának megteszi.

@ECHO.
@ECHO **********
@ECHO *** os ***
@ECHO **********
@ECHO.
@ECHO *** os *** get dvd drive

@FOR %%d IN (c: d: e: f: g: h: i: j: k: l: m: n: o: p: q: r: s: t: u: v: w: x: y: z DO IF EXIST %%d\setup.exe SET CDROM=%%d

következzen egy gyönyörû példája az iso mountolásnak, mellyel a 2003 R2 kiegészítését telepítjük. természetesen tudni kell, melyik bötût fogja kapni a tündér mountoláskor.

@ECHO.
@ECHO *** os *** w2k3 r2

@start /wait C:\app\osrscsi_v22\x86\osrspmgmtcl -add -cdrom:\tmp\appz\r2.iso
@start /wait F:\CMPNENTS\r2\setup2.exe /q /a /sr
@start /wait C:\app\osrscsi_v22\x86\osrspmgmtcl -delete -cdrom:\tmp\appz\r2.iso

mivel elég rendszerközeli, következõnek az ie7-et telepítjük. megjegyzem, hogy xp alatt szinte biztosan integrálható az ie7, 2003 esetében meg nem. marad a favágás:

@ECHO.
@ECHO *** os *** ie7

@start /wait C:\tmp\patch\ie7_w2k3.exe /quiet /nobackup /norestart

most pedig következzenek a kedvenceim, a dotnet és a java. dotnetrõl annyit mondanék, hogy xp alá elméletileg jól jöhet az 1.1 is, 2003-ban ez már benne van. nemrég megjelent a dotnet 3, ez már tartalmazza a dotnet 2-t. akinek a dotnet 3 brutális telepítési ideje sok és úgy dönt, hogy csak a 2-t rakja fel, annak van lehetõsége a dotnet 2 patcheket integrálni a dotnet 2 telepítõbe. igazán csodás. a dotnet tipikus murphy-program, csak akkor kell mikor: 1. nincs fenn a gépen és 2. gyorsan kell(ene) telepíteni valamit és 3. modemes net van csak... én frappánsan megmutatom neki:

@ECHO.
@ECHO *** os *** dotnet 3

@start /wait C:\tmp\patch\dotnetfx3.exe /q

aki az 1.1-re feltétlenül igényt tart, annak íme:

@start /wait C:\tmp\patch\dotnet_1_1\netfx.msi /qb

ráadásként kért valaki dotnet 2 telepítõt. ezt elõször ki kell csomagolni egy könyvtárba, majd a következõ paranccsal telepszik:

@start /wait C:\tmp\patch\dotnet_2\install.exe /S /qb-!

a java szintén zenész, a helyzetet azonban tovább bonyolítja az ms-féle virtuális gép átmeneti megléte. nem kívánom senki helyett eldönteni a kérdést, ezért szemléltetem mindkét megoldás (sun / ms) telepítését. persze az igazán elborultak itt sem maradnak játék nélkül. az ms saját virtuális gépére ugyanis kiadott egy frissítést, amely csak az eredeti verzió megléte esetén telepkedik. sajnos linkem nincs, de kiguglizható hogyan kell összefésülni a két verziót. az összefércelt ms vm telepítése:

@ECHO.
@ECHO *** os *** msjava

@start /wait C:\tmp\patch\java\javatrig.exe /l /exe_install /nowincheck /q

referenciaként az eredeti és a frissítés telepítése pedig így néz ki:

@start /wait C:\tmp\patch\java\msjavx86.exe /Q:A /R:N
@start /wait C:\tmp\patch\java\msjavwu.exe /Q:A /R:N

az ellenlábas sun java alkatrészt a következõ paranccsal tudjuk felerõszakolni:

@start /wait C:\tmp\appz\sunjava\jre-1_5_0_10-windows-i586-p-s.exe /s /v"/qn ADDLOCAL=jrecore IEXPLORER=1"

most értünk el a windows hotfixek "nem hivatalos" úton történõ telepítéséhez. emlékeztetõül: egy könyvtárba pakoltuk a microsoft update által javasolt frissítéseket, most pedig szépen sorban elindítjuk mindegyiket. ez a parancs nem csinál mentést az eredeti állapotról, tehát a frissítések nem visszavonhatók, de legalább kevesebb helyet foglalnak. azért döntöttem a késõi patchelés mellett, mert mind a dotnethez, mind az ie7-hez kapcsolódhatnak a frissítések.

@ECHO.
@ECHO *** os *** patch

@for %%a in (c:\tmp\patch\patch\*.exe) do %%a /q /norestart /n

a frissítéseket követõen 2003 alatt lehetõségünk van egy korábbi biztonsági konfig alkalmazására, ezt követõen pedig átállítjuk egy szolgáltatás indulási módját, ha az alapértelmezett nem szimpatikus:

@ECHO.
@ECHO *** os *** secpol

@start /wait scwcmd configure /p:\TMP\pol\secpol.xml
@sc config themes start= auto

mivel az operációs rendszerhez tartozik, gyorsan bemásoljuk kedvenc HOSTS fájlunkat a helyére:

@ECHO.
@ECHO *** os *** hosts

@copy C:\TMP\appz\hosts C:\WIN\system32\drivers\etc\hosts /y

megadjuk pár kiterjesztés típusát, hogy notepaddal nyíljanak meg:

@ECHO.
@ECHO *** os *** assoc

@assoc .nfo=txtfile
@assoc .sif=txtfile

2003 alatt belõhetjük a szupertitkos tls-t távoli asztalhoz:

@ECHO.
@ECHO *** os *** rdp tls

@start /wait C:\tmp\appz\selfssl.exe /NN=domain.hu /v:365 /Q

majd kitakaríthatjuk a szemetet. persze a windows és barátai egyes könyvtárakhoz nagyon ragaszkodnak, ezeket (az intézõ számára) láthatatlanná tehetjük az utolsó sorban található 'attrib' paranccsal, így 'op. rendszer védett fájljainak elrejtése' esetén ezek nem zavarnak.

@ECHO.
@ECHO *** os *** cleanup

@DEL "C:\WIN\*.bmp" /q
@DEL "C:\WIN\Web\Wallpaper\*.jpg" /q
@DEL "C:\WIN\media\*.*" /q
@DEL "C:\DOC\All Users\Start Menu\Windows Update.lnk" /q
@rd "C:\DOC\All Users\Start Menu\Programs\Accessories" /S /Q
@rd "D:\Adminscripts" /S /Q
@attrib +S +H C:\wmpub /S /D

idáig tartott az operációs rendszer végsõ ráncfelvarrása, a következõ és terveim szerint utolsó részben szó szerint ugyaninnen folytatjuk a guirunonce.cmd parancsfájl azon sorait részletezve, melyek a programok telepítését végzik.