zoukankan      html  css  js  c++  java
  • 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/

    非常感谢亦婷的博文,原文出处:http://www.cnblogs.com/sabrinahuang/archive/2011/09/06/2168472.html

  • 相关阅读:
    HDU 1075 What Are You Talking About(字典树)
    HDU 1075 What Are You Talking About (stl之map映射)
    HDU 1247 Hat’s Words(字典树活用)
    字典树HihoCoder
    HDU 1277全文检索(字典树)
    HDU 3294 Girls' research(manachar模板题)
    HDU 3294 Girls' research(manachar模板题)
    HDU 4763 Theme Section(KMP灵活应用)
    Ordering Tasks UVA
    Abbott's Revenge UVA
  • 原文地址:https://www.cnblogs.com/zhulinyixuan/p/2184187.html
Copyright © 2011-2022 走看看