IIS管理

目前网络上的网站架设一般都是采用微软公司的IIS+ASP的搭配方式。ASP作为脚本语言,设计网站动态页面;IIS作为服务器,负责对页面的解析处理。默认安装情况之下,IIS包括三个服务:WWW(万维网服务)、SMTP(邮件发送服务)和FTP(文件服务)。IIS使用inetinfo.exe进程提供服务。

一、命令行工具IISReset

IIS给我们提供了一个命令行工具IISReset来管理IIS服务器。

IISReset的具体用法如下:

iisreset [computername]

/RESTART 停止然后重新启动所有 Internet 服务。

/START 启动所有 Internet 服务。

/STOP 停止所有 Internet 服务。

/REBOOT 重新启动计算机(缓时20秒)。

/REBOOTONERROR 如果在启动、停止或重新启动 Internet 服务时出错,

则重新启动计算机。

/NOFORCE 如果试图正常停止服务失败,不强制终止 Internet 服务。

/TIMEOUT:val 指定等待 Internet 服务的成功停止的超时值(以秒为单位)。

如果已指定 REBOOTONERROR 参数,超时后可以重新启动计算机。

服务重新启动的默认值为20 秒,停止为 60 秒,计算机重新启动为 0 秒。

/STATUS 显示所有 Internet 服务的状态。

/ENABLE 启用本地系统上 Internet 服务的重新启动。

/DISABLE 禁用本地系统上 Internet 服务的重新启动。

运行 iisreset /status 结果如下:

World Wide Web Publishing(W3SVC)的状态: 正运行

Simple Mail Transfer Protocol (SMTP)(SMTPSVC)的状态: 已停止

在我的计算机上只安装了www服务和smtp服务,由于用不到smtp,所以我将它停止掉,以防安全漏洞,为黑客有机可乘。这句命令很好地将iis服务器的状态显示出来。

在默认状态下,IIS的重新启动被设置为ENABLE状态,执行命令iisreset /stop 后,再用iisreset /start就能重起成功。一旦设置为disable状态,关闭后就完全不能操作iis的状态,不能关闭和启动iis ,不能察看IIS的状态,甚至不能用这个命令关闭计算机。如果尝试修改状态,就会显示操作错误信息,并有这样的提示:“已禁用 Internet 服务的重新启动”。禁止Internet 服务的重新启动不影响iis的服务,不会关闭inetinfo.exe。在windows任务管理器下关闭inetinfo.exe后它会自动启动。

二、关于管理脚本

(一)IIS 管理脚本实用程序 (adsutil)

概述:这是一个 IIS 管理实用程序,通过 Active Directory 服务接口 (ADSI) 使用 VBScript 来控制 IIS 配置。此脚本应使用随 Windows Script Host 一同安装的 CScript 来运行。

用法:

Cscript.exe adsutil.vbs 命令 <路径> [<参数>...]

Cscript.exe adsutil.vbs 命令[<路径> [<参数>...]]

命令:

GET 路径 显示所选参数。

SET 路径值 指定新值。

ENUM 路径 "/P" 列出用于路径的所有参数。/P - 仅列出路径(无数据)。

ENUM_ALL "/P" 列出所有参数。/P - 仅列出路径(无数据)。

DELETE 路径 删除路径或参数。

CREATE 路径 [密钥类型] 创建路径并为其指定密钥类型。

APPCREATEINPROC 路径 创建进程内应用程序。

APPCREATEOUTPROC 路径 创建进程外应用程序。

APPDELETE 路径 删除应用程序(如果存在)。

APPUNLOAD 路径 卸载进程外应用程序。

APPGETSTATUS 路径 获取应用程序的状态。

FIND 路径 查找设置了参数的路径。

START_SERVER 路径 启动服务器。

STOP_SERVER 路径 停止网站。

PAUSE_SERVER 路径 暂停网站。

CONTINUE_SERVER 路径 网站取消暂停。

HELP 打印所有可用命令。

注意

<路径> 指要设置其属性及名称的节点所在的路径。例如,要将"ServerComment"设置为"Web Server Number 1",则命令如下:

adsutil SET w3svc/1/ServerComment "Web Server Number 1"

下一次打开 Internet 信息服务管理单元时,Web 服务器的名称将变为"Web Server Number 1"。

开关"-s:服务器名称"可以在任何命令后面使用,用于在远程计算机上执行该命令。(请参阅下面第一个示例。)

示例:

Cscript.exe adsutil.vbs GET W3SVC/1/ServerBindings -s:remotecomputer1

Cscript.exe adsutil.vbs SET W3SVC/1/ServerBindings ":81:"

Cscript.exe adsutil.vbs CREATE W3SVC/1/Root/MyVdir "IIsWebVirtualDir"

Cscript.exe adsutil.vbs START_SERVER W3SVC/1

Cscript.exe adsutil.vbs ENUM /P W3SVC

(二)显示管理节点 (dispnode)

概述:显示与树中特定管理节点相关的字段。

用法:

dispnode <--ADSPath|-a ADSPATH>

<--help|-h>

