一. 工程類型:IS2010 installscript
二.原理:
1. XP和 Server2003系統:由于系統默認沒有自帶IIS組件,一般情況我們是需要通過添加刪除程序----WINDOWS組件安裝界面并插入系統盤來進行安裝。實際上我們可以不調出添加刪除程序界面,而通過系統可選組件安裝管理進程”sysocmgr.exe”(system stand-alone optional component manager)來調出WINDOWS組件安裝的界面,并且事先定義好的安裝/卸載組件配置文件,這樣程序在讀入該文件時就會對文件內的設置作相應處理從而實現IIS自動安裝。但這樣安裝的話中間會不停地彈出讓用戶選擇路徑,如果我們想將組件的安裝位置指定于光盤以外的其它驅動/文件夾的話,必須更改那兩項注冊表值,并且把文件放至具有I386特質的文件夾下。那么我們的IIS無人值守功能就實現了.
2. Windows 7和 Server 2008系統:由于系統默認自帶了IIS組件,只是默認情況下處于非開啟狀態,只要通過命令行開啟即可。
三.具體代碼實現 :
1.XP和 Server2003系統:
1)配置文件:
[Components]
iis_common = ON
iis_www = ON
iis_asp = ON
iis_inetmgr = ON
aspnet= ON
2)修改兩項注冊表值到實際的組件文件存放的位置
?? RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );
?? if (RegDBKeyExist ( "\\SOFTWARE\\Microsoft\\windows\\currentversion\\setup
\\ServicePackSourcePath" )=1) then
???????? RegDBDeleteKey ( "\\SOFTWARE\\Microsoft\\Windows\\currentversion\\setup
\\ServicePackSourcePath" );
?? endif;?
?? RegDBSetKeyValueEx ( "\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup" ,
"ServicePackSourcePath" , REGDB_STRING , SRCDIR^"iis6" , -1 );?
?? if (RegDBKeyExist ( "\\SOFTWARE\\Microsoft\\windows\\currentversion\\setup \\SourcePath" )=1) then
???????? RegDBDeleteKey ( "\\SOFTWARE\\Microsoft\\Windows\\currentversion\\setup
\\SourcePath" );
?? endif;
?? RegDBSetKeyValueEx ( "\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup" ,
"SourcePath" , REGDB_STRING , SRCDIR^"iis6" , -1 );?
3)調用可選組件安裝管理sysocmgr.exe進程自動安裝IIS
?? LaunchAppAndWait ( SystemFolder^"sysocmgr.exe" , "/i:sysoc.inf /r /u:\""
+SRCDIR^"iis6\\config.txt\"" , LAAW_OPTION_WAIT );?
sysocmgr.exe參數:
? /i:<master_oc_inf> - (必須的) 指定主 inf 的名稱。以此作為安裝的源路徑。
? /u:<unattend_spec> - 指定無人參予的操作參數
? /r???????????????? - 抑制重新啟動(在需要重新啟動時)。
? /z???????????????? - 顯示跟隨的參數不是 OC 參數且不需要傳給組件。
? /n???????????????? - 強制將指定的主 inf 作為新的文件處理。
? /f???????????????? - 表明所有組件安裝狀態需要初始化,就象安裝程序從未運行一樣。
? /c???????????????? - 在安裝的最后階段不允許取消。
? /x???????????????? - 抑制? '初始化' 標題。
? /q???????????????? - 同 /u 一起使用。 運行沒有界面的無人參與安裝。
? /w???????????????? - 同 /u 一起使用。如果需要重新啟動,提示用戶而不要自動重新啟動。
? /l???????????????? - 識別多種語言安裝。
2.Windows 7系統可以通過dism.exe開啟系統自帶的IIS
1)通過命令dism /online /get-features | more查詢要開啟的IIS的feature名為:IIS-WebServerManagementTools
2) 開啟IIS feature:
?
LaunchAppAndWait
(WINSYSDIR^"dism.exe"," /online /enable-feature
/featurename:IIS-WebServerManagementTools /NoRestar",WAIT);
LaunchAppAndWait
(WINSYSDIR^"dism.exe"," /online /enable-feature /featurename:IIS-FTPServer
/NoRestar",WAIT);
LaunchAppAndWait
(WINSYSDIR^"dism.exe"," /online /enable-feature /featurename:
IIS-WebServer
/NoRestar",WAIT);
?
注:禁用
IIS feature
可以
用:
LaunchAppAndWait (WINSYSDIR^"dism.exe"," /online /disable-feature /featurename:IIS-WebServerManagementTools /NoRestar",WAIT);
LaunchAppAndWait (WINSYSDIR^"dism.exe"," /online / disable-feature /featurename:IIS-FTPServer /NoRestar",WAIT);
LaunchAppAndWait (WINSYSDIR^"dism.exe"," /online / disable-feature /featurename: IIS-WebServer /NoRestar",WAIT);
3.Server 2008系統可以通過ServerManagerCmd.exe開啟系統自帶的IIS
1)通過命令ServerManagerCmd.exe -query查詢要開啟的IIS的名為:web-server
2)安裝IIS feature: LaunchAppAndWait (WINSYSDIR^"ServerManagerCmd"," -i web-server",WAIT);
注:移除IIS feature可以 用:LaunchAppAndWait (WINSYSDIR^"ServerManagerCmd"," -remove web-server",WAIT);
?
?
以上XP系統自動安裝IIS組件的方法,非常感謝 呼吸新世界 提供的思路,原文出處鏈接 : http://wglnngt-001.blog.163.com/blog/static/4077058420091114114655168/
?
?
版權聲明:轉載請以鏈接形式注明原始出處。
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
