Opzione esplicita
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
'
'Sottoprogrammi
'
ResetInheritance secondario (strPath, intWhatToDoWithInheritance)
objFileSecSetting fioco, objSecurityDescriptor, objMethod, objInParam
intControlFlagsVar fioco
objFileSecSetting stabilito = objService.Get (“&_ del """ di Win32_LogicalFileSecuritySetting.Path=
Sostituire (strPath, “\„, “\ \ ") & il """")
objSecurityDescriptor di objFileSecSetting.GetSecurityDescriptor
Selezionare il intWhatToDoWithInheritance di caso
Mettere 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
Estremità prescelta
objSecurityDescriptor.ControlFlags = intControlFlagsVar
Regolare il objMethod = objFileSecSetting.Methods_ (“SetSecurityDescriptor„)
Regolare il objInParam = objMethod.inParameters.SpawnInstance_ ()
objInParam.Properties_.item (“descrittore„) = objSecurityDescriptor
objFileSecSetting.ExecMethod_ “SetSecurityDescriptor„, objInParam
Sommergibile dell'estremità
DoWorkOnFolders secondario (strPath)
objWorkingFolder fioco, objWorkingFile, objWorkingSubFolder
'Ripristinare l'eredità livellata del dispositivo di piegatura
strPath di ResetInheritance, ENABLE_INHERITANCE
Regolare il objWorkingFolder = objFileSystem.GetFolder (strPath)
WScript.Echo “che funzionano su„ & strPath
Per ciascuno objWorkingFile in objWorkingFolder.Files
ResetInheritance objWorkingFile.Path, ENABLE_INHERITANCE
Dopo
Per ogni objWorkingSubFolder in objWorkingFolder.SubFolders
DoWorkOnFolders objWorkingSubFolder.Path
Dopo
Sommergibile dell'estremità
'
'Codice principale
'
objFileSystem fioco, objLocator, objService, objRootFolder, objFile, objFolder
Regolare il objFileSystem = CreateObject (“Scripting.FileSystemObject„)
Regolare il objLocator = CreateObject (“WbemScripting.SWbemLocator„)
Regolare il objService = objLocator.ConnectServer (". „, “radice/cimv2„)
Regolare il objRootFolder = objFileSystem.GetFolder (FS_TREE_ROOT)
Per ciascuno objFile in objRootFolder.Files
ResetInheritance objFile.Path, ENABLE_INHERITANCE
Dopo
objFile stabilito = niente
Per ogni objFolder in objRootFolder.SubFolders
DoWorkOnFolders objFolder.Path
Dopo
Regolare il objFolder = niente
Regolare il objRootFolder = niente
Regolare il objService = niente
Regolare il objLocator = niente
Regolare il objFileSystem = niente
|