本讲将使用到adsi,即活动目录服务接口.可以到15seconds.com找到一些相关的资料.
1.创建用户
下面这段代码在独立服务器white上创建用户user1,初始口令user1,用到了adsi.
dim username,userpass
dim odomain,ouser
username = "user1"
userpass = "user1"
set odomain = getobject("winnt://white")
set ouser = odomain.create ("user", username)
if (err.number = 0) then
ouser.setinfo
ouser.setpassword userpass
ouser.setinfo
else
wscript.echo "创建用户" & username & "出错!"
end if
set ouser = nothing
set odomain = nothing
2.创建目录
使用filesystemobject创建目录:
dim fsobject
dim tmpfolder
set fsobject = wscript.createobject("scripting.filesystemobject")
tmpfolder = "d:\userdate\user1"
if not fsobject.folderexists(tmpfolder) then
fsobject.createfolder(tmpfolder)
if err.number<>0 then
wscript.echo "创建目录" & tmpfolder & "失败!"
end if
end if
注意在创建目录前,先检查了目录是否存在,如果存在,则不用创建了.
3.创建站点
下面这个子程序负责创建一个www站点,各个参数的意义为:站点ip地址,站点根目录,站点说明,主机名,端口号,计算机名(一搬为localhost),是否立即启动,匿名访问时所使用的帐号,匿名访问时所用帐号的口令,log文件的目录.
函数返回所建站点在iis中的序号(在iis中,所有站点依次编号,第一个为1).
一个调用示例:siteid = astcreatewebsite("10.1.3.122","d:\userdata\user1","www_user1","","80","localhost",true,"iusr_user1","8iui%#","d:\logfiles")
function astcreatewebsite(ipaddress, rootdirectory, servercomment, hostname, portnum, computer, start,anonymoususername,anonymoususerpass,logfiledirectory)
dim w3svc, webserver, newwebserver, newdir
dim bindings, bindingstring, newbindings, index, siteobj, bdone
on error resume next
err.clear
set w3svc = getobject("iis://" & computer & "/w3svc")
if err.number <> 0 then
wscript.echo "无法打开: "&"iis://" & computer & "/w3svc" & vbcrlf & "程序将退出."
wscript.quit (1)
end if
bindingstring = ipaddress & ":" & portnum & ":" & hostname
for each webserver in w3svc
if webserver.class = "iiswebserver" then
bindings = webserver.serverbindings
if bindingstring = bindings(0) then
wscript.echo "ip地址冲突:" & ipaddress & ",请检测ip地址!." & vbcrlf & "取消创建本站点。"
exit function
end if
end if
next
index = 1
bdone = false
while (not bdone)
err.clear
set siteobj = getobject("iis://"&computer&"/w3svc/" & index)
if (err.number = 0) then
index = index + 1
else
err.clear
set newwebserver = w3svc.create("iiswebserver", index)
if (err.number <> 0) then
index = index + 1
else
err.clear
set siteobj = getobject("iis://"&computer&"/w3svc/" & index)
if (err.number = 0) then
bdone = true
else
index = index + 1
end if
end if
end if
if (index > 10000) then
wscript.echo "看起来不能创建站点,正在创建的站点的序号为: "&index&"." & vbcrlf & "取消创建本站点。"
exit function
end if
wend
newbindings = array(0)
newbindings(0) = bindingstring
newwebserver.serverbindings = newbindings
newwebserver.servercomment = servercomment
newwebserver.anonymoususername = anonymoususername
newwebserver.anonymoususerpass = anonymoususerpass
newwebserver.keytype = "iiswebserver"
newwebserver.frontpageweb = true
newwebserver.enabledefaultdoc = true
newwebserver.defaultdoc = "default.htm, default.asp, index.htm, index.asp"
newwebserver.logfiledirectory = logfiledirectory
newwebserver.setinfo
set newdir = newwebserver.create("iiswebvirtualdir", "root")
newdir.path = rootdirectory
newdir.accessread = true
newdir.appfriendlyname = "应用程序" & servercomment
newdir.appcreate true
newdir.accessscript = true
err.clear
newdir.setinfo
if (err.number = 0) then
else
wscript.echo "主目录创建时出错."
end if
if start = true then
err.clear
set newwebserver = getobject("iis://" & computer & "/w3svc/" & index)
newwebserver.start
if err.number <> 0 then
wscript.echo "启动站点时出错!"
err.clear
else
end if
end if
astcreatewebsite = index
end function
下面函数创建ftp站点:
function astcreateftpsite(ipaddress, rootdirectory, servercomment, hostname, portnum, computer, start,logfiledirectory)
dim msftpsvc, ftpserver, newftpserver, newdir
dim bindings, bindingstring, newbindings, index, siteobj, bdone
on error resume next
err.clear
set msftpsvc = getobject("iis://" & computer & "/msftpsvc")
if err.number <> 0 then
wscript.echo "无法打开: "&"iis://" & computer & "/msftpsvc" & vbcrlf & "程序将退出."
wscript.quit (1)
end if
bindingstring = ipaddress & ":" & portnum & ":" & hostname
for each ftpserver in msftpsvc
if ftpserver.class="iisftpserver" then
bindings = ftpserver.serverbindings
if bindingstring = bindings(0) then
wscript.echo "ip地址冲突:" & ipaddress & ",请检测ip地址!." & vbcrlf & "取消创建本站点。"
exit function
end if
end if
next
index = 1
bdone = false
while (not bdone)
err.clear
set siteobj = getobject("iis://"&computer&"/msftpsvc/" & index)
if (err.number = 0) then
index = index + 1
else
err.clear
set newftpserver = msftpsvc.create("iisftpserver", index)
if (err.number <> 0) then
index = index + 1
else
err.clear
set siteobj = getobject("iis://"&computer&"/msftpsvc/" & index)
if (err.number = 0) then
bdone = true
else
index = index + 1
end if
end if
end if
if (index > 10000) then
wscript.echo "看起来不能创建站点,正在创建的站点的序号为: "&index&"." & vbcrlf & "取消创建本站点。"
exit function
end if
wend
newbindings = array(0)
newbindings(0) = bindingstring
newftpserver.serverbindings = newbindings
newftpserver.servercomment = servercomment
newftpserver.allowanonymous = false
newftpserver.accesswrite = true
newftpserver.accessread = true
newftpserver.dontlog = false
newftpserver.logfiledirectory = logfiledirectory
newftpserver.setinfo
set newdir = newftpserver.create("iisftpvirtualdir", "root")
newdir.path = rootdirectory
newdir.accessread = true
err.clear
newdir.setinfo
if (err.number = 0) then
else
wscript.echo "主目录创建时出错."
end if
if start = true then
err.clear
set newftpserver = getobject("iis://" & computer & "/msftpsvc/" & index)
newftpserver.start
if err.number <> 0 then
wscript.echo "启动站点时出错!"
err.clear
else
end if
end if
astcreateftpsite = index
end function
