When working with PowerShell I have came across really cool way to work with PSObjects. It’s being simple as creating one of the underlying object methods. But first things first – let’s create one template object
$AccessRules = New-Object PsObject $AccessRules.PsObject.TypeNames.Insert(0, "FileSystemAccessRules") $AccessRules | Add-Member -MemberType NoteProperty -Name subFolder -Value '' $AccessRules | Add-Member -MemberType NoteProperty -Name identity -Value '' $AccessRules | Add-Member -MemberType NoteProperty -Name rights -Value '' $AccessRules | Add-Member -MemberType NoteProperty -Name InheritanceFlags -Value '' $AccessRules | Add-Member -MemberType NoteProperty -Name accessControlType -Value '' $AccessRules | Add-Member -MemberType NoteProperty -Name preserveInheritance -Value '' $AccessRules | Add-Member -MemberType NoteProperty -Name isInherited -Value '' $AccessRules | Add-Member -MemberType NoteProperty -Name owner -Value '' $AccessRules | Add-Member -MemberType NoteProperty -Name PropagationFlags -Value ''
Thats really easy – now its time to simply us it as base for other created objects
$FS_TMP_AR_1 = $AccessRules.psobject.Copy() $FS_TMP_AR_1.accessControlType = 'Állow' $FS_TMP_AR_1.identity = 'BUILTIN\Administrators' $FS_TMP_AR_1.InheritanceFlags = "ContainerInherit, ObjectInherit" $FS_TMP_AR_1.isInherited = 1 $FS_TMP_AR_1.owner = "BUILTIN\Administrators" $FS_TMP_AR_1.preserveInheritance = 1 $FS_TMP_AR_1.rights = 'FullControl' $FS_TMP_AR_1.subFolder = '' $FS_TMP_AR_1.PropagationFlags ="None"
And thats it – voilla 😉 the whole magic is just hidden under this line
.psobject.Copy()
Hope this helps – happy coding!