欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

IIS管理脚本之adsutil.vbs的使用说明

程序员文章站 2022-03-21 11:02:31
adsutil.vbs是什么?它是windows 2003的iis服务自带的基于命令行下的iis管理脚本,位于%systemdrive%\inetpub\admi...

adsutil.vbs是什么?它是windows 2003的iis服务自带的基于命令行下的iis管理脚本,位于%systemdrive%\inetpub\adminscripts目录下,95,426字节。这么大的脚本一看就知道功能肯定非常强大,事实也确是如此。我感觉它就是个命令行下的“internet 信息服务管理器”(事实上windows 2000用%systemdrive%\inetpub\adminscripts下原有的20多个vbs进行管理,而到了2003则只剩下adsutil.vbs一个了,足以说明它的功能是多么强大)。

    提到adsutil.vbs就不得不提到metabase.bin,这个文件是iis最重要的配置文件,所有iis的设置最终都会储存在这个文件中,iis管理器和adsutil.vbs就是通过对这个文件读取配置信息来显示给用户的。它的储存结构十分像注册表,是一种树型储存结构。iis管理器和adsutil.vbs通过一个adspath的路径来访问metabase.bin,路径是由iis:\\开头,其中localhost表示本地服务器,而w3svc表示iis服务,如iis:\\localhost/w3svc/1表示本地服务器上的第一个web站点,iis:\\localhost/w3svc/1/root/vdir表示第一个web站点根目录下的vdir虚拟目录。
    adsutil.vbs基本用法

    有了这些前置知识,下面再回到adsutil.vbs来看看它的用法:

c:\inetpub\adminscripts>cscript adsutil.vbs
microsoft (r) windows script host version 5.6
版权所有(c) microsoft corporation 1996-2001。保留所有权利。
usage:
      adsutil.vbs <cmd> [<path> [<value>]]
description:
iis administration utility that enables the configuration of metabase properties
supported commands:    //支持的命令,这个最重要
  get,set,enum,delete,create,copy,appcreateinproc,appcreateoutproc,appcreatepoolproc,appdelete,appunload, appgetstatus


配置目录的存取权限

c:\inetpub\admins cripts>chaccess.vbs -a w3svc/1/root -verbose    
usage: chaccess <--adspath|-a adspath> 控制配置路径    
[--computer|-c computer1[,computer2...]]指定机器名,ip也可。    
[+read|-read] 主目录下的读取权限    
[+write|-write]主目录下的写入权限    
[+s cript|-s cript]主目录下的执行许可权限为纯脚本    
[+execute|-execute]主目录下的执行许可权限为脚本和可执行程序    
[+browse|-browse]主目录下的目录浏览权限    
[--verbose|-v]当前版本    
[--help|-?]    

显示指定路径的属性及状态信息

c:\inetpub\admins cripts>dispnode help    
usage: dispnode <--adspath|-a ads path of node> [--help|-h]    
ads path - the path of the node to be displayed    
example 1: dispnode -a iis://localhost/w3svc显示当前iis的主属性    
example 2: dispnode --adspath iis://machinename/w3svc/1 显示当前站点的状态信息    
寻找命名的web,并显示节点号、描述、主机名、端口和ip地址    
c:\inetpub\admins cripts>findweb    
web site number = 1    
web site des cription = 默认 web 站点    
hostname =    
port = 80    
ip address =    
c:\inetpub\admins cripts>findweb m7.net    
web site number = 2    
web site des cription = m7.net    
hostname = www.m7.net    
port = 80    
ip address = www.m7.net    

显示指定站点路径管理树

c:\inetpub\admins cripts>disptree.vbs help    
usage: disptree [--adspath|-a root node] 指定要显示管理树的路径    
[--norecurse|-n]    
[--help|-?]    

创建web虚拟站点    

c:\inetpub\admins cripts>mkw3site help    
unknown argument help    
usage: mkw3site <--rootdirectory|-r root directory>网站路径名    
<--comment|-t server comment>web网站标识    
[--computer|-c computer1[,computer2...]]    
[--port|-o port num]端口    
[--ipaddress|-i ip address]ip地址    
[--hostname|-h host name]主机名    
[--sitenumber|-n sitenumber]    
[--dontstart]不启动    
[--verbose|-v]    
[--help|-?]    

创建指定站点的虚拟目录    

