设为首页收藏本站新闻投稿

MOD中国同盟社

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 462|回复: 3

[教程] ASP操作IIS [复制链接]

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

帖子
2836
精华
2
声望
12984 点
金币
2999 Mold
被赞许
28 次
注册时间
2006-4-28

Mod中国同盟社至高荣誉

发表于 2011-6-12 09:55:24 |显示全部楼层
文件:function.asp
代码:
  1. <%
  2. '***********************************
  3. '列出服务器上所有站点
  4. '@ServerAddr       服务器地址,
  5. '***********************************
  6. function ShowAllWebSite(ServerAddr)
  7. set ServiceObj=GetObject("IIS://"&ServerAddr&"/w3svc")      
  8. i=1
  9. for each IISService in ServiceObj
  10.   if IISService.class="IIsWebServer" then
  11.    response.Write i & "、<br>"  
  12.    ShowWebSite = IISService.get("ServerBindings")
  13.    Info=split(ShowWebSite(0),":")   
  14.    response.write "&nbsp;&nbsp;&nbsp;站点名称:"&IISService.ServerComment&"<br>"
  15.    response.write "&nbsp;&nbsp;&nbsp;站点编号:"&IISService.name&"<br>"
  16.    
  17.    response.write "&nbsp;&nbsp;&nbsp;站点IP地址:"&Info(0)&"<br>"
  18.    response.write "&nbsp;&nbsp;&nbsp;站点端口:"&Info(1)&"<br>"
  19.    response.write "&nbsp;&nbsp;&nbsp;站点主机头:"&Info(2)&"<br>"
  20.    response.Write "&nbsp;&nbsp;&nbsp;<a href='#' onclick='del("&IISService.name&")'>删除此站点</a><br><br>"
  21.   i=i+1
  22.   end if
  23. next
  24. set ServiceObj=nothing
  25. end function

  26. '***********************************
  27. '删除服务器上的站点
  28. '@ServerAddr       服务器地址,
  29. '@IPAddr           站点编号,
  30. '***********************************
  31. function DelWebSite(ServerAddr,SiteNum)
  32. on error resume next
  33. set ServiceObj = GetObject("IIS://"&ServerAddr&"/w3svc")
  34. ServiceObj.delete "IIsWebServer",SiteNum
  35. set ServiceObj=nothing
  36. end Function

  37. '***********************************
  38. '新增服务器站点
  39. '@ServerAddr       服务器地址,
  40. '@IPAddr           新建站点IP地址,
  41. '@PortNum          新建站点端口号,
  42. '@HostName         新建站点主机名,
  43. '@WebSiteDirectory 新建站点根目录,
  44. '@LogDirectory     新建站点LOG文件目录,
  45. '@WebSiteInfo      新建站点说明
  46. '@GuestUserName    新建站点访问时所使用的帐号,
  47. '@GuestUserPass    新建站点访问时所用帐号的口令,
  48. '@StartOrStop      是否启动新建站点,
  49. '***********************************
  50. function AddWebSite(ServerAddr,IPAddr,PortNum,HostName,WebSiteDirectory,LogDirectory,WebSiteInfo,GuestUserName,GuestUserPass,StartOrStop)
  51. Dim ServiceObj, WebServer, NewWebServer, NewDir
  52. Dim Bindings, BindingString, NewBindings, SiteNum, SiteObj, bDone
  53. on error resume next
  54. err.clear
  55.   

  56. '能否加载w3svc服务对象
  57. Set ServiceObj = GetObject("IIS://" & ServerAddr & "/w3svc")
  58. If err.number <> 0 Then '显示错误提示
  59.   response.Write err.description &"<br>"
  60.   response.write "不能加载服务: "&"IIS://" & ServerAddr & "/w3svc"
  61.   response.end
  62. End If
  63. '新建的站点是否相关属性重复
  64. BindingString = IPAddr & ":" & PortNum & ":" & HostName
  65. for each WebServer in ServiceObj
  66.   if WebServer.class = "IIsWebServer" Then
  67.    Bindings = WebServer.ServerBindings
  68.    If BindingString = Bindings(0) Then
  69.     response.write "IP地址、端口、主机头冲突:" & BindingString & ",请检测!"     
  70. response.end
  71.    End If
  72.   End If
  73. Next


  74. '生成新站点的编号
  75. SiteNum=2
  76. bDone = false
  77. while (not bDone)
  78.   err.clear
  79.   set SiteObj = GetObject("IIS://"&ServerAddr&"/w3svc/"&SiteNum)         
  80.   if (err.number = 0) then
  81.    response.write " 站点编号: "&SiteNum&" 已存在"
  82.    SiteNum = SiteNum + 1
  83.   else
  84.    err.Clear
  85.    set NewWebServer = ServiceObj.Create("IIsWebServer",SiteNum)            
  86.     If (err.number <> 0) then
  87.      response.Write err.description &"<br>"   
  88.      response.write "站点: "&SiteNum&" 创建失败 "
  89.      SiteNum = SiteNum + 1
  90.     else
  91.      response.Write err.description &"<br>"      
  92.      response.write " 站点"&SiteNum&"创建成功 "
  93.      bDone = true
  94.     end if
  95.   end if
  96. wend

  97. '新建站点相关配置
  98. NewBindings = Array(0)
  99. NewBindings(0) = BindingString
  100. NewWebServer.ServerBindings = NewBindings
  101. NewWebServer.ServerComment= WebSiteInfo
  102. NewWebServer.AnonymousUserName= GuestUserName
  103. NewWebServer.AnonymousUserPass= GuestUserPass
  104. NewWebServer.KeyType = "IIsWebServer"
  105. NewWebServer.FrontPageWeb = true
  106. NewWebServer.EnableDefaultDoc = true
  107. NewWebServer.EnableDirBrowsing   =   True  
  108. NewWebServer.AccessScript   =   True   
  109. NewWebServer.DefaultDoc = "Default.htm, Default.asp, Index.htm, Index.asp"
  110. NewWebServer.LogFileDirectory= LogDirectory


  111. NewWebServer.SetInfo


  112. '增加物理目录
  113. set fsObj = Server.CreateObject("Scripting.FileSystemObject")
  114. set folderObj = fsObj.GetFolder(WebSiteDirectory)
  115. if Hex(Err.number) = "4C" Then
  116.   fsObj.CreateFolder WebSiteDirectory
  117. end if
  118. set folderObj = nothing

  119. set folderObj = fsObj.GetFolder(LogDirectory)
  120. if Hex(Err.number) = "4C" Then
  121.   fsObj.CreateFolder LogDirectory  
  122. end if
  123.   
  124. set folderObj = nothing
  125. set fsObj = nothing

  126. set NewDir = NewWebServer.Create("IIsWebVirtualDir", "ROOT")
  127. NewDir.Path = WebSiteDirectory
  128. NewDir.AccessRead = true
  129. NewDir.AppFriendlyName = "默认应用程序(" & WebSiteInfo &")"
  130. NewDir.AppCreate true
  131. NewDir.AccessScript = true
  132. err.clear
  133. NewDir.SetInfo
  134. if (err.number <> 0) then
  135.   response.Write err.description &"<br>"      
  136.   response.write "主目录创建时出错."
  137.   response.end
  138. End If


  139. if StartOrStop = 1 then
  140.   err.clear
  141.   set NewWebServer = GetObject("IIS://" & ServerAddr & "/w3svc/" & SiteNum)
  142.   NewWebServer.Start
  143.   if err.number <> 0 then
  144.    response.write "启动站点时出错!"
  145.    response.end
  146.    err.clear
  147.   end If
  148. end If

  149. set ServiceObj=nothing
  150. response.write "站点创建成功,站点编号为:"& SiteNum &" ,域名为:"& HostName

  151. end function
  152. %>
