时间:2016-02-26 17:45 来源: 我爱IT技术网 作者:佚名
欢迎您访问我爱IT技术网,今天小编为你分享的电脑教程是服务器系列之:【IIS 服务器备份转移实现方法】,下面是详细的分享!
IIS 服务器备份转移实现方法
Dim SiteNum,IPAddr,PortNum,LenComputer,WebServerComment,LogDirectory
Dim user_password,GroupName,tmpFolder,UserNameComp,WebServerAutoStart
Dim WebAnonymousUserName
WebServerComment="公司名"'网站描述、计算机用户描述及全名采用这个变量
UserNameComp="freeshare.com.cn"'计算机用户名及用户目录采用这个变量
HostName=":80:www.freeshare.com.cn"'虚拟主机站点主机名
WebAnonymousUserName=getComputer()&"\"&UserNameComp'虚拟主机匿名用户(前面加了本地计算机名)
user_password="**********"'计算机用户和匿名用户密码。
GroupName="Guests"'计算机用户所在的组
IPAddr=""'计算机IP地址,可以为空
tmpFolder="D:\inetpub\"&UserNameComp'目标目录
LenComputer=Len(getComputer())+1'计算机名+'\'的长度
PortNum="80"'虚拟主机端口
WebServerAutoStart="true"'创建虚拟主机后是否运行true和false
LogDirectory=""'日志目录
'检测是否存在该用户的计算机帐号
If Not checkUser(UserNameComp) Then
'添加该计算机用户帐号
AddUser getComputer(),UserNameComp,user_password,WebServerComment,WebServerComment,GroupName
Else
Wscript.echo "该计算机用户名也存在.............."
End If
'创建用户主目录
CreateFileDirectory(tmpFolder)
'修改用户主目录的访问权限
SetNTFSDirectoryPerssion(UserNameComp)
'创建应用进程池
createAppPool WebServerComment
'创建虚拟主机站点
CreateWebSite getComputer(),IPAddr,HostName,tmpFolder,LogDirectory,WebServerComment,UserNameComp,user_password,WebServerAutoStart
'BuildNum=BuildNum+1
'Wscript.echo "=============================================="&BuildNum&"============================================="
'为每个IIS虚拟主机应用程序站点创建站点应用程序池
Function createAppPool(strName)
On Error Resume Next
Err.Clear
Set ObjAppPoolsExist=GetObject("IIS://"&getComputer()&"/W3SVC/AppPools"&strName)
If Err.number=0 Then
wscript.echo "该应用进程池已创建............."
Set ObjAppPoolsExist=Nothing
Exit Function
Else
Set objAppPools=GetObject("IIS://" & getComputer() & "/W3SVC/AppPools")
Err.Clear
Set objAppPool=objAppPools.Create("IIsApplicationPool", strName)
If err.number=0 Then
objAppPool.AppPoolIdentityType=2 'runs as NT AUTHORITY\NETWORK 3 Run as specific user account 1 runs as NT AUTHORITY\LOCAL SERVICE 0 runs as NT AUTHORITY\SYSTEM
objAppPool.SetInfo
If err.Number=0 Then
createAppPool=true
Wscript.echo"应用程序"&strName&"创建成功!"
Else
createAppPool=false
Wscript.echo"应用程序"&strName&"创建失败!"
End If
Else
createAppPool=false
End If
End If
Set objAppPool=Nothing
Set objAppPools=Nothing
Set ObjAppPoolsExist=Nothing
End Function
Function CreateWebSite(strComputer,IPAddr,WebServerBingings,WebSiteDirectory,LogDirectory,WebSiteInfo,GuestUserName,GuestUserPass,StartOrStop)
Dim w3svc, WebServer, NewWebServer, NewDir
Dim Bindings, BindingString, NewBindings, SiteNum, SiteObj, bDone
On Error Resume Next
Err.Clear
'检测是否能够加载W3SVC服务(即WEB服务)
Set w3svc=GetObject("IIS://" & getComputer() & "/w3svc")
If Err.Number <> 0 Then '显示错误提示
Wscript.echo "无法打开: "&"IIS://" & getComputer() & "/w3svc"
Exit Function
End If
'检测是否有设定相同IP地址、端口及主机名的站点存在
BindingString=IPAddr & WebServerBingings
For Each WebServer in w3svc
If WebServer.Class="IIsWebServer" Then
Bindings=WebServer.ServerBindings
If BindingString=Bindings(0) Then
Wscript.echo "虚拟主机:" & HostName & ",已存在,无法创建......!."
Exit Function
End If
End If
Next
'确定一个不存在的站点编号做为新建站点编号,系统默认WebSite站点编号为1,因此从2开始
SiteNum=2
bDone=False
While (Not bDone)
Err.Clear
Set SiteObj=GetObject("IIS://"&getComputer()&"/w3svc/"&SiteNum) '加载指定站点
If (Err.Number=0) Then
'Wscript.echo " Step_1站点"&SiteNum&"存在"
SiteNum=SiteNum + 1
Else
'Wscript.echo " Step_1站点"&SiteNum&"不存在"
Err.Clear
Set NewWebServer=w3svc.Create("IIsWebServer",SiteNum) '创建指定站点
If (Err.Number <> 0) Then
Wscript.echo SiteNum&"创建失败"
SiteNum=SiteNum + 1
Else
Wscript.echo SiteNum&"创建成功"
bDone=True
End If
End If
If (SiteNum > 1000) Then '服务器最大创建站点数
Wscript.echo "超出服务器最大创建站点数,正在创建的站点的序号为: "&SiteNum&"."
Exit Function
End If
Wend
'进行站点基本配置
NewBindings=Array(0)
NewBindings(0)=BindingString
NewWebServer.ServerBindings=NewBindings
NewWebServer.ServerComment=WebServerComment
NewWebServer.AnonymousUserName=GuestUserName
NewWebServer.AnonymousUserPass=GuestUserPass
NewWebServer.KeyType="IIsWebServer"
NewWebServer.FrontPageWeb=True
NewWebServer.EnableDefaultDoc=True
NewWebServer.DefaultDoc="Default.htm, Default.asp, Index.htm, Index.asp,index.html,default.html"
NewWebServer.LogFileDirectory=LogDirectory
NewWebServer.SetInfo
Set NewDir=NewWebServer.Create("IIsWebVirtualDir", "ROOT")
NewDir.Path=WebSiteDirectory
NewDir.AccessRead=true
NewDir.AppFriendlyName=WebServerComment
NewDir.AppCreate True
NewDir.AccessScript=True
NewDir.AuthNTLM=True
NewDir.AppIsolated="2"
NewDir.AppPoolId=WebServerComment
'NewDir.AppCreate3 2,WebSiteInfo,false
NewDir.AuthFlags="AuthAnonymous | AuthNTLM" '集成windows身份验证
Err.Clear
NewDir.SetInfo
If (Err.Number <> 0) Then
Wscript.echo "主目录创建时出错."
Exit Function
End If
If StartOrStop=True Then
Err.Clear
Set NewWebServer=GetObject("IIS://" & getComputer() & "/w3svc/" & SiteNum)
NewWebServer.Start
If Err.Number <> 0 Then
Wscript.echo "启动站点时出错!"
Err.Clear
End If
End If
Wscript.echo "站点创建成功,站点编号为:"& SiteNum &" ,域名为:"& WebServerBingings
'SetCPULimitVar strComputer,SiteNum,100 '调用CPU最大使用程度
End Function
Function getComputer()
Dim objNet
Set objNet=CreateObject("WScript.Network")
getComputer=objNet.ComputerName
Set objNet=Nothing
End Function
Function CreateFileDirectory(UserName)
Set FsObject=CreateObject("Scripting.FileSystemObject")
On Error Resume Next
Err.Clear
If Not FsObject.FolderExists(UserName) Then
FsObject.CreateFolder(UserName)
If Err.number<>0 Then
Wscript.echo "创建目录" & UserName & "失败!"
Else
Wscript.echo "创建目录" & UserName & "成功!"
END if
Else
Wscript.echo"目录" & UserName & "已存在,您不能创建!"
End if
Set FsObject=Nothing
End Function
Function SetNTFSDirectoryPerssion(sourceDirectory)
Dim WshShell,oExec
Dim exeDirectory
exeDirectory="C:\Program Files\Resource Kit\xcacls.exe C:\Inetpub\"
Orders_exec=exeDirectory&sourceDirectory&" /E /T /G "&sourceDirectory&":F;F"
Set WshShell=CreateObject("WScript.Shell")
Set oExec=WshShell.Exec(Orders_exec)
If oExec.status=0 Then
Wscript.echo " 命令成功执行!"
Else
Wscript.echo " 命令执行失败!权限不够或者该程序无法在DOS状态下运行"
End If
Set WshShell=Nothing
End Function
Function checkUSer(strUser)
On Error Resume Next
'Check if domain is already part of username passed to function
If instr(strUser,"\")=0 then
Set objGrp=GetObject("WinNT://" & getComputer() & "/" & strUser & ",user")
Else
Set objGrp=GetObject("WinNT://" & replace(strUser,"\","/") & ",user")
End If
If err.number=0 Then
checkUSer=true
Else
checkUSer=false
End If
Set objGrp=Nothing
On Error Goto 0
End Function
Function AddUser(Computer,UserName,PassWord,FullName,Info,GroupName)
DIM intReturn,FsObject
On Error Resume Next
'执行创建帐号命令
Set ComputerAccoutObj=GetObject("WinNT://"&getComputer()&"/"&UserName&",user")
if Err.number=0 then
Wscript.echo UserName&"计算机用户已存在...."
Else
Set ComputerObj=GetObject("WinNT://"&getComputer())
Set NewUser=ComputerObj.Create( "User" , UserName )
NewUser.SetInfo
'进行帐号设置
NewUser.SetPassword ( PassWord ) '帐号密码
NewUser.FullName=FullName '帐号全名
NewUser.Description=Info '帐号说明
NewUser.UserFlags=&H10000 xor &H0040 '&H20000(使用者下次登入时须变更密码) &H0040(使用者不得变更密码) &H10000(密码永久正确) &H0002(帐户暂时停用)
NewUser.SetInfo
Wscript.echo "帐号"&UserName&"创建成功!"
Set objSeLectGroup=GetObject("WinNT://" & getComputer() & "/Guests,group")
Set objAddUser=GetObject("WinNT://" & getComputer() & "/" & UserName &",user")
objSeLectGroup.Add(objAddUser.ADsPath)
End if
Set ComputerObj=nothing
Set ComputerAccoutObj=nothing
Set ComputerAccoutGroupObj=nothing
End Function
以上就是关于IIS 服务器备份转移实现方法的服务器维护教程分享,更多电脑教程请移步到>>电脑教程频道。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
