Opción explícita
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
'
'Subrutinas
'
ResetInheritance secundario (strPath, intWhatToDoWithInheritance)
El objFileSecSetting dévil, objSecurityDescriptor, objMethod, objInParam
intControlFlagsVar dévil
El objFileSecSetting determinado = objService.Get (“&_ del """ de Win32_LogicalFileSecuritySetting.Path=
Substituir (strPath, “\”, “\ \ ") y el """")
objSecurityDescriptor de objFileSecSetting.GetSecurityDescriptor
Seleccionar el intWhatToDoWithInheritance del caso
Encajonar ENABLE_INHERITANCE
intControlFlagsVar = SE_DACL_PRESENT + SE_DACL_AUTO_INHERITED + SE_SELF_RELATIVE
Caso COPY_AND_TURN_OFF_INHERITANCE, REMOVE_AND_TURN_OFF_INHERITANCE
intControlFlagsVar = SE_DACL_PRESENT + SE_DACL_PROTECTED + SE_SELF_RELATIVE
Extremo selecto
objSecurityDescriptor.ControlFlags = intControlFlagsVar
Fijar el objMethod = objFileSecSetting.Methods_ (“SetSecurityDescriptor”)
Fijar el objInParam = objMethod.inParameters.SpawnInstance_ ()
objInParam.Properties_.item (“descriptor”) = objSecurityDescriptor
objFileSecSetting.ExecMethod_ “SetSecurityDescriptor”, objInParam
Submarino del extremo
DoWorkOnFolders secundario (strPath)
objWorkingFolder dévil, objWorkingFile, objWorkingSubFolder
'Reajustar la herencia llana de la carpeta
strPath de ResetInheritance, ENABLE_INHERITANCE
Fijar el objWorkingFolder = objFileSystem.GetFolder (el strPath)
WScript.Echo “que trabaja en” y strPath
Para cada uno objWorkingFile en objWorkingFolder.Files
ResetInheritance objWorkingFile.Path, ENABLE_INHERITANCE
Después
Para cada objWorkingSubFolder en objWorkingFolder.SubFolders
DoWorkOnFolders objWorkingSubFolder.Path
Después
Submarino del extremo
'
'Código principal
'
objFileSystem dévil, objLocator, objService, objRootFolder, objFile, objFolder
Fijar el objFileSystem = CreateObject (“Scripting.FileSystemObject”)
Fijar el objLocator = CreateObject (“WbemScripting.SWbemLocator”)
Fijar el objService = objLocator.ConnectServer (“. ”, “raíz/cimv2”)
Fijar el objRootFolder = objFileSystem.GetFolder (FS_TREE_ROOT)
Para cada uno objFile en objRootFolder.Files
ResetInheritance objFile.Path, ENABLE_INHERITANCE
Después
objFile determinado = nada
Para cada objFolder en objRootFolder.SubFolders
DoWorkOnFolders objFolder.Path
Después
Fijar el objFolder = nada
Fijar el objRootFolder = nada
Fijar el objService = nada
Fijar el objLocator = nada
Fijar el objFileSystem = nada
|