Changing Share Permissions with Powershell / SUBINACL

I'm trying to set share permissions with the script below, but nothing seems to happen when I run the script.

$User="testuser"

function SetSharePerm
{
   $shareName="\\acmeserv1\users$\$user"
   $userName="acme\$user"
   $SUBINACL='C:\Program Files (x86)\Windows Resource Kits\Tools\subinacl.exe'
   &$SUBINACL /share $shareName /grant="acme\Domain Admins"=F /grant=$userName=C |Out-Null

   }
 SetSharePerm -user $user

Open in new window


What am I doing wrong?
Tim BallinAsked:
Who is Participating?
 
Adam BrownSr Solutions ArchitectCommented:
First, your function has no parameter to accept the -user switch that you use in the last line, so that's part of the problem. Another part is that functions really need to go ahead of any other code.  This would resolve that:

function SetSharePerm
{
   param($user)
   $shareName="\\acmeserv1\users$\$user"
   $userName="acme\$user"
   $SUBINACL='C:\Program Files (x86)\Windows Resource Kits\Tools\subinacl.exe'
   &$SUBINACL /share $shareName /grant="acme\Domain Admins"=F /grant=$userName=C |Out-Null

   }
$User="testuser"
SetSharePerm -user $user

Open in new window


You also need to escape the $ in your users$ share name with a `, so it would be users`$ instead of what you have.

Finally, you'll actually want to scrap the whole subinacl methodology and eventually learn to do ACLs directly with powershell. https://blogs.technet.microsoft.com/heyscriptingguy/2014/11/22/weekend-scripter-use-powershell-to-get-add-and-remove-ntfs-permissions/ explains how. What you're doing with this script is basically batch scripting in Powershell, which is awkward and error prone.
0
 
Tim BallinAuthor Commented:
I took your advice and used Powershell to make the changes directly

function SetSharePerm
{
   param($user)
   $shareName="\\acmeserv1\users$\$user"
   $userName="acme\$user"
   Add-NTFSAccess -Path $shareName -account $userName -accessrights Modify

   }
$User="testuser"
SetSharePerm -user $user

Open in new window


Much more straightforward.  Thanks!
0
 
Tim BallinAuthor Commented:
Thanks for the direction Adam!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.