IIS 服务器备份转移实现方法_win服务器

原创文章:欢迎转载,转载时请保留作者名及出处
作者:jacksonluo
一:IIS的服务器前期配置(其他的安全就不提了) (以 freeshare.com.cn为例 )
1.创建该域的(freeshare.com.cn)计算机用户名,并设置一个安全密码
2.创建该域的目录文件夹如(D:\Inetpub\freeshare.com.cn)
3.设置目录访问权限,freeshare.com.cn对该目录完全控制(提供匿名用户访问该网站)
4.创建一个该域名的描述(公司名) 的单独应用进程池,为每一个虚拟主机创建独立的应用程序进程池,保个别网站的问题不会影响整台服务器的运行。创建进程池时可以单独设定用户名和密码并设置CPU,连接数等。这里采用的是默认的。
5.创建一个虚拟主机,并选择上面所创建的应用进程池,在目录安全性中选择匿名用户freeshare.com.cn,并设置与计算机创建freeshare.com.cn用户名的密码一致,必须一致,否则无法访问该网站。
OK,这个就对每个虚拟主机要做的,那么这些是不是需要全部的人工的去完成呢?答案是否定的,WINDOWS下也可以实现脚本编程哦,(呵呵我原来也是不知道的)
那么即然可以不用去手工完成,用什么呢?用VBSCRIPT脚本吧。
二:用脚本完成上述创建虚拟主机的动作
保存为createsiglewebsite.vbs

复制代码 代码如下:

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

程序完,你只要把上面的程序保存在以 *.vbs windows目录下,就可以直接执行了,

上面用到了一个xcacls的修改NTFS权限的小程序,您可以从微软官方网站下载,你也可以访问http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/xcacls-o.asp下载安装既可。
另外部分见IIS服务器备份转移解决方案(二)

时间: 2024-10-12 17:39:53

IIS 服务器备份转移实现方法_win服务器的相关文章

IIS+PHP+MYSQL安装配置方法_win服务器

一.安装php 1) 在D盘新建一个名为PHP的文件夹,解压缩php-5.2.0-win32.zip到D:\PHP. 2) 在D:\PHP文件夹下找到php.ini-dist文件,将其复制一份以做备份.将复制后的文件更名为php-ini. 3) 在php.ini文件中找到以下行:extension_dir = "./"(注:该行指定PHP查找扩展的位置),编辑该行,如下所示: extension_dir = "D:/PHP/ext"(注:不要这里用的是斜杠/而不是反

访问 IIS 元数据库失败解决问题的方法_win服务器

解决方法如下: 1.依次点击"开始"-"运行". 2.在"运行"栏内输入 "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i "(不含引号),然后点"确定"按钮. 3.出现的cmd窗口中显示"开始安装ASP.NET XXX"等内容,等待这个窗口自动关闭. 好了,到这里一般问题就解决了,如果尚未解决请参考下

关于访问IIS元数据库失败的解决方法_win服务器

解决方法如下: 1.依次点击"开始"-"运行". 2.在"运行"栏内输入 "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i "(不含引号),然后点"确定"按钮. 3.出现的cmd窗口中显示"开始安装ASP.NET XXX"等内容,等待这个窗口自动关闭. 好了,到这里一般问题就解决了,如果尚未解决请参考下

详细图示关闭IIS的默认脚本映射,以提高服务器安全性的设置方法_win服务器

首先打开IIS管理器,右键点击网站后,选择属性:弹出属性设置窗口如下,选择"主目录"下的"配置"按钮:   <?XML:NAMESPACE PREFIX = O />     在新开的配置窗口中,我们可以看到各种后缀名,这些都是IIS可以执行的文件名称后缀,名称后面的栏目中说明了这种类型的文件,会由那个组件来解析执行它.       我们选种.CEX这个项目,点击删除按钮     在新弹出的对话框中选择是,则该类型的脚本映射被删除,IIS将不会再用asp

找出IIS中隐藏网站的方法_win服务器

打开IIS的管理器->选定一个文件夹->点击鼠标右键->选择"资源管理器",切换到网站的根目录,新建一个文件夹这里取名为"liuqq",接着我们到"x:\windows\system32" (当然这个目录是任意的,其中的x代表系统盘)那里新建一个文件夹取名"liuhack",回到IIS的管理器刷新就会看到,"liuqq"这个目录.选中"liuqq"目录,点击右键->

详解iis httpd.ini中IIS图片防盗链的方法_win服务器

一.创建目录 e:Rewrite 把 Rewrite 下的四个文件(httpd.ini .httpd.parse.errors.mtbnotif.dll.Rewrite.dll)上传到这里. 二.设置IIS属性,选择网站属性,到ISAPI筛选器, 关闭属性对话框. 再次查看网站属性,到ISAPI筛选器 如果看到状态为向上的绿色箭头,就说明Rewrite模块安装成功了. 点添加,在名称中输入rewrite,可执行文件选择刚才解压后的文件Rewrite.dll,点确定:再点确定, 三.修改 e:Re

Winxp IIS5.1出现HTTP500内部服务器错误的解决方法_win服务器

解决办法: [1]:检查你的DTC服务(全名:Distributed Transaction Coordinator)是否可以正常启动,如果正常的话,请你跳过此步骤:如果出错,无法正常启动,请在开始菜单的运行中 运行:msdtc -resetlog,以创建 日志文件 [2]:在CMD下执行以下命令: 复制代码 代码如下: cd %windir%\system32\inetsrv rundll32 wamreg.dll, CreateIISPackage regsvr32 asptxn.dll

IIS 服务器的备份和移植技巧_win服务器

一.IIS的备份 这里所谓的备份,是指将指定IIS服务器的WWW或FTP站点中全部设置信息复制到一个mdb数据库中,在需要时再将此数据库回存即可.在此我们需要用到的软件是IIS Export Utility Version 3.0(以下简称IISEU),比如备份当前计算机的IIS服务器,具体操作步骤如下: 1.在IISEU的主窗口中,在左边"Import from"(来自于)下的文字框中输入"localhost"(也可以是本机的计算机名或IP地址),之后单击文字框右

IIS网站属性里,只有(全部未分配),找不到IP地址的解决方法_win服务器

今天配置服务器的时候发现有台服务器,iis里面没有ip地址 如上图所示 亲测的解决方法: 修改下计算机名称,然后重启服务器就可以了. 具体步骤如下: 我的电脑 -> 属性 -> 计算机名 点击更改 然后保存 提示重启机器.