about the rights masks, orring will not get you anywhere.
this:
Code:
CASE ($case = "F")
$ace.accessmask = $RIGHT_FULL
CASE ($case = "C")
$ace.accessmask = $RIGHT_READ OR $RIGHT_WRITE OR $RIGHT_EXECUTE OR $RIGHT_DELETE
CASE ($case = "R")
$ace.accessmask = $RIGHT_READ OR $RIGHT_EXECUTE
CASE ($case = "E")
$ace.accessmask = $RIGHT_EXECUTE
should most likely be:
Code:
CASE ($case = "F")
$ace.accessmask = $RIGHT_FULL
CASE ($case = "C")
$ace.accessmask = $RIGHT_READ + $RIGHT_WRITE + $RIGHT_EXECUTE + $RIGHT_DELETE
CASE ($case = "R")
$ace.accessmask = $RIGHT_READ + $RIGHT_EXECUTE
CASE ($case = "E")
$ace.accessmask = $RIGHT_EXECUTE
why?
I haven't checked the code nor tested nor read about anything but from old stuff know that security masks are "incrementals"
and to prove my point, doing or:
$ace = 1 or 1
will always give you 1 (or true)
doing:
$ace = 253254324 or 460943590843
will always give you 1.
that's the nature of it 
so, no wonder if it does not set security if instead of huge number it gets 1, right?
_________________________
!download
KiXnet