俺们在IDC有好几台服务器,每台服务器(window2003+IIS6)挂有20多个网站,现在部分客户要求24小时开通网站,而部分客户同意上述时间关闭网站。如何是手工操作,那可累死俺们!每天晚上专心看奥运的时候,还担心到点要关网站了,每天早上起的比鸡早,远程登陆开启网站。经过两天的煎熬,终于在google和MVP的交流总结出自动开启和关闭网站的方法!

方法有两种:

方案一:权限控制自动开关网站
       需要24小时开通的网站不做处理,把奥运期间晚上需要临时关闭的网站放到一个文件里面
如:D:\website\test.txt
    
批处理文件如下(停止网站)
@echo off
for /f "usebackq tokens=*" %%a in ("d:\website\test.txt") do (
  echo y|cacls "%%a" /d everyone
)
 
批处理文件如下(开启网站)
@echo off
for /f "usebackq tokens=*" %%a in ("d:\website\test.txt") do (
  echo y|cacls "%%a" /g everyone:f
)
由于网站能访问需要erverybody权限,删除erverybody权限能直接导致网站因权限不够而不能访问,
这样就能顺利达到目的,接下来只要把这两个文件加入的计划任务中即可。
 
方案二:通过IIS自带脚本实现
 
由于想我们这种ASP/JSP/.NET,什么网站都有,而且放置位置比较凌乱的服务器来着,按第一种方法处理起来比较困难。所以我又找到了一种更简单的方法,用IIS自带的VBS工具adsutil.vbs。
批处理文件如下(停止网站)
C:\Inetpub\AdminScripts\adsutil.vbs  STOP_server W3SVC/1237755992
C:\Inetpub\AdminScripts\adsutil.vbs  STOP_server W3SVC/1739915248
 
批处理文件如下(开启网站)
C:\Inetpub\AdminScripts\adsutil.vbs  START_server W3SVC/1237755992
C:\Inetpub\AdminScripts\adsutil.vbs  START_server W3SVC/1739915248

把上面的批处理加入计划任务即可,W3SVC/后面的数字是网站的标识符。嘿嘿,这多简单啊
不过注意win2003和win2000是有区别的。win2000的方法如下
 
批处理文件如下(停止网站)
C:\Inetpub\AdminScripts\stopweb.vbs -a 31,32
C:\Inetpub\AdminScripts\stopweb.vbs -a 5,52
 
批处理文件如下(开启网站)
C:\Inetpub\AdminScripts\startweb.vbs -a 31,32
C:\Inetpub\AdminScripts\startweb.vbs -a 5,52
 
数字同样是网站的标识符,如果不知道标识符是什么的话,看看网站日志存放空间的哪个文件夹W3SVC11就知道了。对11就是这个网站的标识符。嘿嘿,当然你写个程序那当然最完美啦!关adsutil.vbs脚本的更多用途。可以去百度或GOOGLE找找 
posted on 2009-03-13 09:30  Dacia  阅读(897)  评论(0编辑  收藏  举报