Adsutil.vbs是什么?它是Windows2003的IIS服务自带的基于命令行下的IIS管理脚本,位于%SystemDrive%InetpubAdminScripts目录下,95,426字节。这么大的脚本一看就知道功能肯定非常强大,事实也确是如此。我感觉它就是个命令行下的“Internet信息服务管理器”(事实上Windows2000用%SystemDrive%InetpubAdminScripts下原有的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:InetpubAdminScripts>cscriptAdsutil.vbs
Microsoft(R)WindowsScriptHostVersion5.6
版权所有(C)MicrosoftCorporation1996-2001。保留所有权利。
Usage:
ADSUTIL.VBS<cmd>[<path>[<value>]]
Description:
IISadministrationutilitythatenablestheconfigurationofmetabaseproperties
SupportedCommands://支持的命令,这个最重要
GET,SET,ENUM,DELETE,CREATE,COPY,APPCREATEINPROC,APPCREATEOUTPROC,APPCREATEPOOLPROC,APPDELETE,APPUNLOAD,APPGETSTATUS
配置目录的存取权限
C:InetpubAdminscripts>chaccess.vbs-aw3svc/1/ROOT-verbose
Usage:chaccess<--ADSPath|-aADSPATH>控制配置路径
[--computer|-cCOMPUTER1[,COMPUTER2...]]指定机器名,IP也可。
[+read|-read]主目录下的读取权限
[+write|-write]主目录下的写入权限
[+script|-script]主目录下的执行许可权限为纯脚本
[+execute|-execute]主目录下的执行许可权限为脚本和可执行程序
[+browse|-browse]主目录下的目录浏览权限
[--verbose|-v]当前版本
[--help|-?]
显示指定路径的属性及状态信息
C:InetpubAdminscripts>dispnodehelp
Usage:dispnode<--ADSPath|-aADSPATHOFNODE>[--help|-h]
ADSPATH-ThePathofthenodetobedisplayed
Example1:dispnode-aIIS://LocalHost/w3svc显示当前IIS的主属性
Example2:dispnode--adspathIIS://MachineName/w3svc/1显示当前站点的状态信息
寻找命名的Web,并显示节点号、描述、主机名、端口和IP地址
C:InetpubAdminscripts>findweb
WebSiteNumber=1
WebSiteDescription=默认Web站点
Hostname=
Port=80
IPAddress=
C:InetpubAdminscripts>findwebm7.net
WebSiteNumber=2
WebSiteDescription=m7.net
Hostname=www.m7.net
Port=80
IPAddress=www.m7.net
显示指定站点路径管理树
C:InetpubAdminscripts>disptree.vbshelp
Usage:disptree[--ADSPath|-aROOTNODE]指定要显示管理树的路径
[--NoRecurse|-n]
[--Help|-?]
创建WEB虚拟站点
C:InetpubAdminscripts>mkw3sitehelp
Unknownargumenthelp
Usage:mkw3site<--RootDirectory|-rROOTDIRECTORY>网站路径名
<--Comment|-tSERVERCOMMENT>WEB网站标识
[--computer|-cCOMPUTER1[,COMPUTER2...]]
[--port|-oPORTNUM]端口
[--IPAddress|-iIPADDRESS]IP地址
[--HostName|-hHOSTNAME]主机名
[--SiteNumber|-nSITENUMBER]
[--DontStart]不启动
[--verbose|-v]
[--help|-?]
创建指定站点的虚拟目录
C:InetpubAdminscripts>mkwebdir.vbshelp
Usage:mkwebdir[--computer|-cCOMPUTER1,COMPUTER2]指定服务器名
<--website|-wWEBSITE1>指定虚拟站点名
<--virtualdir|-vNAME1,PATH1,NAME2,PATH2,...>指定虚拟目录名和目录文件地址
[--help|-?]
Example:mkwebdir-cMyComputer-w"DefaultWebSite"
-v"dir1","c:inetpubwwwrootdir1","dir2","c:inetpubwwwrootdir2"
暂停指定站点的IIS服务
C:InetpubAdminscripts>pausesrvhelp
Usage:pausesrv<--ADSPath|-aserver1[,server2,server3...]>
[--computer|-cCOMPUTER1[,COMPUTER2...]]
[--verbose|-v]
[--help|-?]
Example1:pausesrv-aw3svc/1,msftpsvc/2
Example2:pauseftp-cMACHINE1,MACHINE2,MACHINE3-aw3svc/1,msftpsvc/2
恢复暂停的站点的IIS服务
C:InetpubAdminscripts>contsrv.vbshelp
Usage:contsrv<--ADSPath|-aserver1[,server2,server3...]>
[--computer|-cCOMPUTER1[,COMPUTER2...]]
[--verbose|-v]
[--help|-?]
Example1:contsrv-aw3svc/1,msftpsvc/2
Example2:contsrv-cMACHINE1,MACHINE2,MACHINE3-aw3svc/1,msftpsvc/2
用法同上
pauseftp.vbs暂停FTP服务器服务
contftp.vbs恢复被暂停的FTP服务
pauseweb.vbs暂停Web服务器服务
contweb.vbs恢复暂停的WWW服务
停止指定站点的IIS服务器服务
C:InetpubAdminscripts>stopsrv.vbs-aw3svc/2
启动指定站点的IIS服务器服务
C:InetpubAdminscripts>startsrv.vbs-aw3svc/2
停止指定站点的WEB服务器服务
C:InetpubAdminscripts>startweb.vbs-aw3svc/2
启动指定站点的Web服务器服务
C:InetpubAdminscripts>stopweb.vbs-a2
用法同上
stopftp.vbs停止FTP服务器服务
startftp.vbs启动FTP服务器服务
跟踪脚本的执行
C:InetpubAdminscripts>synciwam.vbs-h
Usage:cscriptsynciwam.vbs[-v|-h]
-vverbose:traceexecutionofthescript
-hhelp:printthismessage
实用举例:
REM创建虚拟目录
cscriptscriptsadsutil.vbs//Nologo//T:300createW3SVC/1/Root/%1"IIsWebVirtualDir"
REM设置虚拟目录的属性
REM创建一个进程内应用程序(.Net中没有inproc与outproc的区别,但旧脚本仍可使用)
cscriptscriptsadsutil.vbs//Nologo//T:60appcreateinprocW3SVC/1/Root/%1
REM设定应用程序的根目录
cscriptscriptsadsutil.vbs//Nologo//T:60setW3SVC/1/Root/%1/AppRoot/LM/W3SVC/1/Root/%1
REM设定应用程序的显示名称
cscriptscriptsadsutil.vbs//Nologo//T:60setW3SVC/1/Root/%1/AppFriendlyName%1
应用程序的隔离等级(在.Net中不用设置)
cscriptscriptsadsutil.vbs//Nologo//T:60setW3SVC/1/Root/%1/AppIsolated%2
REM设定虚拟目录的路径
cscriptscriptsadsutil.vbs//Nologo//T:60setW3SVC/1/Root/%1/Path%2
REM设定虚拟目录的执行权限,513是纯脚本方式
cscriptscriptsadsutil.vbs//Nologo//T:60setW3SVC/1/Root/%1/AccessFlags513
REM设定AuthFlags的值,5表示允许匿名访问和集成Windows验证
cscriptscriptsadsutil.vbs//Nologo//T:60setW3SVC/1/Root/%1/AuthFlags5
REM设定DirbrowseFlags的值,DirbrowseFlags是控制目录浏览的开关参数,比较复杂,照填就行了
cscriptscriptsadsutil.vbs//Nologo//T:60setW3SVC/1/Root/%1/DirbrowseFlags1073741886
REM设定默认文档
cscriptscriptsadsutil.vbs//Nologo//T:60setW3SVC/1/Root/%1/DefaultDoc"Default.aspx"
REM设定目录权限(可读、不可写、可浏览脚本资源、不可查看目录)
cscriptscriptschaccess.vbs//Nologo//T:60-aW3SVC/1/Root/%1+read-write+script-browse
REM设定