Author Posts

July 28, 2016 at 7:00 pm

I have a simple CSV:

    Name,
    Aashley,
    Adagdag,

I want to assign rights to a folder with that same name, which I have done in the past using this cmdlet, using:

    $users5 = import-csv C:\Users\swindmiller\Desktop\Users5.csv
    ForEach ($Folder in $users5) {
    Add-NTFSAccess -path \\FileSERVER\Users\$Folder.Name -Account MYDOMAIN\$folder.Name -AccessRights FullControl

    }

This is my error:

    Add-NTFSAccess : Cannot bind parameter 'Account'. Cannot convert value "MYDOMAIN\@{Name=Aashley}.Name" to type "Security2.IdentityReference2". Error:
    "Some or all identity references could not be translated."
    At line:3 char:90
    + ... fileSERVER\Users\$Folder.Name -Account MYDOMAIN\$folder.Name -Access ...
    + ~~~~~~~~~~~~~~~~
    + CategoryInfo : InvalidArgument: (:) [Add-NTFSAccess], ParameterBindingException
    + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,NTFSSecurity.AddAccess

I know the problem is in "@{Name=Aashley}.Name", it's not letting me reference just the name and I cannot for the life of me figure out why. Shouldn't $Folder.Name just give me "Aashley"?

I KNOW this is going to be a stupid problem on my part so be easy 🙂

July 28, 2016 at 7:03 pm

Add-NTFSAccess -path "\\FileSERVER\Users\$($Folder.Name)" -Account "MYDOMAIN\$($folder.Name)" -AccessRights FullControl

Have to wrap the variable with a property in a subexpression $(). Otherwise it attempts to turn the variable into a string before it gets to the .name.

  • This reply was modified 2 years, 1 month ago by  Craig Duff.

July 28, 2016 at 7:25 pm

Thanks! I knew it was something simple but something I would need to know for the future...it worked perfectly.

Thanks for your fast help!