使用ASP在IIS建立WEB網站的函數

來源:互聯網
上載者:User

程式碼:

'=========================================================='
函數介紹:建立WebSite
'本函數使用ADSI,需要Administrators組使用者權限
'函數名稱:CreateWebSite(Computer,IPAddr,PortNum,HostName,WebSiteDirectory,LogDirectory,WebSiteInfo,
GuestUserName,GuestUserPass,StartOrStop)
'用法:CreateWebSite 電腦名稱(一搬為LocalHost或127.0.0.1),網站IP地址,連接埠號碼,主機名稱,網站根目錄,,LOG檔案的目錄網站說明,網站訪問時所使用的帳號,網站訪問時所用帳號的口令,是否啟動網站
'例:CreateWebSite "LocalHost","127.0.0.123","80","www.test.net","E:UserDataUserNum001",
"E:UserDataUserNum001LogFiles","CnKnow.Com","IUSR_Num001_test.net",
"abc888",True
'==================================================
Function CreateWebSite(Computer,IPAddr,PortNum,HostName,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://" & Computer & "/w3svc")
If Err.Number <> 0 Then '顯示錯誤提示
response.write "無法開啟: "&"IIS://" & Computer & "/w3svc"
response.end
End If
'檢測是否有設定相同IP地址、連接埠及主機名稱的網站存在
BindingString = IPAddr & ":" & PortNum & ":" & HostName
For Each WebServer in w3svc
If WebServer.Class = "IIsWebServer" Then
Bindings = WebServer.ServerBindings
If BindingString = Bindings(0) Then
response.write "IP地址衝突:" & IPAddr & ",請檢測IP地址!."
Exit Function
End If
End If
Next

'確定一個不存在的網站編號做為建立網站編號,系統預設WebSite網站編號為1,因此從2開始
SiteNum=2
bDone = False
While (Not bDone)
Err.Clear
Set SiteObj = GetObject("IIS://"&Computer&"/w3svc/"&SiteNum) '載入指定網站
If (Err.Number = 0) Then
'response.write " Step_1網站"&SiteNum&"存在"
SiteNum = SiteNum + 1
Else
'response.write " Step_1網站"&SiteNum&"不存在"
Err.Clear
Set NewWebServer = w3svc.Create("IIsWebServer",SiteNum) '建立指定網站
If (Err.Number <> 0) Then
'response.write " Step_2網站"&SiteNum&"建立失敗"
SiteNum = SiteNum + 1
Else
'response.write " Step_2網站"&SiteNum&"建立成功"
bDone = True
End If
End If
If (SiteNum > 50) Then '伺服器最大建立網站數
response.write "超出伺服器最大建立網站數,正在建立的網站的序號為: "&SiteNum&"."
response.end
End If
Wend

'進行網站基本配置
NewBindings = Array(0)
NewBindings(0) = BindingString
NewWebServer.ServerBindings = NewBindings
NewWebServer.ServerComment= WebSiteInfo
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"
NewWebServer.LogFileDirectory= LogDirectory
NewWebServer.SetInfo
Set NewDir = NewWebServer.Create("IIsWebVirtualDir", "ROOT")
NewDir.Path = WebSiteDirectory
NewDir.AccessRead = true
NewDir.AppFriendlyName = "應用程式" & WebSiteInfo
NewDir.AppCreate True
NewDir.AccessScript = True
Err.Clear
NewDir.SetInfo
If (Err.Number <> 0) Then
response.write "主目錄建立時出錯."
response.end
End If
If StartOrStop = True Then
Err.Clear
Set NewWebServer = GetObject("IIS://" & Computer & "/w3svc/" & SiteNum)
NewWebServer.Start
If Err.Number <> 0 Then
response.write "啟動網站時出錯!"
response.end
Err.Clear
End If
End If
response.write "網站建立成功,網站編號為:"& SiteNum &" ,網域名稱為:"& HostName
End Function

使用ASP設定指定網站CPU最大使用程度
程式碼:

'=================================================
'函數介紹:設定指定網站CPU最大使用程度
'本函數使用ADSI,需要Administrators組使用者權限
'函數名稱:SetCPULimitVar (Computer,SiteNum,LimitVar)
'用法:SetCPULimitVar 電腦名稱,網站編號,最大限制值(100=1%,1000=10%)
'例:SetCPULimitVar "LocalHost","2","2000"
'=================================================
Function SetCPULimitVar(Computer,SiteNum,LimitVar)
Set MyObj001 = GetObject("IIS://"&Computer&"/W3SVC/"&SiteNum)
'設定啟用CPU限制
MyObj001.CpuLimitsEnabled = True
'設定限制使用額度值
MyObj001.CpuLimitLogEvent=LimitVar
MyObj001.setinfo
Set MyObj001=Nothing
End Function

使用ASP啟動/停止指定WEB網站

程式碼:

'=========================================================
'函數介紹:使用ASP啟動/停止指定WEB網站
'本函數使用ADSI,需要Administrators組使用者權限
'函數名稱:AdminWebSite(Computer,WebSiteNum,DoWhat)
'用法:AdminWebSite(電腦名稱,網站編號,啟動/停止)
'例:啟動127.0.0.1電腦上網站編號為1的網站
'AdminWebSite "127.0.0.1","1",1
'例:停止127.0.0.1電腦上網站編號為1的網站
'AdminWebSite "127.0.0.1","1",0
'=======================================================
Function AdminWebSite(Computer,WebSiteNum,DoWhat)
On Error Resume Next
Set objServer = GetObject("IIS://" & Computer & "/W3SVC/" & WebSiteNum)
If Err.Number <> 0 Then
Response.Write Now & ". 錯誤碼: " & Hex(Err)& " - " & "無法開啟指定網站<br>"
End If
if Dowhat=1 then
'使用Start啟動網站
objServer.Start
If Err.Number <> 0 Then
Response.Write "無法啟動指定Web網站<br>"
else
Response.Write "已經啟動指定Web網站<br>"
End If
elseif DoWhat=0 then
'使用Stop停止網站
objServer.Stop
If Err.Number <> 0 Then
Response.Write "無法停止指定Web網站<br>"
else
Response.Write "已經停止指定Web網站<br>"
End If
end if
End Function

使用ASP列出伺服器WEB網站資訊

程式碼:

'=====================================================
'函數介紹:列出當前伺服器WEB網站資訊
'本函數使用ADSI,需要Administrators組使用者權限
'函數名稱:ListWebSite (Computer,Num)
'用法:ListWebSite (電腦名稱,顯示網站數量)
'例:顯示127.0.0.1電腦上1000個網站資訊
'ListWebSite "127.0.0.1","1000"
'====================================================
Function ListWebSite(Computer,Num)
On Error Resume Next
Set SiteObj = GetObject("IIS://"&Computer&"/w3svc/"&i)
for i=0 to Num
Err.Clear
if Err.Number=0 then
response.write "<p><b>以下顯示為電腦:"&Computer&"上所有網站資訊</b></p>"
ShowWebSite = SiteObj.Get("ServerBindings") '獲得網站IP地址:連接埠:主機頭
Info=split(ShowWebSite(0),":")
response.write "網站編號:"&i&"<br>"
response.write "網站IP地址:"&Info(0)&"<br>"
response.write "網站連接埠:"&Info(1)&"<br>"
response.write "網站主機頭:"&Info(2)&"<br><br>"
end if
next
set SiteOjb=nothing
End Function

使用ASP刪除指定IIS網站

程式碼:

'======================================================
'函數介紹:刪除指定IIS網站
'本函數使用ADSI,需要Administrators組使用者權限
'函數名稱:DelWebSite (Computer,SiteNum)
'用法:DelWebSite 電腦名稱,網站編號
'例:DelWebSite "127.0.0.1","2"
'======================================================
Function DelWebSite(Computer,SiteNum)
Set W3SVC = GetObject("IIS://"&Computer&"/w3svc")
W3SVC.delete "IIsWebServer",SiteNum
response.write "刪除成功!"
End Function

通過ASP管理NT帳號

程式碼:

'=======================================================
'函數介紹:通過ASP管理NT帳號
'本函數使用ADSI,需要Administrators組使用者權限
'====================================================
'填加使用者
'函數用法:AddUser(Computer,UserName,PassWord,FullName,Info)
'參數:電腦名稱,帳號名稱,帳號密碼,帳號全名,帳號說明
'例:AddUser "127.0.0.1","Test","Test","測試管理員帳號","本帳號通過ASP填加"
'修改指定使用者基本資料
'函數用法:EditUser(Computer,UserName,OldPassWord,PassWord,FullName,Info)
'參數:電腦名稱,帳號名稱,帳號密碼,帳號全名,帳號說明
'例:EditUser "127.0.0.1","Test","Test2","測試管理員帳號修改","本帳號通過ASP修改過"
'刪除指定使用者
'函數用法:DelUser(Computer,UserName)
'參數:電腦名稱,使用者名稱'
'例:DelUser "127.0.0.1","Test"
========================================================
Function AddUser(Computer,UserName,PassWord,FullName,Info)
'執行建立帳號命令
Set ComputerObj = GetObject("WinNT://"&Computer)
Set NewUser = ComputerObj.Create( "User" , UserName )
NewUser.SetInfo
'進行帳號設定
NewUser.SetPassword ( PassWord ) '帳號密碼
NewUser.FullName = FullName '帳號全名
NewUser.Description = Info '帳號說明
NewUser.UserFlags = &H10000 '&H20000(使用者下次登入時須變更密碼) &H0040(使用者不得變更密碼) &H10000(密碼永久正確) &H0002(帳戶暫時停用)
NewUser.SetInfo
response.write "帳號"&UserName&"建立成功!"
Set ComputerObj=nothing
End Function

Function EditUser(Computer,UserName,OldPassWord,PassWord,FullName,Info)
'讀取使用者資訊
Set ChangeUserObj = GetObject("WinNT://"&Computer&"/"&UserName&",User")
'修改帳號密碼
if PassWord<>"" then
ChangeUserObj.SetPassword PassWord
response.write "帳號密碼修改成功!<br>"
end if
'修改帳號全名
if FullName<>"" then
UserFullName = ChangeUserObj.get("FullName")
ChangeUserObj.FullName = FullName
ChangeUserObj.SetInfo
response.write "帳號全名修改成功!<br>"
end if
'修改帳號說明
if Info<>"" then
UserFullName = ChangeUserObj.get("Description")
ChangeUserObj.Description = Info
ChangeUserObj.SetInfo
response.write "帳號說明修改成功!<br>"
end if
Set ChangeUserObj=nothing
End Function

Function DelUser(Computer,UserName)
Set DelUserObj = GetObject("WinNT://"&Computer&"/"&UserName)
If Err = &H800401E4 Then
Response.Write "使用者"&UserName&"不存在"
Response.End
End If
Set DelObj = GetObject(DelUserObj.Parent)
DelObj.Delete "User", DelUserObj.Name
Set DelUserObj = Nothing
Set DelObj = Nothing
Response.Write "刪除成功"
End Function

使用ASP控制指定網站解析指令碼語言函數

程式碼:

Function AdminAegis(Computer,SiteNum)
Set IIsWebServiceObj = GetObject("IIS://"&Computer&"/W3SVC/"&SiteNum)
dim Aegis(1)
Aegis(0)=".asp,C:WINNTsystem32inetsrvasp.dll,5,GET,HEAD,POST,TRACE"
'Aegis(1)=".aspx,C:WINNTMicrosoft.NETFrameworkv1.1.4322aspnet_isapi.dll,1,GET,HEAD,
POST,DEBUG"
'解析其它檔案請同樣使用Aegis(Num)=""這種格式,記得要將dim Aegis(Num)定義
'.htw,C:WINNTsystem32webhits.dll,3,GET,HEAD,POST
'.ida,C:WINNTsystem32idq.dll,7,GET,HEAD,POST
'.idq,C:WINNTsystem32idq.dll,7,GET,HEAD,POST
'.asp,C:WINNTsystem32inetsrvasp.dll,5,GET,HEAD,POST,TRACE
'.cer,C:WINNTsystem32inetsrvasp.dll,5,GET,HEAD,POST,TRACE
'.cdx,C:WINNTsystem32inetsrvasp.dll,5,GET,HEAD,POST,TRACE
'.asa,C:WINNTsystem32inetsrvasp.dll,5,GET,HEAD,POST,TRACE
'.idc,C:WINNTsystem32inetsrvhttpodbc.dll,5,GET,POST<br>
'.shtm C:WINNTsystem32inetsrvssinc.dll,5,GET,POST<br>
'.shtml C:WINNTsystem32inetsrvssinc.dll,5,GET,POST<br>
'.stm C:WINNTsystem32inetsrvssinc.dll,5,GET,POST<br>
'.asax C:WINNTMicrosoft.NETFrameworkv1.1.4322aspnet_isapi.dll,5,GET,HEAD,POST,
DEBUG
'.ascx,C:WINNTMicrosoft.NETFrameworkv1.1.4322aspnet_isapi.dll,5,GET,HEAD,
POST,DEBUG
'.ashx,C:WINNTMicrosoft.NETFrameworkv1.1.4322aspnet_isapi.dll,1,GET,HEAD,
POST,DEBUG
'.asmx,C:WINNTMicrosoft.NETFrameworkv1.1.4322aspnet_isapi.dll,1,GET,HEAD,
POST,DEBUG
'.aspx,C:WINNTMicrosoft.NETFrameworkv1.1.4322aspnet_isapi.dll,1,GET,HEAD,
POST,DEBUG
'.axd,C:WINNTMicrosoft.NETFrameworkv1.1.4322aspnet_isapi.dll,1,GET,HEAD,
POST,DEBUG
'.vsdisco,C:WINNTMicrosoft.NETFrameworkv1.1.4322aspnet_isapi.dll,1,GET,HEAD,
POST,DEBUG
'.rem,C:WINNTMicrosoft.NETFrameworkv1.1.4322aspnet_isapi.dll,1,GET,HEAD,
POST,DEBUG
'.soap,C:WINNTMicrosoft.NETFrameworkv1.1.4322aspnet_isapi.dll,1,GET,HEAD,
POST,DEBUG
'.config,C:WINNTMicrosoft.NETFrameworkv1.1.4322aspnet_isapi.dll,5,GET,HEAD,
POST,DEBUG
'.cs,C:WINNTMicrosoft.NETFrameworkv1.1.4322aspnet_isapi.dll,5,GET,HEAD,
POST,DEBUG
'.csproj,C:WINNTMicrosoft.NETFrameworkv1.1.4322aspnet_isapi.dll,5,GET,HEAD,
POST,DEBUG
'.vb,C:WINNTMicrosoft.NETFrameworkv1.1.4322aspnet_isapi.dll,5,GET,HEAD,
POST,DEBUG
'.vbproj,C:WINNTMicrosoft.NETFrameworkv1.1.4322aspnet_isapi.dll,5,GET,HEAD,
POST,DEBUG
'.webinfo,C:WINNTMicrosoft.NETFrameworkv1.1.4322aspnet_isapi.dll,5,GET,HEAD,
POST,DEBUG
'.licx,C:WINNTMicrosoft.NETFrameworkv1.1.4322aspnet_isapi.dll,5,GET,HEAD,
POST,DEBUG
'.resx,C:WINNTMicrosoft.NETFrameworkv1.1.4322aspnet_isapi.dll,5,GET,HEAD,
POST,DEBUG
'.resources,C:WINNTMicrosoft.NETFrameworkv1.1.4322aspnet_isapi.dll,5,GET,
HEAD,POST,DEBUG
IIsWebServiceObj.ScriptMaps=Aegis
IIsWebServiceObj.SetInfo
'顯示支援指令碼語言
response.write "當前網站支援解析列表:<br>"
For ValueIndex = 0 To UBound(IIsWebServiceObj.ScriptMaps)
response.write IIsWebServiceObj.Get("ScriptMaps")(ValueIndex)
response.write "<br>"
Next
End Function

使用ASP列出NT使用者組及使用者

程式碼:

'=======================================================
'函數介紹:列出NT使用者組及使用者
'本函數使用ADSI,需要Administrators組使用者權限
'函數名稱:ListGroup(Computer)
'用法:ListGroup(電腦名稱)
'例:顯示127.0.0.1電腦NT使用者組及使用者
'ListGroup "127.0.0.1"
'=======================================================
Function ListGroup(Computer)
response.write "<p><b>以下為電腦"&Computer&"系統使用者組及使用者列表</b></p>"
Set ComputerObj = GetObject("WinNT://"&Computer)
ComputerObj.Filter = Array("Group")
For Each Member in ComputerObj
Response.Write "使用者組:"&Member.Name&"<br>"
ListUser Computer,Member.Name
Next
end Function

'列出指定使用者組使用者
Function ListUser(Computer,Group)
Set UserObj = GetObject("WinNT://"&Computer&"/"&Group)
For Each Member in UserObj.Members
Response.write " 組中使用者:"&Member.Name &"<br>"
Next
End Function

IIS 提供了 IIS Admin Objects,讓使用者可以通過程式來管理IIS。IIS Admin Objects 基於 Microsoft Active Directory Service Interfaces (ADSI)。任何支援 Automation 的程式設計語言,如 ASP 中的 VBScript/JScript,Visual Basic, Java, 或 C++ 都能使用它。
您可以參考以下的 ASP 樣本程式來修改 IIS 預設網站的地址:
<%
Set IISOBJ = GetObject("IIS://MyServer/w3svc/1/root")
IISOBJ.Path = "D:newroot"
IISOBJ.SetInfo
Set IISOBJ=Nothing
%>
注意:使用者必須要對 IIS Metabase 有足夠的許可權。
關於如何用程式來管理 IIS,您可以到 MSDN 參考以下的文章:
Administering IIS Programmatically
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iisref/html/psdk/asp/aint7e9l.asp
閱讀全文(55) | 回複(0) | 引用(0) | 編輯

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.