ADSI控制目录权限和站点的应用

来源:互联网 发布:淘宝卖家客户端 编辑:程序博客网 时间:2024/05/29 19:18
配置目录的存取权限
C:/Inetpub/AdminScripts>chaccess.vbs -a w3svc/1/ROOT -verbose
Usage: chaccess <--ADSPath|-a ADSPATH> 控制配置路径
[--computer|-c COMPUTER1[,COMPUTER2...]]指定机器名,IP也可。
[+read|-read] 主目录下的读取权限
[+write|-write]主目录下的写入权限
[+script|-script]主目录下的执行许可权限为纯脚本
[+execute|-execute]主目录下的执行许可权限为脚本和可执行程序
[+browse|-browse]主目录下的目录浏览权限
[--verbose|-v]当前版本
[--help|-?]
有问题请到我的博客讨论:http://blog.csdn.net/bigbird998 
显示指定路径的属性及状态信息
C:/Inetpub/AdminScripts>dispnode help
Usage: dispnode <--ADSPath|-a ADS PATH OF NODE> [--help|-h]
ADS PATH - The Path of the node to be displayed
Example 1: dispnode -a IIS://LocalHost/w3svc显示当前IIS的主属性
Example 2: dispnode --adspath IIS://MachineName/w3svc/1 显示当前站点的状态信息
寻找命名的Web,并显示节点号、描述、主机名、端口和IP地址
C:/Inetpub/AdminScripts>findweb
Web Site Number = 1
Web Site Description = 默认 Web 站点
Hostname =
Port = 80
IP Address =
C:/Inetpub/AdminScripts>findweb m7.net
Web Site Number = 2
Web Site Description = m7.net
Hostname = www.m7.net
Port = 80
IP Address = www.m7.net
有问题请到我的博客讨论:http://blog.csdn.net/bigbird998 
显示指定站点路径管理树
C:/Inetpub/AdminScripts>disptree.vbs help
Usage: disptree [--ADSPath|-a ROOT NODE] 指定要显示管理树的路径
[--NoRecurse|-n]
[--Help|-?]
有问题请到我的博客讨论:http://blog.csdn.net/bigbird998 
创建WEB虚拟站点
C:/Inetpub/AdminScripts>mkw3site help
Unknown argument help
Usage: mkw3site <--RootDirectory|-r ROOT DIRECTORY>网站路径名
<--Comment|-t SERVER COMMENT>WEB网站标识
[--computer|-c COMPUTER1[,COMPUTER2...]]
[--port|-o PORT NUM]端口
[--IPAddress|-i IP ADDRESS]IP地址
[--HostName|-h HOST NAME]主机名
[--SiteNumber|-n SITENUMBER]
[--DontStart]不启动
[--verbose|-v]
[--help|-?]
有问题请到我的博客讨论:http://blog.csdn.net/bigbird998 
创建指定站点的虚拟目录
C:/Inetpub/AdminScripts>mkwebdir.vbs help
Usage: mkwebdir [--computer|-c COMPUTER1,COMPUTER2]指定服务器名
<--website|-w WEBSITE1>指定虚拟站点名
<--virtualdir|-v NAME1,PATH1,NAME2,PATH2,...>指定虚拟目录名和目录文件地址
[--help|-?]
Example : mkwebdir -c MyComputer -w "Default Web Site"
-v "dir1","c:/inetpub/wwwroot/dir1","dir2","c:/inetpub/wwwroot/dir2"
有问题请到我的博客讨论:http://blog.csdn.net/bigbird998 
暂停指定站点的IIS服务
C:/Inetpub/AdminScripts>pausesrv help
Usage: pausesrv <--ADSPath|-a server1[,server2,server3...]>
[--computer|-c COMPUTER1[,COMPUTER2...]]
[--verbose|-v]
[--help|-?]
Example 1: pausesrv -a w3svc/1,msftpsvc/2
Example 2: pauseftp -c MACHINE1,MACHINE2,MACHINE3 -a w3svc/1,msftpsvc/2
恢复暂停的站点的IIS服务
C:/Inetpub/AdminScripts>contsrv.vbs help
Usage: contsrv <--ADSPath|-a server1[,server2,server3...]>
[--computer|-c COMPUTER1[,COMPUTER2...]]
[--verbose|-v]
[--help|-?]
Example 1: contsrv -a w3svc/1,msftpsvc/2
Example 2: contsrv -c MACHINE1,MACHINE2,MACHINE3 -a w3svc/1,msftpsvc/2
有问题请到我的博客讨论:http://blog.csdn.net/bigbird998 
用法同上
pauseftp.vbs 暂停FTP服务器服务
contftp.vbs 恢复被暂停的FTP服务
pauseweb.vbs 暂停Web服务器服务
contweb.vbs 恢复暂停的WWW服务

