home *** CD-ROM | disk | FTP | other *** search
- '------------------------------------------------------------------------------------------------
- '
- '
- ' Usage: ASTSetAccessPerms <--ADSPath|-a ADSPATH>
- ' [+read|-read]
- ' [+write|-write]
- ' [+script|-script]
- ' [+execute|-execute]
- ' [+browse|-browse]
- ' [+isolate|-isolate]
- ' [--help|-?]
- '
- ' ADSPATH The ADSI Path of the virtual root in question
- '
- ' Example 1: ASTSetAccessPerms -a IIS://LocalHost/w3svc/1/ROOT +read -write +script +browse -isolate
- '------------------------------------------------------------------------------------------------
-
-
- ' Force explicit declaration of all variables
- Option Explicit
-
- On Error Resume Next
-
- Dim ArgRead, ArgWrite, ArgScript, ArgExecute, ArgBrowse, ArgIsolate, ArgPath
- Dim oArgs, ArgNum
-
- ArgRead = -1
- ArgWrite = -1
- ArgScript = -1
- ArgBrowse = -1
- ArgExecute = -1
- ArgIsolate = -1
-
- Set oArgs = WScript.Arguments
- ArgNum = 0
- While ArgNum < oArgs.Count
-
- Select Case LCase(oArgs(ArgNum))
- Case "--adspath", "-a":
- ArgNum = ArgNum + 1
- ArgPath = oArgs(ArgNum)
- Case "-read":
- ArgRead = 0
- Case "+read":
- ArgRead = 1
- Case "-write":
- ArgWrite = 0
- Case "+write":
- ArgWrite = 1
- Case "-script":
- ArgScript = 0
- Case "+script":
- ArgScript = 1
- Case "-execute":
- ArgExecute = 0
- Case "+execute":
- ArgExecute = 1
- Case "-browse":
- ArgBrowse = 0
- Case "+browse":
- ArgBrowse = 1
- Case "-isolate":
- ArgIsolate = 0
- Case "+isolate":
- ArgIsolate = 1
- Case "--help","-?":
- Call DisplayUsage
- Case Else:
- Call DisplayUsage
- End Select
-
- ArgNum = ArgNum + 1
- Wend
-
- Call ASTSetPerms(ArgPath, ArgRead, ArgWrite, ArgScript, ArgBrowse, ArgIsolate, ArgExecute)
-
- Sub ASTSetPerms(Path, ReadVal, WriteVal, ScriptVal, BrowseVal, IsolateVal, ArgExecute)
- Dim oAdmin, AccessPermMask, DirectoryBrowsingMask, AppIsolateMask
-
- Display "Finding administration node..."
- Set oAdmin = GetObject(Path)
- If Err <> 0 Then
- Display "Couldn't get the object!"
- WScript.Quit (1)
- End If
-
- AccessPermMask = 0
- DirectoryBrowsingMask = 0
- AppIsolateMask = 0
- Display "Modifying access permissions..."
-
- If ReadVal <> -1 Then
- Display "Setting readval.."
- oAdmin.AccessPerm = oAdmin.AccessPerm Or ReadVal
- Display "set"
- End If
-
- If WriteVal <> -1 Then
- oAdmin.AccessPerm = oAdmin.AccessPerm Or (WriteVal*2)
- End If
- If ExecuteVal <> -1 Then
- oAdmin.AccessPerm = oAdmin.AccessPerm Or (ExecuteVal * 4)
- End If
- If ScriptVal <> -1 Then
- Display "Setting scriptval.."
- oAdmin.AccessPerm = oAdmin.AccessPerm Or (ScriptVal * 512)
- Display "Set"
- End If
-
- If BrowseVal <> -1 Then
- If BrowseVal = 1 Then
- ' DirectoryBrowsingMask = 0xc000001e
- Else
- ' DirectoryBrowsingMask = 0x4000001c
- End If
- End If
-
- If IsolateVal <> -1 Then
- oAdmin.AppIsolate = 1 - IsolateVal
- End If
-
- oAdmin.SetInfo
- If Err <> 0 Then
- Display "Error -- couldn't update information."
- End If
- Display "oo"
- End Sub
-
- Sub Display(Msg)
- WScript.Echo Now & ". Error Code: " & Err & " --- " & Msg
- End Sub
-
- Sub DisplayUsage
- WScript.Echo "Usage: chaccess <--ADSPath|-a ADSPATH>"
- WScript.Echo " [+read|-read]"
- WScript.Echo " [+write|-write]"
- WScript.Echo " [+script|-script]"
- WScript.Echo " [+execute|-execute]"
- WScript.Echo " [+browse|-browse]"
- WScript.Echo " [+isolate|-isolate]"
- WScript.Echo " [--help|-?]"
- WScript.Quit (1)
- End Sub
-