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

配置目录的存取权限
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
很多iis用户还记得在早期的iis版本上有一个web应用, iisadmpwd. 该应用是与iis5 和iis6一起发布的. 主要用于为域用户提供修改密码的功能, 同时也可以修改本机用户的密码. 但是这个功能包含在iis7/7.5中. 在iis 7及以上版本中, 微软不再提供这个web应用的支持. 虽然该功能没有与iis7/7.5一起发布, 但通过一些简单的配置还是可以使用该功能,本文将介绍如何在iis7/7.5中配置iisadmpwd的web 应用. 注意 : 本文只是介绍如何在iis7/7.5中配置iisadmpwd的web 应用. 由于该功能已经在iis7及以上版本中的被遗弃, 微软不会对iis7及以上版本中的iisadmpwd提供支持. 步骤 由于iisadmpwd的web 应用不再被iis7及以上版本所支持. 在一个干净的windows server 2008 中是没法找到这个文件. 所以需要从一台windows server 2003中找到并且将文件复制到windows server 2008上. 1. 默认情况下, iisadmpwd放置在windows server 2003服务器的如下路径 : c:\windows\system32\inetsrv\iisadmpwd . 如果没有找到该路径, 你需要先在windows server 2003上安装iis服务. 注意 : 如果您在iis7/7.5中的网站应用是64位, 您需要copy一个64位版本的iisadmpwd. 如果是32位, 同样需要copy一个32位的iisadmpwd. 在x64的windows server 2003中, 32位的iisadmpwd位于%windir%\syswow64\inetsrv\iisadmpwd . 2. 将iisadmpwd的文件copy到windows server 2008服务器后,需要注册iispwcchg.dll. 1) 用admin的权限打开一个命令窗口. 2) 执行以下命令 : regsvr32 c:\windows\system32\inetsrv\iisadmpwd\iispwchg.dll 其中c:\windows\system32\inetsrv\iisadmpwd\ 是iisadmpwd的放置路径. 3. 其次, 需要设置metabase中的password changeflags. 以运行修改密码的功能 : 1) 用admin的权限打开一个命令窗口. 2) 打开到如下路径 : c:\inetpub\adminscripts 如果你没能找到这个路径, 请先启用iisiis 6 scripting tools feature. 请参考 : http://msdn.microsoft.com/library/ms751518.aspx 3) 输入以下命令 : cscript.exe adsutil.vbs set w3svc/password changeflags value 4) 下面是对value的定义 : 0 : 默认值. 该值代表你必须启用ssl来修改密码. 1: 允许非安全的port来修改密码. 如果你没有启用ssl, 同时又需要 此文来自: 马开东博客 转载请注明出处 网址: http://www.makaidong.com 修改密码的功能, 可以使用该值. 2 : 关闭修改密码的功能. 4 : 关闭 “advance notification of password expiration”. 4.打开iis管理器. 展开需要加入该功能的网站. 右键点击该网站, 在弹出菜单中 选中add virtual directory. 5. 在配置好virtual directory之后, iisadmpwd就可以使用了. 6. 关于iisadmpwd中几个页面的功能, 可以参考http://blogs.msdn.com/b/friis/archive/2009/03/24/setting-up-the-iis-6-password -change-site-iisadmpwd.aspx test.asp 包括了iisadmpwd页面上所显示的文字和label. 如果需要修改asp页面上所显示的内容, 可以修改该页面的定义. achg.asp 用于执行修改密码请求的页面. aexp.asp 该页面会默认情况下会为iis显示那些密码已经过期的用户. 通过配置iis metabase中的”authexpiredurl”, 可以使用该页面. aexp2.asp 用于修改iis本机用户的密码. aexp2b.asp 用于修改域用户的密码. 默认情况下, 该页面会使用ssl对会话进行加密. 如果你没有启用ssl功能, 请求会失败. aexp3.asp 类似于aexp.asp. 不需要使用ssl 如果想使用aexp2.asp页面来修改域用户的密码, 但是又不想启用ssl. 你可以按照下面的方法来进行修改. 但是我们不推荐该方法. 因为, 如果没有ssl的加密保护, 密码是明文的在网络间传递, 很容易被截获. 1. 用notepad打开aexp2.asp. 2. 找到 <form method="post" action="https://<%=server.htmlencode(request.servervariables("server_name"))%>/iisadmpwd/achg.asp?<%=server.htmlencode(request.querystring)%>"> 3. 将https://修改为http:// , 如下 : <form method="post" action="http://<%=server.htmlencode(request.servervariables("server_name"))%>/iisadmpwd/achg.asp?<%=server.htmlencode(request.querystring)%>"> 同样的, 如果启用了ssl,但是使用了非默认的443端口, 也在条语句中加入对应的端口号. 例如使用的是445端口 : <form method="post" action="https://<%=server.htmlencode(request.servervariables("server_name"))%>:445/iisadmpwd/achg.asp?<%=server.htmlencode(request.querystring)%>">
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值