停止指定站点的IIS服务器服务
C:/Inetpub/AdminScripts>stopsrv.vbs -a w3svc/2
启动指定站点的IIS服务器服务
C:/Inetpub/AdminScripts>startsrv.vbs -a w3svc/2
有问题请到我的博客讨论:http://blog.csdn.net/bigbird998 
停止指定站点的WEB服务器服务
C:/Inetpub/AdminScripts>startweb.vbs -a w3svc/2
启动指定站点的Web服务器服务
C:/Inetpub/AdminScripts>stopweb.vbs -a 2
用法同上
stopftp.vbs 停止FTP服务器服务
startftp.vbs 启动FTP服务器服务
跟踪脚本的执行
C:/Inetpub/AdminScripts>synciwam.vbs -h
Usage: cscript synciwam.vbs [-v|-h]
-v verbose: trace execution of the script
-h help: print this message

把脚本贴上,大家研究下~~
 

'------------------------------------------------------------------------------------------------
'有问题请到我的博客讨论:http://blog.csdn.net/bigbird998 
'
'
 Usage: chaccess <--ADSPath|-a relative config store path>
'
                          [--computer|-c COMPUTER1[,COMPUTER2...]]
'
                          [+read|-read]
'
                          [+write|-write]
'
                          [+script|-script]
'
                          [+execute|-execute]
'
                          [+browse|-browse]
'
         [--verbose|-v]
'
                          [--help|-?]
'
'
 ADSPATH               The ADSI Path of the virtual root in question
'
'
 Example 1: chaccess -a w3svc/1/ROOT +read -write +script +browse
'
------------------------------------------------------------------------------------------------


' Force explicit declaration of all variables
Option Explicit

On Error Resume Next

Const Error_NoNode = "Unable to open specified node."

Dim oArgs, ArgNum, verbose, propNum, ArgPath
Dim ArgComputers
Dim prop(15,2)

verbose 
= false
propNum 
= 0
ArgNum 
= 0
ArgPath 
= ""
ArgComputers 
= Array("LocalHost")

Set oArgs = WScript.Arguments
While ArgNum < oArgs.Count
 
Select Case LCase(oArgs(ArgNum))
  
Case "--adspath""-a":
   ArgNum 
= ArgNum + 1
   ArgPath 
= oArgs(ArgNum) 
  
Case "--computer","-c":
   ArgNum 
= ArgNum + 1
   ArgComputers 
= Split(oArgs(ArgNum), ","-1)
  
Case "--verbose""-v":
   verbose 
= true
  
