IIS6 是对应 Windows 2003 的版本,现在来制作一个可以自动安装 IIS6 的自解压缩包。
基本制作过程如下:
1. 准备安装文件。可以从 Windows 2003 安装光盘中提取,或者从网上下载完整的IIS6安装包。
2. 修改 iis.inf(从安装文件中 iis.in_ 解压得到),用纯文本编辑器打开,在最前方加入:
[Components]
iis=iis.dll,OcEntry,iis.inf,,7
3. 制作自动应答文件(保存名为 answer.txt)。格式如下:
[Components]
iis=on
iis_common=on
iis_inetmgr=on
iis_www_parent=on
iis_www=on
iis_ftp=off
sakit_web=off
appsrv=on
appsrv_console=on
complusnetwork=off
dtcnetwork=on
IIS_ASP=on
IIS_InternetDataConnector=off
IIS_ServerSideIncludes=off
IIS_WebDav=off
4. 制作一个批处理脚本(如 install.cmd ),内容如下:
@echo off
echo ·正在安装IIS6
rem reg export HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Setup subk__.reg /y >nul
rem reg add HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Setup /v "Installation Sources" /t REG_MULTI_SZ /d C:/3CA45921-8827-43c5-BAA8-86AF76BD1278 /f >nul
reg add HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Setup /v ServicePackSourcePath /t REG_SZ /d C:/3CA45921-8827-43c5-BAA8-86AF76BD1278 /f >nul
reg add HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Setup /v SourcePath /t REG_SZ /d C:/3CA45921-8827-43c5-BAA8-86AF76BD1278 /f >nul
%systemroot%/system32/sysocmgr.exe /i:iis.inf /u:answer.txt
rem reg import subk__.reg >nul
rd /s /q C:/3CA45921-8827-43c5-BAA8-86AF76BD1278
echo IIS6安装完成。
5. 将准备的安装文件放到一个名为 i386 的目录里,将 iis.inf 文件、answer.txt 文件和 install.cmd 这三个文件放到与 i386 同级的目录下。
6. 利用 WinRAR 制作自解压安装包,自解压目录与批处理的相同(如:C:/3CA45921-8827-43c5-BAA8-86AF76BD1278),自解压后运行批处理脚本,安装模式改为安静,得到的RAR注释如下:
Path=C:/3CA45921-8827-43c5-BAA8-86AF76BD1278
Setup=install.cmd
Silent=1
基本制作过程如下:
1. 准备安装文件。可以从 Windows 2003 安装光盘中提取,或者从网上下载完整的IIS6安装包。
2. 修改 iis.inf(从安装文件中 iis.in_ 解压得到),用纯文本编辑器打开,在最前方加入:
[Components]
iis=iis.dll,OcEntry,iis.inf,,7
3. 制作自动应答文件(保存名为 answer.txt)。格式如下:
[Components]
iis=on
iis_common=on
iis_inetmgr=on
iis_www_parent=on
iis_www=on
iis_ftp=off
sakit_web=off
appsrv=on
appsrv_console=on
complusnetwork=off
dtcnetwork=on
IIS_ASP=on
IIS_InternetDataConnector=off
IIS_ServerSideIncludes=off
IIS_WebDav=off
4. 制作一个批处理脚本(如 install.cmd ),内容如下:
@echo off
echo ·正在安装IIS6
rem reg export HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Setup subk__.reg /y >nul
rem reg add HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Setup /v "Installation Sources" /t REG_MULTI_SZ /d C:/3CA45921-8827-43c5-BAA8-86AF76BD1278 /f >nul
reg add HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Setup /v ServicePackSourcePath /t REG_SZ /d C:/3CA45921-8827-43c5-BAA8-86AF76BD1278 /f >nul
reg add HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Setup /v SourcePath /t REG_SZ /d C:/3CA45921-8827-43c5-BAA8-86AF76BD1278 /f >nul
%systemroot%/system32/sysocmgr.exe /i:iis.inf /u:answer.txt
rem reg import subk__.reg >nul
rd /s /q C:/3CA45921-8827-43c5-BAA8-86AF76BD1278
echo IIS6安装完成。
5. 将准备的安装文件放到一个名为 i386 的目录里,将 iis.inf 文件、answer.txt 文件和 install.cmd 这三个文件放到与 i386 同级的目录下。
6. 利用 WinRAR 制作自解压安装包,自解压目录与批处理的相同(如:C:/3CA45921-8827-43c5-BAA8-86AF76BD1278),自解压后运行批处理脚本,安装模式改为安静,得到的RAR注释如下:
Path=C:/3CA45921-8827-43c5-BAA8-86AF76BD1278
Setup=install.cmd
Silent=1

