ADSI類,控制IIS
作者:佚名 時間:2012-04-13 分享到:
三年前寫的一個ADSI類,控制IIS的,現在拿出來和大家分享吧
今天整理硬盤的時候發現這個可能對大家還比較有用
現在沒時間完善了,不然你一定可以做個比藍芒更牛的虛擬主機管理系統
關于SERV-U的密碼其實就是MD5的前兩位在動態相加
MS SQL有添加用戶和數據庫的組件,直接調用就行
企業郵局你可以用WebEasyMail,ASP開發的,兼容性好嘛,呵呵
想提高運行效率就用VB編譯成DLL組件吧
作者:沈家峰 QQ:5959344 MSN:bigbird998@hotmail.com 有外包項目請找我,C#/asp.net/asp+MS SQL/oracle/access/XML/TXT都可以
<%
Class IISManager
Private strServerName '服務器名稱
Private intIndex '站點序號(ID號)
Private strServerComment '站點說明
Private strServerBindings '站點主機頭
Private strPath '站點目錄路徑
Private strDefaultDoc '默認文檔
Private intMaxConnections '最大連接數
Private intServerSize '站點性能,0-低(小于10000),1-中(小于100000),2-高(超過100000
)
Private intMaxBandwidth '網絡帶寬最大使用量,單位(KB) ,-1表示不限制
Private intConnectionTimeout '連接超時秒數,單位(秒)
Private isEnableDefaultDoc '
Private isAccessRead '允許讀
Private isAccessWrite '允許寫
Private isEnableDirBrowsing '允許目錄瀏覽
Private isAccessScript '執行許可
Private isAccessSource '允許腳本訪問
Private isAccessExecute '允許執行應用程序
Private isScriptErrorSentToBrowser '發生錯誤時,是否發送自定信息到客戶端
Private strScriptErrorMessage '發生錯誤時發給客戶端的信息
Private intSessionTimeout 'Session過期時間,單位(分鐘)
'構造函數
Sub Class_Initialize()
strServerName = "localhost"
intIndex = 1
strServerComment = "新建站點"
strServerBindings=":80:"
strPath = "c:\inetpub\wwwroot"
strDefaultDoc = "default.htm,default.asp,index.htm,index.asp"
intMaxConnections = 50
intServerSize = 1
intMaxBandwidth = -1
intConnectionTimeout = 600
isEnableDefaultDoc = true
isAccessRead = true
isAccessWrite = false
isEnableDirBrowsing = false
isAccessScript = false
isAccessSource = false
isAccessExecute = false
isScriptErrorSentToBrowser = false
strScriptErrorMessage = "處理 URL 時服務器上出錯。請和系統管理員聯絡。"
intSessionTimeout = 20
End Sub
'定義屬性
'-----------------------------------------------
Public Property Let ServerName(strValue)
strServerName=strValue
End Property
Public Property Get ServerName
ServerName=strServerName
End Property
'-----------------------------------------------
'-----------------------------------------------
Public Property Let SiteIndex(intValue)
intIndex=intValue
End Property
Public Property Get SiteIndex
SiteIndex=intIndex
End Property
'-----------------------------------------------
'-----------------------------------------------
Public Property Let ServerComment(strValue)
strServerComment=strValue
End Property
Public Property Get ServerComment
ServerComment=strServerComment
End Property
'-----------------------------------------------
'-----------------------------------------------
Public Property Let ServerBindings(strValue)
strServerBindings=strValue
End Property
'-----------------------------------------------
'-----------------------------------------------
Public Property Let RootPath(strValue)
strPath=strValue
End Property
Public Property Get RootPath
RootPath=strPath
End Property
'-----------------------------------------------
'-----------------------------------------------
Public Property Let DefaultDoc(strValue)
strDefaultDoc=strValue
End Property
Public Property Get DefaultDoc
DefaultDoc=strDefaultDoc
End Property
'-----------------------------------------------
'-----------------------------------------------
Public Property Let MaxConnections(strValue)
intMaxConnections=strValue
End Property
Public Property Get MaxConnections
MaxConnections=intMaxConnections
End Property
'-----------------------------------------------
'-----------------------------------------------
Public Property Let ServerSize(strValue)
intServerSize=strValue
End Property
Public Property Get ServerSize
ServerSize=intServerSize
End Property
'-----------------------------------------------
'-----------------------------------------------
Public Property Get MaxBandwidth
MaxBandwidth=intMaxBandwidth
End Property
'-----------------------------------------------
'-----------------------------------------------
Public Property Let ServerConnectionTimeout(strValue)
intConnectionTimeout=strValue
End Property
Public Property Get ServerConnectionTimeout
ServerConnectionTimeout=intConnectionTimeout
End Property
'-----------------------------------------------
'-----------------------------------------------
Public Property Let EnableDefaultDoc(boolValue)
isEnableDefaultDoc=boolValue
End Property
Public Property Get EnableDefaultDoc
EnableDefaultDoc=isEnableDefaultDoc
End Property
'-----------------------------------------------
'-----------------------------------------------
Public Property Let AccessRead(boolValue)
isAccessRead=boolValue
End Property
Public Property Get AccessRead
AccessRead=isAccessRead
End Property
'-----------------------------------------------
'-----------------------------------------------
Public Property Let AccessWrite(boolValue)
isAccessWrite=boolValue
End Property
Public Property Get AccessWrite
AccessWrite=isAccessWrite
End Property
'-----------------------------------------------
'-----------------------------------------------
Public Property Let EnableDirBrowsing(boolValue)
isEnableDirBrowsing=boolValue
End Property
Public Property Get EnableDirBrowsing
EnableDirBrowsing=isEnableDirBrowsing
End Property
'-----------------------------------------------
'-----------------------------------------------
Public Property Let AccessScript(boolValue)
isAccessScript=boolValue
End Property
Public Property Get AccessScript
AccessScript=isAccessScript
End Property
'-----------------------------------------------
'-----------------------------------------------
Public Property Let AccessSource(boolValue)
isAccessSource=boolValue
End Property
Public Property Get AccessSource
AccessSource=isAccessSource
End Property
'-----------------------------------------------
'-----------------------------------------------
Public Property Let AccessExecute(boolValue)
isAccessExecute=boolValue
End Property
Public Property Get AccessExecute
AccessExecute=isAccessExecute
End Property
'-----------------------------------------------
'-----------------------------------------------
Public Property Get ScriptErrorSentToBrowser
ScriptErrorSentToBrowser=isScriptErrorSentToBrowser
End Property
'-----------------------------------------------
'-----------------------------------------------
Public Property Get ScriptErrorMessage
ScriptErrorMessage=strScriptErrorMessage
End Property
'-----------------------------------------------
'-----------------------------------------------
Public Property Get SessionTimeout
SessionTimeout=intSessionTimeout
End Property
'-----------------------------------------------
'****************************************************************************
'定義方法/過程/函數
'****************************************************************************
'----------------------------------------------------------------------------
'# 函數:DelWebSite()
'# 描述:刪除指定的站點
'# 返回:成功返回0,失敗返回錯誤碼
'# 作者:沈家峰 QQ:5959344 MSN:bigbird998@hotmail.com 有外包項目請找我,C#/asp.net/asp+MS SQL/oracle/access/XML/TXT都可以
'# 日期:2004.10.19
'----------------------------------------------------------------------------
Public Function DelWebSite()
On Error Resume Next
Set WWWService = GetObject("IIS://" & strServerName & "/W3SVC")
WWWService.Delete "IISWebServer", Siteindex
If (Err.Number <> 0) Then' 是否出錯
DelWebSite = "無法刪除站點,錯誤碼:" & Err.Number
Exit Function
End If
DelWebSite = 0
End Function
'----------------------------------------------------------------------------
'# 函數:CreateWebSite()
'# 描述:創建WEB站點
'# 返回:成功返回此站點Index,失敗返回錯誤碼
'# 作者:沈家峰 QQ:5959344 MSN:bigbird998@hotmail.com 有外包項目請找我,C#/asp.net/asp+MS SQL/oracle/access/XML/TXT都可以
'# 日期:2004.10.19
'----------------------------------------------------------------------------
Public Function CreateWebSite()
On Error Resume Next
Dim ServiceObj,WebSiteObj,VDirObj
Set ServiceObj = GetObject("IIS://" & strServerName & "/W3SVC")' 首先創建一個服務實例
Dim wNumber '新WEB站點Index
WNumber=1
Do While IsObject(ServiceObj.GetObject("IIsWebServer",WNumber))
If Err.number<>0 Then
Err.Clear()
Exit Do
End If
WNumber=WNumber+1
Loop
Set WebSiteObj = ServiceObj.Create("IIsWebServer", WNumber)' 然后創建一個WEB服務器
If (Err.Number <> 0) Then' 是否出錯
CreateWebSite = "錯誤: 創建Web服務器的ADSI操作失敗,原因可能是操作沒有獲得操作權限或者IIS5.0已經損壞
!"
Exit Function
End If
'接著配置服務器
WebSiteObj.ServerComment = strServerComment
arrServerBindings = Array(0)
arrServerBindings(0)=strServerBindings
WebSiteObj.ServerBindings = arrServerBindings
WebSiteObj.ServerSize = intServerSize
WebSiteObj.MaxConnections = intMaxConnections
WebSiteObj.ConnectionTimeout = intConnectionTimeout
WebSiteObj.EnableDefaultDoc = isEnableDefaultDoc
WebSiteObj.DefaultDoc = strDefaultDoc
WebSiteObj.ServerState = 2
' 提交信息
WebSiteObj.SetInfo
' 最后,建立虛擬目錄
Set VDirObj = WebSiteObj.Create("IIsWebVirtualDir", "ROOT")
If (Err.Number <> 0) Then' 是否出錯
CreateWebSite= "錯誤: 創建虛擬目錄的ADSI操作失敗!"
Exit Function
End If
' 配置虛擬目錄
VDirObj.Path = strPath
VDirObj.MaxBandwidth = intMaxBandwidth
VDirObj.SessionTimeout = intSessionTimeout
DirObj.ScriptErrorSentToBrowser = isScriptErrorSentToBrowser
VDirObj.ScriptErrorMessage= strScriptErrorMessage
VDirObj.AccessRead = isAccessRead
VDirObj.AccessWrite = isAccessWrite
VDirObj.EnableDirBrowsing = isEnableDirBrowsing
VDirObj.EnableDefaultDoc = isEnableDefaultDoc
VDirObj.AccessScript=isAccessScript
VDirObj.AccessSource=isAccessSource
VDirObj.AccessExecute=isAccessExecute
VDirObj.AppCreate = 2
VDirObj.AppFriendlyName="默認應用程序"
VDirObj.SetInfo
'WebSiteObj.Start
'If (Err.Number <> 0) Then ' Error!
'CreateWebSite = "錯誤: 站點已經創建,但無法自動啟動,請人工啟動!"
'Err.Clear()
'Exit Function
'End If
Set VDirObj=Nothing
Set ServerObj=Nothing
Set ServiceObj=Nothing
CreateWebSite=wNumber
End Function
'----------------------------------------------------------------------------
'# 函數:UpdateWebSite()
'# 描述:修改指定的站點
'# 返回:成功返回0,失敗返回錯誤碼
'# 作者:沈家峰 QQ:5959344 MSN:bigbird998@hotmail.com 有外包項目請找我,C#/asp.net/asp+MS SQL/oracle/access/XML/TXT都可以
'# 日期:2004.10.19
'----------------------------------------------------------------------------
Public Function UpdateWebSite()
On Error Resume Next
Dim ServiceObj,WebSiteObj,VDirObj
Set ServiceObj = GetObject("IIS://" & strServerName & "/W3SVC")' 首先創建一個服務實例
Set WebSiteObj=ServiceObj.GetObject("IIsWebServer",intIndex)
If (Err.Number <> 0) Then' 是否出錯
UpdateWebSite = "錯誤: 打開WEB站點失敗!"
Exit Function
End If
'修改站點屬性
'----------------------------------------------
WebSiteObj.ServerComment = strServerComment
WebSiteObj.ServerSize = intServerSize
WebSiteObj.MaxConnections = intMaxConnections
WebSiteObj.ConnectionTimeout = intConnectionTimeout
WebSiteObj.EnableDefaultDoc = isEnableDefaultDoc
WebSiteObj.DefaultDoc = strDefaultDoc
' 提交信息
WebSiteObj.SetInfo
If (Err.Number <> 0) Then' 是否出錯
UpdateWebSite = "錯誤: 修改WEB站點失敗,請檢查屬性設置是否正確!"
Exit Function
End If
Set VDirObj = WebSiteObj.GetObject("IIsWebVirtualDir", "ROOT")
If (Err.Number <> 0) Then' 是否出錯
UpdateWebSite = "錯誤: WEB站點可能已經損壞,無法進行操作!"
Exit Function
End If
' 配置虛擬目錄
VDirObj.Path = strPath
VDirObj.AccessRead = isAccessRead
VDirObj.AccessWrite = isAccessWrite
VDirObj.EnableDirBrowsing = isEnableDirBrowsing
VDirObj.EnableDefaultDoc = isEnableDefaultDoc
VDirObj.AccessScript=isAccessScript
VDirObj.AccessSource=isAccessSource
VDirObj.AccessExecute=isAccessExecute
VDirObj.SetInfo
If (Err.Number <> 0) Then' 是否出錯
UpdateWebSite = "錯誤: 修改WEB目錄配置失敗,請檢查屬性設置是否正確!"
Exit Function
End If
Set ServiceObj=nothing
Set WebSiteObj=Nothing
UpdateWebSite=0
End Function
'----------------------------------------------------------------------------
'# 函數:GetInfo()
'# 描述:取出站點屬性
'# 返回:成功返回0,失敗返回錯誤碼
'# 作者:沈家峰 QQ:5959344 MSN:bigbird998@hotmail.com 有外包項目請找我,C#/asp.net/asp+MS SQL/oracle/access/XML/TXT都可以
'# 日期:2004.10.19
'----------------------------------------------------------------------------
Public Function GetInfo(test)
On Error Resume Next
Dim ServiceObj,WebSiteObj,VDirObj
Set ServiceObj = GetObject("IIS://" & strServerName & "/W3SVC")' 首先創建一個服務實例
Set WebSiteObj=ServiceObj.GetObject("IIsWebServer",test)
If (Err.Number <> 0) Then' 是否出錯
GetInfo = "錯誤: 打開WEB站點失敗!"
Exit Function
End If
'取出站點屬性
WebSiteObj.GetInfo
strServerComment = WebSiteObj.ServerComment
intServerSize = WebSiteObj.ServerSize
intMaxConnections = WebSiteObj.MaxConnections
intConnectionTimeout = WebSiteObj.ConnectionTimeout
isEnableDefaultDoc = WebSiteObj.EnableDefaultDoc
strDefaultDoc = WebSiteObj.DefaultDoc
Set VDirObj = WebSiteObj.GetObject("IIsWebVirtualDir", "ROOT")
If (Err.Number <> 0) Then' 是否出錯
GetInfo = "錯誤: WEB站點可能已經損壞,無法進行操作!"
Exit Function
End If
'獲取目錄屬性
VDirObj.GetInfo
strPath = VDirObj.Path
'reponse.write strpath
intMaxBandwidth = VDirObj.MaxBandwidth
'reponse.write intMaxBandwidth
intSessionTimeout = VDirObj.SessionTimeout
isScriptErrorSentToBrowser = VDirObj.ScriptErrorSentToBrowser
strScriptErrorMessage = VDirObj.ScriptErrorMessage
isAccessRead = VDirObj.AccessRead
isAccessWrite = VDirObj.AccessWrite
isEnableDirBrowsing = VDirObj.EnableDirBrowsing
isEnableDefaultDoc = VDirObj.EnableDefaultDoc
isAccessScript = VDirObj.AccessScript
isAccessSource = VDirObj.AccessSource
isAccessExecute = VDirObj.AccessExecute
Set ServiceObj=nothing
Set WebSiteObj=Nothing
Set VDirObj=Nothing
GetInfo = 0
End Function
'----------------------------------------------------------------------------
'# 函數:SetHostHeader()
'# 描述:設置主機頭
'# 返回:成功返回0,失敗返回錯誤碼
'# 作者:沈家峰 QQ:5959344 MSN:bigbird998@hotmail.com 有外包項目請找我,C#/asp.net/asp+MS SQL/oracle/access/XML/TXT都可以
'# 日期:2004.10.19
'----------------------------------------------------------------------------
Public Function SetHostHeader(strHostHeader)
On Error Resume Next
Dim ServiceObj,WebSiteObj,VDirObj
Set ServiceObj = GetObject("IIS://" & strServerName & "/W3SVC")' 首先創建一個服務實例
Set WebSiteObj=ServiceObj.GetObject("IIsWebServer",intIndex)
If (Err.Number <> 0) Then' 是否出錯
SetHostHeader = "錯誤: 打開WEB站點失敗!"
Exit Function
End If
arrServerBindings = Array(0)
arrServerBindings(0)=strHostHeader
WebSiteObj.ServerBindings = arrServerBindings
' 提交信息
WebSiteObj.SetInfo
If (Err.Number <> 0) Then' 是否出錯
SetHostHeader = "錯誤: 設置主機頭失敗,請檢查屬性設置是否正確!"
Exit Function
End If
Set ServiceObj=nothing
Set WebSiteObj=Nothing
SetHostHeader = 0
End Function
'----------------------------------------------------------------------------
'# 函數:StopWebSite()
'# 描述:停止指定的站點
'# 返回:成功返回0,失敗返回錯誤碼
'# 作者:沈家峰 QQ:5959344 MSN:bigbird998@hotmail.com 有外包項目請找我,C#/asp.net/asp+MS SQL/oracle/access/XML/TXT都可以
'# 日期:2004.10.19
'----------------------------------------------------------------------------
Public Function StopWebSite()
On Error Resume Next
Dim ServiceObj,WebSiteObj,VDirObj
Set ServiceObj = GetObject("IIS://" & strServerName & "/W3SVC")' 首先創建一個服務實例
Set WebSiteObj=ServiceObj.GetObject("IIsWebServer",intIndex)
If (Err.Number <> 0) Then' 是否出錯
StopWebSite = "錯誤: 打開WEB站點失敗!"
Exit Function
End If
'停止站點
'----------------------------------------------
WebSiteObj.ServerState = 4
' 提交信息
WebSiteObj.SetInfo
If (Err.Number <> 0) Then' 是否出錯
StopWebSite = "錯誤: 無法停止站點!"
Exit Function
End If
Set ServiceObj=nothing
Set WebSiteObj=Nothing
StopWebSite=0
End Function
'----------------------------------------------------------------------------
'# 函數:StartWebSite()
'# 描述:停止指定的站點
'# 返回:成功返回0,失敗返回錯誤碼
'# 作者:沈家峰 QQ:5959344 MSN:bigbird998@hotmail.com 有外包項目請找我,C#/asp.net/asp+MS SQL/oracle/access/XML/TXT都可以
'# 日期:2004.10.19
'----------------------------------------------------------------------------
Public Function StartWebSite()
On Error Resume Next
Dim ServiceObj,WebSiteObj,VDirObj
Set ServiceObj = GetObject("IIS://" & strServerName & "/W3SVC")' 首先創建一個服務實例
Set WebSiteObj=ServiceObj.GetObject("IIsWebServer",intIndex)
If (Err.Number <> 0) Then' 是否出錯
StartWebSite = "錯誤: 打開WEB站點失敗!"
Exit Function
End If
'停止站點
'----------------------------------------------
WebSiteObj.ServerState = 2
' 提交信息
WebSiteObj.SetInfo
If (Err.Number <> 0) Then' 是否出錯
StartWebSite = "錯誤: 無法停止站點!"
Exit Function
End If
Set ServiceObj=nothing
Set WebSiteObj=Nothing
StartWebSite=0
End Function
End Class
%>
<%
Dim objIISManager
Set objIISManager=new IISManager
a=GetInfo(9)
response.write a
'創建站點
objIISManager.ServerName="localhost"
objIISManager.ServerBindings="192.168.0.1:8004:www.jnnic.com" '格式--IP地址:端口號:域名
response.write objIISManager.CreateWebSite()
'讀站點信息
'objIISManager.SiteIndex=50
'objIISManager.GetInfo()
'response.write objIISManager.SiteIndex
'修改站點
'objIISManager.SiteIndex=3
'objIISManager.GetInfo()
'objIISManager.RootPath="g:\temp\IIS"
'response.write objIISManager.UpdateWebSite()
'修改主機頭
'response.write objIISManager.SetHostHeader("192.168.1.34:80:jnnic.com")
'停止站點
'response.write objIISManager.StopWebSite()
'啟動站點
'response.write objIISManager.StartWebSite()
%>