Case "-read":
   prop(propNum,
0= "AccessRead"
   prop(propNum,
1= false
   propNum 
= propNum + 1
  
Case "+read":
   prop(propNum,
0= "AccessRead"
   prop(propNum,
1= true
   propNum 
= propNum + 1
  
Case "-write":
   prop(propNum, 
0= "AccessWrite"
   prop(propNum, 
1= false
   propNum 
= propNum + 1
  
Case "+write":
   prop(propNum, 
0= "AccessWrite"
   prop(propNum, 
1= true
   propNum 
= propNum + 1
  
Case "-script":
   prop(propNum, 
0= "AccessScript"
   prop(propNum, 
1= false
   propNum 
= propNum + 1
  
Case "+script":
   prop(propNum, 
0= "AccessScript"
   prop(propNum, 
1= true
   propNum 
= propNum + 1
  
Case "-execute":
   prop(propNum, 
0= "AccessExecute"
   prop(propNum, 
1= false
   propNum 
= propNum + 1
  
Case "+execute":
   prop(propNum, 
0= "AccessExecute"
   prop(propNum, 
1= true
   propNum 
= propNum + 1
  
Case "-browse":
   prop(propNum, 
0= "EnableDirBrowsing"
   prop(propNum, 
1= false
   propNum 
= propNum + 1
  
Case "+browse":
   prop(propNum, 
0= "EnableDirBrowsing"
   prop(propNum, 
1= true
   propNum 
= propNum + 1
  
Case "--help","-?":
   
Call DisplayUsage
  
Case Else:
   
Call DisplayUsage
 
End Select 
 ArgNum 
= ArgNum + 1
Wend

If (ArgPath=""Then
 
Call DisplayUsage
End If


Dim compIndex
for compIndex = 0 to UBound(ArgComputers)
 
Call ASTSetPerms(ArgComputers(compIndex), ArgPath, prop, propNum)
next

Sub ASTSetPerms(Computer, Path, propList, propCount)
 
On Error Resume Next
 
Dim oAdmin
 
Dim fullPath
 fullPath 
= "IIS://"&Computer&"/"&Path
 Trace 
"Opening path " & fullPath
 
Set oAdmin = GetObject(fullPath)
 
If Err.Number <> 0 Then
  Display Error_NoNode
  WScript.Quit (
1)
 
End If
 
 
Dim name, val
 
if propCount > 0 then
  
Dim i

  
for i = 0 to propCount-1
   
   val 
= propList(i,1)
   
if verbose = true then
    Trace 
"Setting "&fullPath&"/"&name&" = "& val
   
end if
   oAdmin.Put name, (val)
   
If Err <> 0 Then
    Display 
"Unable to set property "&name
   
End If
  
next
  oAdmin.SetInfo
  
If Err <> 0 Then
   Display 
"Unable to save updated information."
  
End If
 
end if
End Sub

Sub Display(Msg)
 WScript.Echo 
Now & ". Error Code: " & Hex(Err) & " - " & Msg
End Sub

Sub Trace(Msg)
 
if verbose = true then
  WScript.Echo 
Now & " : " & Msg 
 
end if
End Sub

Sub DisplayUsage
 WScript.Echo 
"Usage: chaccess <--ADSPath|-a ADSPATH>"
    WScript.Echo 
"                [--computer|-c COMPUTER1[,COMPUTER2...]]"
 WScript.Echo 
"                [+read|-read]"
 WScript.Echo 
"                [+write|-write]"
 WScript.Echo 
"                [+script|-script]"
 WScript.Echo 
"                [+execute|-execute]"
 WScript.Echo 
"                [+browse|-browse]"
 WScript.Echo 
"                [--verbose|-v]"
 WScript.Echo 
"                [--help|-?]"
 WScript.Echo 
"Example 1: chaccess -a w3svc/1/ROOT +read -write +script +browse"
 WScript.Echo 
"Example 2: chaccess -c MACHINE1,MACHINE2,MACHINE3 -a w3svc/1/ROOT +read -write +script +browse"
WScript.Quit (
1)
End Sub

 

 

 

'------------------------------------------------------------------------------------------------
'有问题请到我的博客讨论:http://blog.csdn.net/bigbird998 
'
 Usage: stopsrv <--ADSPath|-a server1[,server2,server3...]>
'
                          [--help|-?]
'
'
 SERVERx         Relative ADSI path to the server to be Stopped
'
'
 Example 1: stopsrv -a IIS://LocalHost/w3svc/3,IIS://LocalHost/w3svc/1
'
------------------------------------------------------------------------------------------------

' Force explicit declaration of all variables.
Option Explicit

On Error Resume Next

Dim oArgs, ArgNum, ArgServerList
Dim verbose
Dim ArgComputers

ArgComputers 
= Array("LocalHost")
verbose 
= false

Set oArgs = WScript.Arguments
ArgNum 
= 0
While ArgNum < oArgs.Count

 
Select Case LCase(oArgs(ArgNum))
  
Case "--adspath","-a":
   ArgNum 
= ArgNum + 1
   ArgServerList
=Split(oArgs(ArgNum), ","-1)
  
Case "--computer","-c":
   ArgNum 
= ArgNum + 1
   ArgComputers 
= Split(oArgs(ArgNum), ","-1)
  
Case "--verbose""-v":
   verbose 
= true
  
Case "--help","-?":
   
Call DisplayUsage
  
Case Else:
   
Call DisplayUsage
 
End Select 

 ArgNum 
= ArgNum + 1
Wend

If Not IsArray(ArgServerList) Then
 
Call DisplayUsage
End If

Dim compIndex

for compIndex = 0 to UBound(ArgComputers)
 
Call ASTStopServers(ArgComputers(compIndex),ArgServerList)
next

Sub ASTStopServers(Computer, ServerList)
 
Dim ServerNum, oServer
 
On Error Resume Next

 ServerNum 
= 0
 
Dim fullPath

 
While ServerNum <= UBound(ServerList)
  fullPath 
= "IIS://"&Computer&"/"&ArgServerList(ServerNum)
  Trace 
"Stopping " & fullPath & "."
  
Set oServer = GetObject(fullPath)
  
If Err <> 0 Then
   Display 
"Unable to open " & fullPath & "."
  
End If
  oServer.Stop
  
If Err <> 0 Then
   Display 
"Unable to stop server " & fullPath & "."
  
End If
  ServerNum 
= ServerNum + 1
 
Wend 
End Sub

Sub DisplayUsage
 WScript.Echo 
"Usage: stopsrv <--ADSPath|-a server1[,server2,server3...]>"
    WScript.Echo 
"               [--computer|-c COMPUTER1[,COMPUTER2...]]"
 WScript.Echo 
"               [--verbose|-v]"
 WScript.Echo 
"               [--help|-?]"
 WScript.Echo 
"Note: server1, server2, etc. is machine relative server name,"
 WScript.Echo 
"including the service name"
 WScript.Echo 
"Example 1: stopsrv -a w3svc/1,msftpsvc/2"
 WScript.Echo 
"Example 2: stopftp -c MACHINE1,MACHINE2,MACHINE3 -a w3svc/1,msftpsvc/2"
 WScript.Quit (
1)
End Sub

Sub Display(Msg)
 WScript.Echo 
Now & ". Error Code: " & Hex(Err) & " - " & Msg
End Sub

Sub Trace(Msg)
 
if verbose = true then
  WScript.Echo 
Now & " : " & Msg 
 
end if
End Sub
原创粉丝点击