参数:ADSPATH 被显示节点的完整 ADSI 路径。

示例:Dispnode -a IIS://LocalHost/w3svc (IIS务必大写)

(三)显示管理树 (disptree)

概述:此功能显示从指定根节点 ROOT 开始的管理对象的树,如果未指定根节点,则从 IIS://LocalHost 开始。对于每个节点,将显示节点的名称和类,对于虚拟服务器,还将显示 ServerComment。默认情况下,脚本将遍历整个树,并显示所有深层节点。可以通过变量 NoRecurse 禁用该行为。

用法:

disptree [--adspath|-a ROOT]

[--NoRecurse|-n]

<--help|-h>

参数:

ROOT 树的根节点的完整 ADSI 路径。

NORECURSE 如果指定该变量,则脚本不会遍历容器对象,因此不会显示整个树。

示例:

Disptree -a IIS://LocalHost/w3svc -n

(四)查找网站 (findweb)

概述:查找指定计算机上的命名网站。

用法:

findweb [--computer|-c COMPUTER] WEBSITE [--help|-?]

参数: Computer 要搜索的计算机。如果未指定,将搜索本机。

WEBSITE 要搜索的网站。如果未指定,将搜索"1"。

此名称可以将此参数指定为如下名称之一,按指定的优先级:

服务器编号(例如,1、2、10 等)

服务器说明("My Server")

服务器主机名称 (www.domain.com)

IP 地址 (172.16.0.0)

help 返回该命令的帮助。

示例:

findweb

findweb -c MACHINE www.domain.com

(五)创建网站 (mkw3site)

概述:创建一个网站。

用法:

mkw3site <--RootDirectory|-r ROOT DIRECTORY>

<--Comment|-t SERVER COMMENT>

[--computer|-c COMPUTER1[,COMPUTER2...]]

[--port|-o PORT NUM]

[--IPAddress|-i IP ADDRESS]

[--admin|-a ADMINISTRATOR]

[--HostName|-h HOST NAME]

[--DontStart]

[--help|-?]

参数:

IP ADDRESS 指派给新服务器的 IP 地址。(可选)

COMPUTER1, COMPUTER2,... 要在其上创建站点的一组计算机。此参数用于使用相同设置配置多台计算机。如果未指定计算机,则认为是本机。

ROOT DIRECTORY 新服务器的根目录的完整路径。

SERVER COMMENT 显示在 Microsoft Management Console (MMC) 中的名称。

ADMINISTRATOR 指派为服务器管理员的用户名。

PORT NUM 新服务器应绑定的端口号。

HOST NAME 指派给此站点的主机名称。

警告:只有当将 DNS 设置为查找服务器时,才可使用主机名称。

DONTSTART 指定该参数将强迫脚本在创建 Web 服务器后不启动它。

示例:

Mkw3site -rootdirectory d:\someplace -t NewServer -hostname www.domain.com

(六)创建虚拟 Web 目录 (mkwebdir)

概述:创建新的 Web 服务器虚拟目录。

用法:

mkwebdir <--computer|-c COMPUTER1,COMPUTER2,...>

<--website|-w WEBSITE>

<--virtualdir|-v NAME1,PATH1,NAME2,PATH2,...>

[--help|-h]

参数:

COMPUTER1, COMPUTER2,... 要在其上创建虚拟 Web 目录的一组计算机。此参数用于使用相同设置配置多台计算机。如果未指定计算机,则认为是本机。

WEBSITE 要在其上创建目录的网站。可以将此参数指定为如下名称之一,按指定的优先级:

服务器编号(如 1、2、10)

服务器说明 (My Server)

服务器主机名称 (www.domain.com)

IP 地址 (172.16.0.0)

NAME1,PATH1,NAME2,PATH2 要创建的虚拟目录的名称和路径。

示例:

Mkwebdir -c LocalHost -w "Default Web Site" -v CommonImages,D:\Images

例如:mkwebdir -c localhost -w "1" -v "me" , d:/images

这里1是站点名称,这里代表w3svc/1,可是不能写作"w3svc/1" 或"w3svc/1/root" ,-v 参数后面有逗号分割虚拟目录和实际目录。由于此命令不检测系统目录是否正确,所以实际目录(d:/Images)务必正确,否则在dos提示下显示创建成功,实际会因为找不到系统目录而失败。

(七)更改访问限制 (chaccess)

概述:更改一组特定计算机中给定节点上所允许的访问类型。例如,您可以使用此脚本控制目录、虚拟目录或文件是否具有读取或执行属性。

用法:

chaccess -a ADSPATH -computer|-c COMPUTER1, COMPUTER2,...

[+read|-read]

[+write|-write]

[+script|-script]

[+execute|-execute]

[+browse|-browse]

[-verbose|-v]

[--help|-?]

参数:

-a ADSPATH 计算机相对路径名称。例如 -a w3svc/1。

-Computer 要在其上进行更改的、逗号分隔的一组计算机。例如 -c Machine1,Machine2,Machine3。此处假设指定路径在所有指定的计算机上都存在。如果未指定计算机,则认为是本机。

