Windows - Windows komponensek telepítése és eltávolítása parancssorból

Tegyük fel, hogy a hálózat összes gépére fel kell telepíteni vagy éppen eltávolítani ugyanazokat a Windows komponenseket. Minél több gépről van szó, annál tovább tart a vezérlőpult megfelelő menüinek használatával a feladat elvégzése. Hogy lehetne a ráfordított időt jelentősen csökkenteni? Például egy parancssori segédprogram használatával, melyet az alábbiakban mutatunk be.
A %systemroot%\system32 könyvtárban található a sysocmgr.exe nevű alkalmazás, mely alkalmas a Windows komponensek telepítésére és eltávolítására. A %systemroot%\inf mappában találunk egy sysoc.inf nevű fájlt. Nyissuk meg és nézzük meg a tartalmát. Számunkra a [Components] szekció az érdekes. Itt találhatók a Vezérlőpult > Programok telepítése/törlése > Windows összetevők hozzáadása vagy eltávolítása (Control Panel > Add/Remove Programs > Add/Remove Windows Components) ablakban megjelenő bejegyzések:
[Components]
NtComponents=ntoc.dll,NtOcSetupProc,,4
WBEM=ocgen.dll,OcEntry,wbemoc.inf,hide,7
Display=desk.cpl,DisplayOcSetupProc,,7
...
Látható, hogy bizonyos sorokban szerepel a "hide" szó. Ezek a sorok rejtve maradnak a Vezérlőpult fenti ablakában. Ha eltávolítjuk a "hide"-ot, akkor megjelennek.
A sysocmgr feladata a Windows összetevők telepítése és eltávolítása a sysoc.inf fájllal karöltve.
Parancssorban, batch fájlban vagy egyszerűen a Start > Futtatás (Start > Run) menübe beírva a használható kapcsolók listáját jeleníti meg:
sysocmgr 
Paraméterezése nem túl bonyolult: kötelező paraméterként a /i: kapcsoló után meg kell adni a sysoc.inf helyét, teljes elérési úttal együtt. Például:
sysocmgr /i: %windir%\inf\sysoc.inf
Az elérési útban használhatunk helyettesítő környezeti változókat. Példánkban a Windows-t tartalmazó mappára mutató %windir% változót alkalmaztuk.
Persze ez még elég kevés, mert ugyanúgy megjelenik a komponensek hozzáadását és eltávolítását végző ablak és innen kezdve nincs különbség a grafikus módszerhez képest. Más a helyzet, ha megadunk egy úgynevezett válaszfájlt. Ilyen fájllal már találkoztunk több korábbi cikkünkben, amikor magának az operációs rendszernek, illetve az Active Directory-nak a feltelepítésében volt segítségünkre. Lényege, hogy a Windows telepítő szolgáltatása (Windows Installer) lehetővé teszi, hogy a különböző telepítések során felmerülő kérdésekre ne a felhasználónak kelljen felelni, hanem egy szövegfájlból olvassa ki a megfelelő válaszokat. Jelen esetben is készíthetünk válaszfájlt, a sysocmgr képes felhasználni.
Szerkezetét tekintve két szekcióra osztható: az egyik [Components] néven fut és a rendszer összetevőket tartalmazza. A másik neve: [NetOptionalComponents] és hálózati szolgáltatások összetevőit tárolja. Az előző szekcióban meg kell adnunk a komponens nevét, majd telepítése esetén az "on", eltávolítása esetén az "off" kapcsolót. Ugyanez a helyzet a másik szekcióban is, csak ott 1 és 0 értékek jelentik a telepítést és eltávolítást. Nézzünk egy példát a válaszfájlra:
[Components]
Netoc = on
Paint = off
pinball = off
Solitaire = off
[NetOptionalComponents]
lpdsvc = 1
SimpTcp = 1
wins = 1
Látható, hogy a Paint, pinball és solitaire programok nem települnek, míg például a wins szolgáltatás igen. Ha unattend.txt néven mentjük a válaszfájlt a c:\ gyökérbe, akkor a következő paranccsal tudjuk felhasználni:
sysocmgr /i: %windir%\inf\sysoc.inf /u:c:\unattend.txt
Minden komponens az alapértelmezett beállításokkal lesz része a rendszernek. Például az IIS (Internet Information Services) telepítése után az FTP szolgáltatás a c:\inetpub\ftproot mappában, míg a webszolgáltatás a c:\inetpub\wwwroot mappában keresi a fájlokat. Helyezzük át mindkét elérési utat a d:\NetServer könyvtárába. Újabb szekcióval kell bővítenünk a válaszfájlt. Neve: [InternetServer]. Nézzük tehát a megvalósítást:
[InternetServer]
PathFTPRoot=D:\NetServer\Ftproot
PathWWWRoot=D:\NetServer\Wwwroot
Az IIS nem csak egyben, hanem részenként is telepíthető:
[Components]
iis_common = on
iis_inetmgr = on
iis_www = on
iis_ftp = on
iis_htmla = on
Egyéb kapcsolók
További kapcsolók is rendelkezésünkre állnak:
/r = nem indítja újra a számítógépet, akkor sem, ha az adott komponens megkívánná. Ha elhagyjuk, automatikusan újraindul a gép.
sysocmgr /i: %windir%\inf\sysoc.inf /u:c:\unattend.txt /r
Maradva az újraindításnál a /w kapcsoló alkalmazása azt eredményezi, hogy a telepítés végén megjelenik egy ablak és a felhasználó döntheti el, hogy újraindítja-e a gépet.
sysocmgr /i: %windir%\inf\sysoc.inf /u:c:\unattend.txt /w
A két kapcsoló együttes használata értelmetlen.
/q = quiet. Úgynevezett "csendes" telepítés, ami annyit jelent, hogy nem jelennek meg a telepítő ablakok, minden a háttérben zajlik. Csak a /u kapcsolóval együtt használható:
sysocmgr /i: %windir%\inf\sysoc.inf /u:c:\unattend.txt /q
A /n kapcsoló teljesen újként értelmezi a kijelölt komponenseket, ami annyit jelent, hogy ha már létezik a rendszerben, akkor is újra lesz telepítve. Alkalmazhatjuk sérült összetevők javítására (természetesen csak ha az újratelepítés megoldja a problémát).
sysocmgr /i: %windir%\inf\sysoc.inf /u:c:\unattend.txt /q /n
Egy adott komponens telepítését vagy eltávolítását válaszfájl nélkül is el tudjuk indítani. Például a bizonyítványszolgáltatásokat a következő paranccsal:
sysocmgr /i:certmast.inf /n
Elindul a szükséges varázsló és manuálisan lépkedhetünk az ablakok között, megadva a szükséges válaszokat.