Folder Permissions with Powershell error

This topic contains 3 replies, has 3 voices, and was last updated by Profile photo of Bryn Spears Bryn Spears 1 month ago.

  • Author
    Posts
  • #71404
    Profile photo of Jack
    Jack
    Participant

    Hi Guys,

    I'm quite new to powershell and trying to use the Get-ACL and set-acl cmdlets to change a folder permission on a new folder.

    i have set a $paste for the username so for example would be jack.smith

    i am trying to create the folder with
    FileSystemRights : DeleteSubdirectoriesAndFiles, Modify, Synchronize
    AccessControlType : Allow
    IdentityReference : USERNAME
    IsInherited : False
    InheritanceFlags : ContainerInherit, ObjectInherit
    PropagationFlags : None

    but i get an error when trying to create a permissions object like below:

    PS C:\Users\xxxxx> $Perms = New-Object  system.security.accesscontrol.
    filesystemaccessrule("$paste$","DeleteSubdirectoriesAndFiles","Modify","Synchron
    ize","ContainerInherit","ObjectInherit")
    
    New-Object : Cannot find an overload for "FileSystemAccessRule" and the argumen
    t count: "6".
    At line:1 char:20
    + $Perms = New-Object < <<<   system.security.accesscontrol.filesystemaccessrule
    ("$paste$","DeleteSubdirectoriesAndFiles","Modify","Synchronize","ContainerInhe
    rit","ObjectInherit")
        + CategoryInfo          : InvalidOperation: (:) [New-Object], MethodExcept
       ion
        + FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.Power
       Shell.Commands.NewObjectCommand
    
    
    
    any help would be great!
  • #71408
    Profile photo of Sam Boutros
    Sam Boutros
    Participant

    Check out Rohn Edwards's PowerShell Access Control module, it automates a lot of what could be tedious to do manually with the native cmdlets..

    • #71419
      Profile photo of Jack
      Jack
      Participant

      Done it! thanks for the suggestion, it seems overly complicated compared to the module you linked me to 🙂

  • #71429
    Profile photo of Bryn Spears
    Bryn Spears
    Participant

    The problem you are having is some of the parameters to the FileSystemAccessRule constructor are a collection and you don't have them together (e.g., 'ContainerInherit','ObjectInherit' vs. 'ContainerInherit, ObjectInherit')

    Try using this code snippet instead:

    # https://msdn.microsoft.com/en-us/library/sfe70whw(v=vs.110).aspx
    $Perms = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList (
    "$paste$",
    'Modify',
    'ContainerInherit, ObjectInherit',
    'Allow')
    

You must be logged in to reply to this topic.