复制代码
文件:default.asp
代码:
  1. <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <title>ASP操作IIS程序片段</title>
  7. <link href="../css.css" rel="stylesheet" type="text/css" />
  8. </head>
  9. <body>

  10. <!-- #include file = "function.asp" -->
  11. <script language="javascript">
  12. function del(id){
  13.    if (confirm("确定删除该站点吗?"))
  14.     window.location.href="?action=del&id="+id;
  15. }
  16.   
  17. </script>
  18. <h1 class="font16px">ASP操作IIS程序片段</h1><br />

  19. <h1>新建站点:</h1>
  20. <form action="?action=add" method="post" >
  21. <table width="70%" border="0" cellpadding="4" cellspacing="1" class="myBorder">
  22.   <tr>
  23.     <td bgcolor="#F6F6F6"><div align="left">服务器地址</div></td>
  24.     <td bgcolor="#F6F6F6"><div align="left">站点名称</div></td>
  25.     <td bgcolor="#F6F6F6"><div align="left">IP地址</div></td>
  26.     <td bgcolor="#F6F6F6"><div align="left">端口号</div></td>
  27.     <td bgcolor="#F6F6F6"><div align="left">主机头</div></td>
  28.     </tr>
  29.   <tr>
  30.     <td>
  31.       <div align="left">
  32.         <input name="ServerAddr" type="text" id="ServerAddr" value="localhost" size="15" />
  33.         </div></td>
  34.     <td>
  35.       <div align="left">
  36.         <input name="WebSiteInfo" type="text" id="WebSiteInfo" value="新建测试站点" size="15" />
  37.       </div></td>
  38.     <td>
  39.       <div align="left">
  40.         <input name="IPAddr" type="text" id="IPAddr" value="127.0.0.1" size="15" />
  41.         </div></td>
  42.     <td>
  43.       <div align="left">
  44.         <input name="PortNum" type="text" id="PortNum" value="8001" size="5" />
  45.         </div></td>
  46.     <td>
  47.       <div align="left">
  48.         <input name="HostName" type="text" id="HostName" size="15" />
  49.         </div></td>
  50.   </tr>
  51.   <tr>
  52.     <td bgcolor="#F6F6F6"><div align="left">站点根目录</div></td>
  53.     <td bgcolor="#F6F6F6"><div align="left">站点LOG文件目录</div></td>
  54.     <td bgcolor="#F6F6F6"><div align="left">站点访问帐号</div></td>
  55.     <td bgcolor="#F6F6F6"><div align="left">站点访问密码</div></td>
  56.     <td bgcolor="#F6F6F6">
  57.       <div align="left">启动</div></td>
  58.     </tr>
  59.   <tr>
  60.     <td><div align="left">
  61.       <input name="WebSiteDirectory" type="text" id="WebSiteDirectory" value="c:\tmp" size="15" />
  62.     </div></td>
  63.     <td><div align="left">
  64.       <input name="LogDirectory" type="text" id="LogDirectory" value="c:\tmp\log" size="15" />
  65.     </div></td>
  66.     <td><div align="left">
  67.       <input name="GuestUserName" type="text" id="GuestUserName" value="administrator" size="15" />
  68.     </div></td>
  69.     <td><div align="left">
  70.       <input name="GuestUserPass" type="text" id="GuestUserPass" size="15" />
  71.     </div></td>
  72.     <td>
  73.       
  74.         <div align="left">
  75.           <input name="StartOrStop" type="checkbox" id="StartOrStop" value="1" />
  76.         </div></td>
  77.     </tr>
  78. </table>
  79. <br />
  80. <input type="submit" name="Submit" value="保存站点信息" />
  81. </form>
  82. <br />

  83. <h1>以下是服务器上的所有站点:</h1>
  84. <%
  85.   
  86.   '列出站点
  87.   ShowAllWebSite("localhost")
  88.   
  89.   
  90.   '新建站点
  91.   if request("action")="add" then     
  92. AddWebSite request("ServerAddr"),request("IPAddr"),request("PortNum"),request("HostName"),request("WebSiteDirectory"),request("LogDirectory"),request("WebSiteInfo"),request("GuestUserName"),request("GuestUserPass"),request("StartOrStop")
  93.     response.Redirect("?")
  94.   end if
  95.   
  96.   
  97.   '删除站点
  98.   if request("action")="del" then      
  99.     DelWebSite "localhost",request("id")
  100.     response.write  "<script>window.location.href='default.asp';</script>"
  101.   end if
  102. %>

  103. </body>
  104. </html>
复制代码

使用道具 举报

Rank: 7Rank: 7Rank: 7

帖子
901
精华
0
声望
2174 点
金币
198 Mold
被赞许
0 次
注册时间
2009-1-6
发表于 2011-6-12 11:38:15 |显示全部楼层
可以跨脚本控**务器的吗-,-

提权啊提权

使用道具 举报

Rank: 1

帖子
11
精华
0
声望
12 点
金币
2 Mold
被赞许
0 次
注册时间
2011-6-22
发表于 2011-6-22 08:35:46 |显示全部楼层
164.set ServiceObj=nothing

165.response.write "站点创建成功,站点编号为:"& SiteNum &" ,域名为:"& HostName
科士威  http://www.15ev.net

使用道具 举报

头像被屏蔽

禁止发言

帖子
74
精华
0
声望
48 点
金币
-28 Mold
被赞许
-4 次
注册时间
2011-8-26
发表于 2011-8-28 14:59:14 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

回顶部