欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

IIS 服務(wù)器備份轉(zhuǎn)移實現(xiàn)方法

 更新時間:2009年03月24日 17:55:51   作者:  
最近上了一個項目,讓我不管通過任何的方法要把一臺IIS服務(wù)器的所有虛擬主機全部轉(zhuǎn)移到另外一臺機,其實很早就因為IIS服務(wù)器的問題而傷腦筋,終于在我的努力下通過VBSCRIPT的腳本實現(xiàn)了這個目標(biāo),不敢獨想,和廣大網(wǎng)友共享。
原創(chuàng)文章:歡迎轉(zhuǎn)載,轉(zhuǎn)載時請保留作者名及出處
作者:jacksonluo
一:IIS的服務(wù)器前期配置(其他的安全就不提了) (以 freeshare.com.cn為例 )
1.創(chuàng)建該域的(freeshare.com.cn)計算機用戶名,并設(shè)置一個安全密碼
2.創(chuàng)建該域的目錄文件夾如(D:\Inetpub\freeshare.com.cn)
3.設(shè)置目錄訪問權(quán)限,freeshare.com.cn對該目錄完全控制(提供匿名用戶訪問該網(wǎng)站)
4.創(chuàng)建一個該域名的描述(公司名) 的單獨應(yīng)用進程池,為每一個虛擬主機創(chuàng)建獨立的應(yīng)用程序進程池,保個別網(wǎng)站的問題不會影響整臺服務(wù)器的運行。創(chuàng)建進程池時可以單獨設(shè)定用戶名和密碼并設(shè)置CPU,連接數(shù)等。這里采用的是默認(rèn)的。
5.創(chuàng)建一個虛擬主機,并選擇上面所創(chuàng)建的應(yīng)用進程池,在目錄安全性中選擇匿名用戶freeshare.com.cn,并設(shè)置與計算機創(chuàng)建freeshare.com.cn用戶名的密碼一致,必須一致,否則無法訪問該網(wǎng)站。
OK,這個就對每個虛擬主機要做的,那么這些是不是需要全部的人工的去完成呢?答案是否定的,WINDOWS下也可以實現(xiàn)腳本編程哦,(呵呵我原來也是不知道的)
那么即然可以不用去手工完成,用什么呢?用VBSCRIPT腳本吧。
二:用腳本完成上述創(chuàng)建虛擬主機的動作
保存為createsiglewebsite.vbs
復(fù)制代碼 代碼如下:

