Opcja Wyraźny
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
'
Okręt podwodny ResetInheritance (strPath, intWhatToDoWithInheritance)
Ciemnawy objFileSecSetting, objSecurityDescriptor, objMethod, objInParam
Ciemnawy intControlFlagsVar
Ustalony objFileSecSetting = objService.Get ("Win32_LogicalFileSecuritySetting.Path= """ &_
Zamieniać (strPath, "\", "\ \ ") & """")
objFileSecSetting.GetSecurityDescriptor objSecurityDescriptor
Wybrany Skrzynka intWhatToDoWithInheritance
Skrzynka ENABLE_INHERITANCE
intControlFlagsVar = SE_DACL_PRESENT + SE_DACL_AUTO_INHERITED + SE_SELF_RELATIVE
Skrzynka COPY_AND_TURN_OFF_INHERITANCE, REMOVE_AND_TURN_OFF_INHERITANCE
intControlFlagsVar = SE_DACL_PRESENT + SE_DACL_PROTECTED + SE_SELF_RELATIVE
Końcówka Wybiórka
objSecurityDescriptor.ControlFlags = intControlFlagsVar
Ustalony objMethod = objFileSecSetting.Methods_ ("SetSecurityDescriptor")
Ustalony objInParam = objMethod.inParameters.SpawnInstance_ ()
objInParam.Properties_.item ("Deskryptor") = objSecurityDescriptor
objFileSecSetting.ExecMethod_ "SetSecurityDescriptor", objInParam
Końcówka Okręt podwodny
Okręt podwodny DoWorkOnFolders (strPath)
Ciemnawy objWorkingFolder, objWorkingFile, objWorkingSubFolder
'Reset falcówka równy dziedziczenie
ResetInheritance strPath, ENABLE_INHERITANCE
Ustalony objWorkingFolder = objFileSystem.GetFolder (strPath)
WScript.Echo "Na" & strPath
Dla ObjWorkingFolder.Files objWorkingFile w objWorkingFolder.Files
ResetInheritance objWorkingFile.Path, ENABLE_INHERITANCE
Następnie
Dla ObjWorkingFolder.SubFolders objWorkingSubFolder w objWorkingFolder.SubFolders
DoWorkOnFolders objWorkingSubFolder.Path
Następnie
Końcówka Okręt podwodny
'
'Główny Kod
'
Ciemnawy objFileSystem, objLocator, objService, objRootFolder, objFile, objFolder
Ustalony objFileSystem = CreateObject ("Scripting.FileSystemObject")
Ustalony objLocator = CreateObject ("WbemScripting.SWbemLocator")
Ustalony objService = objLocator.ConnectServer (". ", "korzeń/cimv2")
Ustalony objRootFolder = objFileSystem.GetFolder (FS_TREE_ROOT)
Dla ObjRootFolder.Files objFile w objRootFolder.Files
ResetInheritance objFile.Path, ENABLE_INHERITANCE
Następnie
Ustalony objFile = ObjFile
Dla ObjRootFolder.SubFolders objFolder w objRootFolder.SubFolders
DoWorkOnFolders objFolder.Path
Następnie
Ustalony objFolder = Nic
Ustalony objRootFolder = Nic
Ustalony objService = Nic
Ustalony objLocator = Nic
Ustalony objFileSystem = Nic
|