c:\inetpub\admins cripts>mkwebdir.vbs help    
usage: mkwebdir [--computer|-c computer1,computer2]指定服务器名    
<--website|-w website1>指定虚拟站点名    
<--virtualdir|-v name1,path1,name2,path2,...>指定虚拟目录名和目录文件地址    
[--help|-?]    
example : mkwebdir -c mycomputer -w "default web site"    
-v "dir1","c:\inetpub\wwwroot\dir1","dir2","c:\inetpub\wwwroot\dir2"    

暂停指定站点的iis服务    

c:\inetpub\admins cripts>pausesrv help    
usage: pausesrv <--adspath|-a server1[,server2,server3...]>    
[--computer|-c computer1[,computer2...]]    
[--verbose|-v]    
[--help|-?]    
example 1: pausesrv -a w3svc/1,msftpsvc/2    
example 2: pauseftp -c machine1,machine2,machine3 -a w3svc/1,msftpsvc/2    

恢复暂停的站点的iis服务    

c:\inetpub\admins cripts>contsrv.vbs help    
usage: contsrv <--adspath|-a server1[,server2,server3...]>    
[--computer|-c computer1[,computer2...]]    
[--verbose|-v]    
[--help|-?]    
example 1: contsrv -a w3svc/1,msftpsvc/2    
example 2: contsrv -c machine1,machine2,machine3 -a w3svc/1,msftpsvc/2    

用法同上    
pauseftp.vbs 暂停ftp服务器服务    
contftp.vbs 恢复被暂停的ftp服务    
pauseweb.vbs 暂停web服务器服务    
contweb.vbs 恢复暂停的www服务    

停止指定站点的iis服务器服务    
c:\inetpub\admins cripts>stopsrv.vbs -a w3svc/2    
启动指定站点的iis服务器服务    
c:\inetpub\admins cripts>startsrv.vbs -a w3svc/2    

停止指定站点的web服务器服务    
c:\inetpub\admins cripts>startweb.vbs -a w3svc/2    
启动指定站点的web服务器服务    
c:\inetpub\admins cripts>stopweb.vbs -a 2    
用法同上    
stopftp.vbs 停止ftp服务器服务    
startftp.vbs 启动ftp服务器服务    
跟踪脚本的执行    
c:\inetpub\admins cripts>synciwam.vbs -h    
usage: cs cript synciwam.vbs [-v|-h]    
-v verbose: trace execution of the s cript    
-h help: print this message 


实用举例:

rem 创建虚拟目录
cscript scripts\adsutil.vbs //nologo //t:300 create w3svc/1/root/%1 "iiswebvirtualdir"

rem 设置虚拟目录的属性
rem 创建一个进程内应用程序(.net中没有inproc与outproc的区别,但旧脚本仍可使用)
cscript scripts\adsutil.vbs //nologo //t:60 appcreateinproc w3svc/1/root/%1
rem 设定应用程序的根目录
cscript scripts\adsutil.vbs //nologo //t:60 set w3svc/1/root/%1/approot /lm/w3svc/1/root/%1


rem 设定应用程序的显示名称
cscript scripts\adsutil.vbs //nologo //t:60 set w3svc/1/root/%1/appfriendlyname %1

应用程序的隔离等级(在.net中不用设置)
cscript scripts\adsutil.vbs //nologo //t:60 set w3svc/1/root/%1/appisolated %2


rem 设定虚拟目录的路径
cscript scripts\adsutil.vbs //nologo //t:60 set w3svc/1/root/%1/path %2


rem 设定虚拟目录的执行权限,513是纯脚本方式
cscript scripts\adsutil.vbs //nologo //t:60 set w3svc/1/root/%1/accessflags 513


rem 设定authflags的值,5表示允许匿名访问和集成windows验证
cscript scripts\adsutil.vbs //nologo //t:60 set w3svc/1/root/%1/authflags 5


rem 设定dirbrowseflags的值,dirbrowseflags是控制目录浏览的开关参数,比较复杂,照填就行了
cscript scripts\adsutil.vbs //nologo //t:60 set w3svc/1/root/%1/dirbrowseflags 1073741886
rem 设定默认文档
cscript scripts\adsutil.vbs //nologo //t:60 set w3svc/1/root/%1/defaultdoc "default.aspx"
rem 设定目录权限(可读、不可写、可浏览脚本资源、不可查看目录)
cscript scripts\chaccess.vbs //nologo //t:60 -a w3svc/1/root/%1 +read -write +script -browse


rem 设定