Dim SiteNum,IPAddr,PortNum,LenComputer,WebServerComment,LogDirectory
Dim user_password,GroupName,tmpFolder,UserNameComp,WebServerAutoStart
Dim WebAnonymousUserName
WebServerComment="公司名"'網(wǎng)站描述、計算機用戶描述及全名采用這個變量
UserNameComp="freeshare.com.cn"'計算機用戶名及用戶目錄采用這個變量
HostName = ":80:www.freeshare.com.cn"'虛擬主機站點主機名
WebAnonymousUserName = getComputer()&"\"&UserNameComp'虛擬主機匿名用戶(前面加了本地計算機名)
user_password = "**********"'計算機用戶和匿名用戶密碼。
GroupName = "Guests"'計算機用戶所在的組
IPAddr = ""'計算機IP地址,可以為空
tmpFolder = "D:\inetpub\"&UserNameComp'目標(biāo)目錄
LenComputer = Len(getComputer())+1'計算機名+'\'的長度
PortNum = "80"'虛擬主機端口
WebServerAutoStart = "true"'創(chuàng)建虛擬主機后是否運行true和false
LogDirectory = ""'日志目錄
'檢測是否存在該用戶的計算機帳號
If Not checkUser(UserNameComp) Then
'添加該計算機用戶帳號
AddUser getComputer(),UserNameComp,user_password,WebServerComment,WebServerComment,GroupName
Else
Wscript.echo "該計算機用戶名也存在.............."
End If
'創(chuàng)建用戶主目錄
CreateFileDirectory(tmpFolder)
'修改用戶主目錄的訪問權(quán)限
SetNTFSDirectoryPerssion(UserNameComp)
'創(chuàng)建應(yīng)用進程池
createAppPool WebServerComment
'創(chuàng)建虛擬主機站點
CreateWebSite getComputer(),IPAddr,HostName,tmpFolder,LogDirectory,WebServerComment,UserNameComp,user_password,WebServerAutoStart
'BuildNum = BuildNum+1
'Wscript.echo "=============================================="&BuildNum&"============================================="
'為每個IIS虛擬主機應(yīng)用程序站點創(chuàng)建站點應(yīng)用程序池
Function createAppPool(strName)
On Error Resume Next
Err.Clear
Set ObjAppPoolsExist = GetObject("IIS://"&getComputer()&"/W3SVC/AppPools"&strName)
If Err.number = 0 Then
wscript.echo "該應(yīng)用進程池已創(chuàng)建............."
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"應(yīng)用程序"&strName&"創(chuàng)建成功!"
Else
createAppPool = false
Wscript.echo"應(yīng)用程序"&strName&"創(chuàng)建失??!"
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服務(wù)(即WEB服務(wù))
Set w3svc = GetObject("IIS://" & getComputer() & "/w3svc")
If Err.Number <> 0 Then '顯示錯誤提示
Wscript.echo "無法打開: "&"IIS://" & getComputer() & "/w3svc"
Exit Function
End If
'檢測是否有設(shè)定相同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 & ",已存在,無法創(chuàng)建......!."
Exit Function
End If
End If
Next
'確定一個不存在的站點編號做為新建站點編號,系統(tǒng)默認(rèn)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) '創(chuàng)建指定站點
If (Err.Number <> 0) Then
Wscript.echo SiteNum&"創(chuàng)建失敗"
SiteNum = SiteNum + 1
Else
Wscript.echo SiteNum&"創(chuàng)建成功"
bDone = True
End If
End If
If (SiteNum > 1000) Then '服務(wù)器最大創(chuàng)建站點數(shù)
Wscript.echo "超出服務(wù)器最大創(chuàng)建站點數(shù),正在創(chuàng)建的站點的序號為: "&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 "主目錄創(chuàng)建時出錯."
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 "站點創(chuàng)建成功,站點編號為:"& SiteNum &" ,域名為:"& WebServerBingings
'SetCPULimitVar strComputer,SiteNum,100 '調(diào)用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 "創(chuàng)建目錄" & UserName & "失?。?
Else
Wscript.echo "創(chuàng)建目錄" & UserName & "成功!"
END if
Else
Wscript.echo"目錄" & UserName & "已存在,您不能創(chuàng)建!"
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 " 命令成功執(zhí)行!"
Else
Wscript.echo " 命令執(zhí)行失??!權(quán)限不夠或者該程序無法在DOS狀態(tài)下運行"
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
'執(zhí)行創(chuàng)建帳號命令
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
'進行帳號設(shè)置
NewUser.SetPassword ( PassWord ) '帳號密碼
NewUser.FullName = FullName '帳號全名
NewUser.Description = Info '帳號說明
NewUser.UserFlags = &H10000 xor &H0040 '&H20000(使用者下次登入時須變更密碼) &H0040(使用者不得變更密碼) &H10000(密碼永久正確) &H0002(帳戶暫時停用)
NewUser.SetInfo
Wscript.echo "帳號"&UserName&"創(chuàng)建成功!"
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

程序完,你只要把上面的程序保存在以 *.vbs windows目錄下,就可以直接執(zhí)行了,
上面用到了一個xcacls的修改NTFS權(quán)限的小程序,您可以從微軟官方網(wǎng)站下載,你也可以訪問http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/xcacls-o.asp下載安裝既可。
另外部分見IIS服務(wù)器備份轉(zhuǎn)移解決方案(二)

相關(guān)文章

最新評論