home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 9 / IOPROG_9.ISO / contrib / iis4 / iis4_07.cab / chaccess.vbs < prev    next >
Encoding:
Text File  |  1997-08-28  |  3.6 KB  |  144 lines

  1. '------------------------------------------------------------------------------------------------
  2. '
  3. '
  4. ' Usage: ASTSetAccessPerms <--ADSPath|-a ADSPATH>
  5. '                          [+read|-read]
  6. '                          [+write|-write]
  7. '                          [+script|-script]
  8. '                          [+execute|-execute]
  9. '                          [+browse|-browse]
  10. '                          [+isolate|-isolate]
  11. '                          [--help|-?]
  12. '
  13. ' ADSPATH               The ADSI Path of the virtual root in question
  14. '
  15. ' Example 1: ASTSetAccessPerms -a IIS://LocalHost/w3svc/1/ROOT +read -write +script +browse -isolate
  16. '------------------------------------------------------------------------------------------------
  17.  
  18.  
  19. ' Force explicit declaration of all variables
  20. Option Explicit
  21.  
  22. On Error Resume Next
  23.  
  24. Dim ArgRead, ArgWrite, ArgScript, ArgExecute, ArgBrowse, ArgIsolate, ArgPath
  25. Dim oArgs, ArgNum
  26.  
  27. ArgRead = -1
  28. ArgWrite = -1
  29. ArgScript = -1
  30. ArgBrowse = -1
  31. ArgExecute = -1
  32. ArgIsolate = -1
  33.  
  34. Set oArgs = WScript.Arguments
  35. ArgNum = 0
  36. While ArgNum < oArgs.Count
  37.  
  38.     Select Case LCase(oArgs(ArgNum))
  39.         Case "--adspath", "-a":
  40.             ArgNum = ArgNum + 1
  41.             ArgPath = oArgs(ArgNum)    
  42.         Case "-read":
  43.             ArgRead = 0
  44.         Case "+read":
  45.             ArgRead = 1    
  46.         Case "-write":
  47.             ArgWrite = 0
  48.         Case "+write":
  49.             ArgWrite = 1
  50.         Case "-script":
  51.             ArgScript = 0 
  52.         Case "+script":
  53.             ArgScript = 1 
  54.         Case "-execute":
  55.             ArgExecute = 0
  56.         Case "+execute":
  57.             ArgExecute = 1
  58.         Case "-browse":
  59.             ArgBrowse = 0
  60.         Case "+browse":
  61.             ArgBrowse = 1
  62.         Case "-isolate":
  63.             ArgIsolate = 0    
  64.         Case "+isolate":
  65.             ArgIsolate = 1    
  66.         Case "--help","-?":
  67.             Call DisplayUsage
  68.         Case Else:
  69.             Call DisplayUsage
  70.     End Select    
  71.  
  72.     ArgNum = ArgNum + 1
  73. Wend
  74.  
  75. Call ASTSetPerms(ArgPath, ArgRead, ArgWrite, ArgScript, ArgBrowse, ArgIsolate, ArgExecute)
  76.  
  77. Sub ASTSetPerms(Path, ReadVal, WriteVal, ScriptVal, BrowseVal, IsolateVal, ArgExecute)
  78.     Dim oAdmin, AccessPermMask, DirectoryBrowsingMask, AppIsolateMask
  79.  
  80.     Display "Finding administration node..."
  81.     Set oAdmin = GetObject(Path)
  82.     If Err <> 0 Then
  83.         Display "Couldn't get the object!"
  84.         WScript.Quit (1)
  85.     End If
  86.  
  87.     AccessPermMask = 0
  88.     DirectoryBrowsingMask = 0
  89.     AppIsolateMask = 0
  90.     Display "Modifying access permissions..."
  91.  
  92.     If ReadVal <> -1 Then 
  93.         Display "Setting readval.."
  94.         oAdmin.AccessPerm = oAdmin.AccessPerm Or ReadVal 
  95.         Display "set"
  96.     End If
  97.  
  98.      If WriteVal <> -1 Then 
  99.         oAdmin.AccessPerm = oAdmin.AccessPerm Or (WriteVal*2) 
  100.     End If
  101.     If ExecuteVal <> -1 Then
  102.         oAdmin.AccessPerm = oAdmin.AccessPerm Or (ExecuteVal * 4)
  103.     End If
  104.     If ScriptVal <> -1 Then
  105.         Display "Setting scriptval.."
  106.         oAdmin.AccessPerm = oAdmin.AccessPerm Or (ScriptVal * 512)
  107.         Display "Set"
  108.     End If    
  109.  
  110.     If BrowseVal <> -1 Then
  111.         If BrowseVal = 1 Then
  112. '            DirectoryBrowsingMask = 0xc000001e
  113.         Else
  114. '            DirectoryBrowsingMask = 0x4000001c
  115.         End If
  116.     End If
  117.  
  118.     If IsolateVal <> -1 Then
  119.         oAdmin.AppIsolate = 1 - IsolateVal
  120.     End If
  121.  
  122.     oAdmin.SetInfo
  123.     If Err <> 0 Then
  124.         Display "Error -- couldn't update information."
  125.     End If
  126.     Display "oo"
  127. End Sub
  128.  
  129. Sub Display(Msg)
  130.     WScript.Echo Now & ". Error Code: " & Err & " --- " & Msg
  131. End Sub
  132.  
  133. Sub DisplayUsage
  134.     WScript.Echo "Usage: chaccess <--ADSPath|-a ADSPATH>"
  135.     WScript.Echo "                [+read|-read]"
  136.     WScript.Echo "                [+write|-write]"
  137.     WScript.Echo "                [+script|-script]"
  138.     WScript.Echo "                [+execute|-execute]"
  139.     WScript.Echo "                [+browse|-browse]"
  140.     WScript.Echo "                [+isolate|-isolate]"
  141.     WScript.Echo "                [--help|-?]"
  142.     WScript.Quit (1)
  143. End Sub
  144.