Wahl ausdrücklich
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
'
'Subroutinen
'
VorResetInheritance (strPath, intWhatToDoWithInheritance)
Schwaches objFileSecSetting, objSecurityDescriptor, objMethod, objInParam
Schwaches intControlFlagsVar
Gesetztes objFileSecSetting = objService.Get („Win32_LogicalFileSecuritySetting.Path= """ &_
Ersetzen (strPath, „\“, „\ \ ") u. """")
objFileSecSetting.GetSecurityDescriptor objSecurityDescriptor
Fall intWhatToDoWithInheritance vorwählen
ENABLE_INHERITANCE umkleiden
intControlFlagsVar = SE_DACL_PRESENT + SE_DACL_AUTO_INHERITED + SE_SELF_RELATIVE
Fall COPY_AND_TURN_OFF_INHERITANCE, REMOVE_AND_TURN_OFF_INHERITANCE
intControlFlagsVar = SE_DACL_PRESENT + SE_DACL_PROTECTED + SE_SELF_RELATIVE
Ende auserwählt
objSecurityDescriptor.ControlFlags = intControlFlagsVar
objMethod = objFileSecSetting.Methods_ („SetSecurityDescriptor“) einstellen
objInParam = objMethod.inParameters.SpawnInstance_ einstellen ()
objInParam.Properties_.item („Beschreiber“) = objSecurityDescriptor
objFileSecSetting.ExecMethod_ „SetSecurityDescriptor“, objInParam
Enden-Unterseeboot
VorDoWorkOnFolders (strPath)
Schwaches objWorkingFolder, objWorkingFile, objWorkingSubFolder
'Waagerecht ausgerichtete Erbschaft des Faltblatts zurückstellen
ResetInheritance strPath, ENABLE_INHERITANCE
objWorkingFolder = objFileSystem.GetFolder (strPath) einstellen
WScript.Echo „, das auf“ arbeiten u. strPath
Für jedes objWorkingFile in objWorkingFolder.Files
ResetInheritance objWorkingFile.Path, ENABLE_INHERITANCE
Zunächst
Für jedes objWorkingSubFolder in objWorkingFolder.SubFolders
DoWorkOnFolders objWorkingSubFolder.Path
Zunächst
Enden-Unterseeboot
'
'Hauptcode
'
Schwaches objFileSystem, objLocator, objService, objRootFolder, objFile, objFolder
objFileSystem = CreateObject („Scripting.FileSystemObject“) einstellen
objLocator = CreateObject („WbemScripting.SWbemLocator“) einstellen
objService = objLocator.ConnectServer einstellen („. “, „Wurzel/cimv2“)
objRootFolder = objFileSystem.GetFolder (FS_TREE_ROOT) einstellen
Für jedes objFile in objRootFolder.Files
ResetInheritance objFile.Path, ENABLE_INHERITANCE
Zunächst
Gesetztes objFile = nichts
Für jedes objFolder in objRootFolder.SubFolders
DoWorkOnFolders objFolder.Path
Zunächst
objFolder einstellen = nichts
objRootFolder einstellen = nichts
objService einstellen = nichts
objLocator einstellen = nichts
objFileSystem einstellen = nichts
|