----------------
我提取出的文件目录表,仅供参考:
ACHG.AS_
ACWEBSVC.DL_
ADMWPROX.DL_
ADROT.DL_
ADSIIS.DL_
ADSUTIL.VB_
AEXP2B.AS_
AEXP4B.AS_
APPS.CH_
APPS.IN_
APPSRV.MS_
APPSTAR2.AN_
APPSTAR3.AN_
APPSTART.AN_
APPS_SP.CH_
APPWIZ.CP_
ASP.DL_
ASP.MF_
ASP.MO_
ASPNETOC.DL_
ASPPERF.DL_
ASPSTD.IN_
AXCTRNM.H2_
AXPERF.IN_
BROWSCAP.DL_
BROWSCAP.IN_
CERTCARC.AS_
CERTCKPN.AS_
CERTDFLT.AS_
CERTFNSH.AS_
CERTLYNX.AS_
CERTMAP.OC_
CERTOBJ.DL_
CERTRMPN.AS_
CERTRQAD.AS_
CERTRQBI.AS_
CERTRQMA.AS_
CERTRQUS.AS_
CERTRQXT.AS_
CERTRSDN.AS_
CERTRSER.AS_
CERTRSIS.AS_
CERTRSOB.AS_
CERTRSPN.AS_
CERTSCES.AS_
CERTWIZ.OC_
CIMWIN32.MF_
CIMWIN32.MO_
CLI.MO_
CLIEGALI.MF_
CLIEGALI.MO_
CLUSWMI.MO_
CNFGPRTS.OC_
COADMIN.DL_
CONTROT.DL_
CONVLOG.EX_
DAVCDATA.EX_
DAVCPROX.DL_
DNSETW.MO_
DNSPROV.MO_
DSPROV.MF_
DSPROV.MO_
EVNTRPRV.MO_
EVTGPROV.MO_
EXSTRACE.DL_
FTP.EX_
FTP.MI_
FTPCTRS.H2_
FTPCTRS.IN_
FTPCTRS2.DL_
FTPMIB.DL_
FTPSVC2.DL_
GZIP.DL_
HNETCFG.MO_
HTTP.MI_
HTTP.SY_
HTTPAPI.DL_
HTTPEXT.DL_
HTTPMIB.DL_
HTTPODBC.DL_
IEINFO5.MO_
IIRSP.SY_
IIS.DL_
IIS.IN_
IIS.MS_
IIS6.CAB
IISADMIN.DL_
IISADMIN.MF_
IISADMIN.MO_
IISAPP.VB_
IISBACK.VB_
IISCFG.DL_
IISCLEX4.DL_
IISCNFG.VB_
IISDG.CH_
IISEXT.DL_
IISEXT.VB_
IISFTP.VB_
IISFTPDR.VB_
IISLOG.DL_
IISMAP.DL_
IISMUI.DL_
IISNTS.CH_
IISPWCHG.DL_
IISRES.DL_
IISRESET.EX_
IISRG.CH_
IISRSTAP.DL_
IISRSTAS.EX_
IISRTL.DL_
IISSCHLP.WS_
IISSMMC.CH_
IISSUBA.DL_
IISUI.DL_
IISUIOBJ.DL_
IISUTIL.DL_
IISVDIR.VB_
IISW3ADM.DL_
IISWEB.VB_
IISWMI.DL_
IISWMI.MF_
IISWMI.MO_
IKCH8XX.IN_
ILS.DL_
INETCFG.DL_
INETCOMM.DL_
INETCORP.AD_
INETCPL.CP_
INETCPLC.DL_
INETFIND.XM_
INETINFO.EX_
INETMGR.DL_
INETMGR.EX_
INETMIB1.DL_
INETOPTS.XM_
INETPP.DL_
INETPPUI.DL_
INETPREF.XM_
INETRES.AD_
INETRES.CH_
INETRES.DL_
INETSET.AD_
INETSRCH.XM_
INETSRV.MI_
INFOADMN.DL_
INFOCOMM.DL_
INFOCTRS.DL_
INFOCTRS.H2_
INFOCTRS.IN_
INFOSOFT.DL_
INFOSPBZ.BM_
INFOSPCE.BM_
IPP_0001.AS_
IPP_0002.AS_
IPP_0003.AS_
IPP_0004.AS_
IPP_0005.AS_
IPP_0006.AS_
IPP_0007.AS_
IPP_0010.AS_
IPP_0013.AS_
IPP_0014.AS_
IPP_0015.AS_
ISAPIPS.DL_
ISATQ.DL_
ISCOMLOG.DL_
KRNLPROV.MF_
KRNLPROV.MO_
LICWMI.MF_
LICWMI.MO_
LOGSCRPT.DL_
LOGTEMP.SQ_
LOGUI.OC_
LONSINT.DL_
METADATA.DL_
MSDTCTR.MO_
MSI.MF_
MSI.MO_
MSMQTRC.MO_
NCPROV.MF_
NCPROV.MO_
NEXTLINK.DL_
NLBMPROV.MO_
NNTPADM.DL_
NNTPAPI.DL_
NNTPSNAP.CN_
NNTPSNAP.DL_
NNTPSNAP.HL_
NTEVT.MF_
NTEVT.MO_
P3CMINC.AS_
P3DM.AS_
P3DMDEL.AS_
P3DMLOCK.AS_
P3DMNEW.AS_
P3MB.AS_
P3MBDEL.AS_
P3MBGOTO.AS_
P3MBLOCK.AS_
P3MBNEW.AS_
P3MSPROP.AS_
PAGE1.AS_
POLICMAN.MF_
POLICMAN.MO_
REGEVENT.MF_
REGEVENT.MO_
REPLPROV.MO_
RPCREF.DL_
RSOP.MF_
RSOP.MO_
RWINSTA.EX_
RWNH.DL_
SCERSOP.MO_
SCM.MO_
SCRCONS.MF_
SCRCONS.MO_
SECRCW32.MF_
SECRCW32.MO_
SEO.DL_
SMTPADM.DL_
SMTPAPI.DL_
SMTPCONS.DL_
SMTPCONS.MF_
SMTPCONS.MO_
SMTPSNAP.CN_
SMTPSNAP.DL_
SMTPSNAP.HL_
SNMPREG.MO_
SNMPSMIR.MO_
SSINC.DL_
STAXMEM.DL_
SUBSCRPT.MO_
SVCEXT.DL_
SYSTEM.MO_
TRUSTMON.MO_
TSCFGWMI.MF_
TSCFGWMI.MO_
UIHELPER.DL_
URL.DL_
URLAUTH.DL_
URLMON.DL_
VDS.MF_
VDS.MO_
VSS.MF_
VSS.MO_
W3CACHE.DL_
W3COMLOG.DL_
W3CORE.DL_
W3CORE.MF_
W3CORE.MO_
W3CTRLPS.DL_
W3CTRS.DL_
W3CTRS.H2_
W3CTRS.IN_
W3DT.DL_
W3DT.MF_
W3DT.MO_
W3EXT.DL_
W3ISAPI.DL_
W3ISAPI.MF_
W3ISAPI.MO_
W3SSL.DL_
W3TP.DL_
W3WP.EX_
WAM.DL_
WAMPS.DL_
WAMREG.DL_
WAMREGPS.DL_
WBEMCONS.MF_
WBEMCONS.MO_
WHQLPROV.MO_
WINOLDAP.MO_
WLBSPROV.MF_
WLBSPROV.MO_
WMI.MF_
WMI.MO_
WMIPCIMA.MF_
WMIPCIMA.MO_
WMIPDFS.MF_
WMIPDFS.MO_
WMIPDSKQ.MF_
WMIPDSKQ.MO_
WMIPICMP.MF_
WMIPICMP.MO_
WMIPIPRT.MF_
WMIPIPRT.MO_
WMIPJOBJ.MF_
WMIPJOBJ.MO_
WMIPSESS.MF_
WMIPSESS.MO_
WMITIMEP.MF_
WMITIMEP.MO_
-------------------------
另:
以下为本人进行进一步更改, 增加配置iis及防止I386路径被更改的内容,更改脚本文件为:
@echo off
echo start to intall IIS...
for /f "skip=4 tokens=3" %%a in ('reg query HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Setup /v ServicePackSourcePath') do set c1=%%a
for /f "skip=4 tokens=3" %%b in ('reg query HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Setup /v ServicePackSourcePath') do set c2=%%b
reg add HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Setup /v ServicePackSourcePath /t REG_SZ /d C:/MaxWell_IIS51_Installer /f >nul
reg add HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Setup /v SourcePath /t REG_SZ /d C:/IIS51_Installer /f >nul
%systemroot%/system32/sysocmgr.exe /i:iis.inf /u:answer.txt
reg add HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Setup /v ServicePackSourcePath /t REG_SZ /d %c1% /f >nul
reg add HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Setup /v SourcePath /t REG_SZ /d %c2% /f >nul
cd C:/Inetpub/AdminScripts
Cscript.exe adsutil.vbs SET W3SVC/HttpExpires "D,0"
Cscript.exe Adsutil.vbs set /w3svc/1/logtype 0
echo IIS installation finished.
@echo on
rd /s /q C:/IIS51_Installer
(声明:仅供学习和参考,本人不承担因为该方法制作的安装包而产生的所有问题。)
在 Microsoft Windows Server 2003, Enterprise Edition (SP1) 下测试通过