原文:Installshield自动安装IIS组件

一. 工程类型: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/

版权声明:转载请以链接形式注明原始出处。

Installshield自动安装IIS组件的更多相关文章

  1. Windows Xp Home Edition 安装IIS组件

    问题描述: 在虚拟机(操作系统是Windows Xp Home Edition)中安装Sql Server 2005的时候警告缺少IIS相关组件,控制面板"添加/删除组件"中也没有 ...

  2. 使用PowerShell 自动安装IIS 及自动部署网站

    执行环境:Windows Server 2012 R2 安装iis核心代码,可自定义安装项 注意这里不能使用add-windowsfeature  "Web-Filtering", ...

  3. Linux 实现自动安装服务组件以及优化内核参数 (转)

    安装好Linux裸机后(安装请参考:http://blog.itpub.net/26230597/viewspace-1380155/),还需要在其上安装一些基础组件,一般是手动一个个安装,比较繁复也 ...

  4. 阿里云学生优惠Windows Server 2012 R2安装IIS,ftp等组件,绑定服务器域名,域名解析到服务器,域名备案,以及安装期间错误的解决方案

     前言: 这几天终于还是按耐不住买了一个月阿里云的学生优惠.只要是学生,在学信网上注册过,并且支付宝实名认证,就可以用9块9的价格买阿里云的云服务ECS.确实是相当的优惠. 我买的是Windows S ...

  5. PowerShell自动部署IIS站点(Windows Server 2008 R2)

    1.功能描述 1. 连接软件源服务器下载.NET Framework 4.0..NET Framework 4.5. 2. 检测并判断当前.NET Framework版本是否小于v4.0,如果小于则进 ...

  6. 阿里云云服务器Windows Server 2012 R2无法安装IIS等组件的解决办法

    Windows Server2012 R2数据中心版 不管安装什么组件,都显示存储空间不足,无法应用命令,错误代码0x80070008. 最终确认是服务器配置过低的原因,因为这个型号是低级别的配置,1 ...

  7. Windows IIS 使用批处理脚本自动安装与卸载

    IIS6:适用于win server 2003 :: ******************* :: * 安装 :: ******************* :Install Cls @echo. &a ...

  8. 无人参与安装IIS 6.0

    使用脚本安装 IIS 从“开始”菜单,单击“运行”. 在“打开”框中,键入 cmd,然后单击“确定”. 在命令提示符下,键入 Sysocmgr.exe /i:sysoc.inf /u:%path_to ...

  9. 一键安装IIS的点点滴滴——For所有Microsoft的操作系统(上)

    原文www.cnblogs.com/cdts_change/archive/2010/03/04/1677338.html 临近公司的软件要完工了,最近几天一直在泉哥的带领下为我们公司的产品做IIS一 ...

随机推荐

  1. Composite Design Pattern 设计模式组合

    设计模式组合,它能够更类组合在一类,形成一个树状结构. #include <set> #include <iostream> #include <string> u ...

  2. Sybase Unwired Platform(SUP) 经常使用资源整理(不断更新中)

    提示:建议刚開始学习的人看三个东西,详见以下的详细内容.然后再去看论坛,官方技术支持站点等资源. SUP移动开发平台 中文视频讲座 SUP入门讲座(Wang Jun) SUP系列学习笔记 SUP实验 ...

  3. 朴素UNIX它-Linux CFS注视

    该系列产品,被称为纯UNIX,但它也包含各种类别UNIX该系统的细节,自从完成我多年的学习笔记本系列文章,分析了各种UNIX,类UNIX思想和情感的实现. 这篇文章是比较短.只是分析Linux CFS ...

  4. C# 6.0 (C# vNext) 的新功能:Expression Bodied Functions and Properties

    Expression Bodied Function 它可以用在: methods user-defined operators type conversions read-only properti ...

  5. 自己写shell命令pwd

    思维:(1)得到"."的i节点号,叫n(使用stat) (2)chdir ..(使用chdir) (3)找到inode号为n的节点,得到其文件名称. 反复上述操作直到当前文件夹&q ...

  6. Java Web整合开发(附录2) -- NetBeans的(默认)快捷键

    1.完成代码:ctrl+\ //任何地方按下此组合键,均会提示相应的参考字段: 2.错误提示:alt + enter //顾名思义,当系统报错时,按下此组合可以查看系统提示: 3.自动完成字符串: c ...

  7. 【6】和作为连续序列s

    称号:输入一个整数s,并打印出所有s整数的连续序列(含有至少2的数量). 如输入9,输出2.3.4和4.5两个序列 方案一:因为序列至少要2个数,则两个数上限值为(1+s)/2,我们能够枚举该序列的起 ...

  8. port与大全portClose方法

    在网络技术,port(Port)通常,有两种含义:首先,物理意义port,例,ADSL Modem.枢纽.开关.路由器连接其他网络设备的接口,如RJ-45port.SCport等等.第二个是逻辑意义p ...

  9. [INS-32052] Oracle基文件夹和Oracle主文件夹位置同样

    1.错误描写叙述 [INS-32052] Oracle基文件夹和Oracle主文件夹位置同样 2.错误原因    Oracle基文件夹和Oracle主文件夹位置同样 3.解决的方法    Oracle ...

  10. 【ASP.NET】关于iframe的两个技巧

    原文:[ASP.NET]关于iframe的两个技巧 最近在给朋友写个网站,虽然不大,但是也碰到了一些问题.这篇就为解决ASP.NET中关于IFRAME的两个很现实的问题提供解决方法.PS:呵呵,又做了 ...