Expliciete optie
Const FS_TREE_ROOT = „C:\Temp“
Const SE_DACL_PRESENT = 4
Const SE_DACL_AUTO_INHERITED = 1024
Const SE_DACL_PROTECTED = 4096
Const SE_SELF_RELATIVE = 32768
Const ENABLE_INHERITANCE = 1
Const COPY_AND_TURN_OFF_INHERITANCE = 2
Const REMOVE_AND_TURN_OFF_INHERITANCE = 3
'
'Subroutines
'
Sub ResetInheritance (strPath, intWhatToDoWithInheritance)
Het schemerige objFileSecSetting, objSecurityDescriptor, objMethod, objInParam
Schemerige intControlFlagsVar
Het vastgestelde objFileSecSetting = objService.Get („Win32_LogicalFileSecuritySetting.Path= """ &_
Vervang (strPath, „\“, „\ \“) & """")
objSecurityDescriptor objFileSecSetting.GetSecurityDescriptor
Selecteer intWhatToDoWithInheritance van het Geval
Geval ENABLE_INHERITANCE
intControlFlagsVar = SE_DACL_PRESENT + SE_DACL_AUTO_INHERITED + SE_SELF_RELATIVE
Geval COPY_AND_TURN_OFF_INHERITANCE, REMOVE_AND_TURN_OFF_INHERITANCE
intControlFlagsVar = SE_DACL_PRESENT + SE_DACL_PROTECTED + SE_SELF_RELATIVE
Uitgezocht eind
objSecurityDescriptor.ControlFlags = intControlFlagsVar
Reeks objMethod = objFileSecSetting.Methods_ („SetSecurityDescriptor“)
Reeks objInParam = objMethod.inParameters.SpawnInstance_ ()
objInParam.Properties_.item („Beschrijver“) = objSecurityDescriptor
objFileSecSetting.ExecMethod_ „SetSecurityDescriptor“, objInParam
Sub van het eind
Sub DoWorkOnFolders (strPath)
Schemerige objWorkingFile objWorkingFolder, objWorkingSubFolder
'Van het de omslagniveau van het terugstellen de overerving
ResetInheritance strPath, ENABLE_INHERITANCE
Reeks objWorkingFolder = objFileSystem.GetFolder (strPath)
WScript.Echo „Werkend aan“ & strPath
Voor elk objWorkingFile in objWorkingFolder.Files
ResetInheritance objWorkingFile.Path, ENABLE_INHERITANCE
Daarna
Voor Elke objWorkingSubFolder in objWorkingFolder.SubFolders
DoWorkOnFolders objWorkingSubFolder.Path
Daarna
Sub van het eind
'
'HoofdCode
'
Schemerige objFileSystem, objLocator, objFile objService, objRootFolder, objFolder
Reeks objFileSystem = CreateObject („Scripting.FileSystemObject“)
Vastgestelde objLocator = CreateObject („WbemScripting.SWbemLocator“)
Vastgestelde objService = objLocator.ConnectServer („. “, „wortel/cimv2“)
Reeks objRootFolder = objFileSystem.GetFolder (FS_TREE_ROOT)
Voor elk objFile in objRootFolder.Files
ResetInheritance objFile.Path, ENABLE_INHERITANCE
Daarna
Vastgestelde objFile = niets
Voor Elke objFolder in objRootFolder.SubFolders
DoWorkOnFolders objFolder.Path
Daarna
Reeks objFolder = niets
Reeks objRootFolder = niets
Vastgestelde objService = niets
Vastgestelde objLocator = niets
Reeks objFileSystem = niets
|