+-read

+-write 打开/关闭此节点的写入权限。

+-script 打开/关闭此节点的执行脚本权限。

+-execute 打开/关闭此节点的执行权限。

+-browse 打开/关闭此节点的目录浏览。

-verbose 打印处理过程中的状态信息。

示例:

chaccess -a w3svc/1/ROOT +read -write +script +browse

chaccess -c MACHINE1,MACHINE2 -a w3svc/1/ROOT +read -write +script +browse

(八)Web服务器

1、启动 Web 服务器 (startweb)

概述:启动指定的 Web 服务器。

用法:

startweb <--ADSPath|-a server1[,server2,server3...]>

[--computer|-c COMPUTER1[,COMPUTER2...]]

[--verbose|-v]

[--help|-?]

参数:

-a SERVERx 要启动的服务器的编号。

-Computer 逗号分隔的一组计算机。例如 -c Machine1,Machine2,Machine3。

此处假设指定路径在所有指定的计算机上都存在。如果未指定计算机,则认为是本机。

示例:

startweb -a 1,2

startweb -c MACHINE1,MACHINE2,MACHINE3 -a 1,2

2、停止 Web 服务器 (stopweb)

stopweb -a 1,2

stopweb -c MACHINE1,MACHINE2,MACHINE3 -a 1,2

3、暂停 Web 服务器 (pauseweb)

pauseweb -a 1,2

pauseweb -c MACHINE1,MACHINE2,MACHINE3 -a 1,2

4、恢复 Web 服务器 (contweb)

contweb -a 1,2

contweb -c MACHINE1,MACHINE2,MACHINE3 -a 1,2

(九)FTP 服务器

1、启动 FTP 服务器 (startftp)

概述:启动指定的服务器。

用法:

startftp <--ADSPath|-a server1[,server2,server3...]>

[--computer|-c COMPUTER1[,COMPUTER2...]]

[--verbose|-v]

[--help|-?]

参数:

-a SERVERx 要启动的服务器的编号。

-Computer 逗号分隔的一组计算机。

例如 -c Machine1,Machine2,Machine3。此处假设指定路径在所有指定的计算机上都存在。如果未指定计算机,则认为是本机。

-verbose 打印处理过程中的状态信息。

-h 返回该命令的帮助。

示例:

startftp -a 1,2

startftp -c MACHINE1,MACHINE2,MACHINE3 -a 1,2

2、停止 FTP 服务器 (stopftp)

stopftp -a 1,2

stopftp -c MACHINE1,MACHINE2,MACHINE3 -a 1,2

此方法停止了msftpsvc/1服务,但是ftp服务器还在运行,可以在服务管理器上查看到,等效于adsutil stop_server msftpsvc/1

3、暂停 FTP 服务器 (pauseftp)

pauseftp -a 1,2

pauseftp -c MACHINE1,MACHINE2,MACHINE3 -a 1,2

4、恢复 FTP 服务器 (contftp)

contftp -a 1,2

contftp -c MACHINE1,MACHINE2,MACHINE3 -a 1,2

(十)服务器

1、启动服务器 (startsrv)

概述:启动一组服务器,这这个服务器包括web服务器与ftp服务器,所以他的功能函盖了前面两个命令的功能,startweb、startftp。而且参数也必然比他们复杂一些,因为它必须指明参数是web服务器还是ftp服务器。如 -a w3csvc/1,msftpsvc/1

用法:

startsrv <--ADSPath|-a ServerInstance/X[,ServerInstance/Y,ServerInstance/Z...]>

[--computer|-c COMPUTER1[,COMPUTER2...]]

[--verbose|-v]

[--help|-?]

参数:

-a ServerInstance/X Web 服务器或 FTP 服务器的实例。通常是 w3svc/X 或 msftpsvc/X ,此处 X 是服务器实例的序号;对于 IIS 的默认安装,w3svc/1 是指映射到系统驱动器上 Inetpub\Wwwroot 文件夹的默认网站。

-Computer 逗号分隔的一组计算机。例如 -c Machine1,Machine2,Machine3。

此处假设指定路径在所有指定的计算机上都存在。如果未指定计算机,则认为是本机。

-verbose 打印处理过程中的状态信息。

-h 返回该命令的帮助。

示例:

startsrv -a w3svc/1,msftpsvc/2

startsrv -c MACHINE1,MACHINE2,MACHINE3 -a w3svc/1,msftpsvc/2

2、停止服务器 (stopsrv)

stopsrv -a w3svc/1,msftpsvc/2

stopsrv -c MACHINE1,MACHINE2,MACHINE3 -a w3svc/1,msftpsvc/2

3、暂停服务器 (pausesrv)

pausesrv -a w3svc/1,msftpsvc/2

pausesrv -c MACHINE1,MACHINE2,MACHINE3 -a w3svc/1,msftpsvc/2

4、恢复服务器 (contsrv)

contsrv -a w3svc/1,msftpsvc/2

contsrv -c MACHINE1,MACHINE2,MACHINE3 -a w3svc/1,msftpsvc/2