Subscribe

How to get detailed shares permissions

Hi all,

I tried to use the Get-NaCifsShareACL cmdlet but I didn't get what I expected. I'd like to have an output with the list of the username and relative ACL for a specific share.

Furthermore I tried to convert the output in a .csv or .html file using the cmdlets ConvertTo-CSV and ConvertTo-HTML with no luck.

Any idea or help?

Thank you

Francesco

How to get detailed shares permissions

What did you get and what did you expect?

Provide us with your script or at least your output. 

Re: How to get detailed shares permissions

Have you tried native powershell cmdlets? Can use something like:

get-acl -path "\\path\to\share" | select @{Name='Path'; Expression={split-path $_.Path -noqualifier}}, AccessToString | fl *

Re: How to get detailed shares permissions

Have you tried using "Get-NaCifsShareAcl | select ShareName -ExpandProperty UserAclInfo"?

Here is an example script using this:

if ($args.length -eq 0)

{

           Write-Host `n"This script use NetApp PowerShell Toolkit to get NetApp cifs share ACL details." `n"Use with a serverlist."

           Write-Host -ForegroundColor Red `n"Ex. .\ListNetAppSharesAcl.ps1 c:\temp\srvlist.txt", `n"Or .\ListNetAppSharesAcl.ps1 c:\temp\srvlist.txt | out-file c:\temp\result.txt"`n

}

else

{

          $computerlist = $args[0]

          "NetappName;Share;User;AccessRights;UnixGroupName"

            foreach ($compname in get-content $computerlist)

          {

                               Connect-NaController $compname | Write-Host

                    if ($errs.Count -eq 0)

                    {

                              $collShares = Get-NaCifsShareAcl | select ShareName -ExpandProperty UserAclInfo

                              if ($errs.Count -eq 0)

                              {

                                        foreach ($Share in $collShares)

                                        {

                                                    $compname+";"+$Share.ShareName+";"+$Share.UserName+";"+$Share.AccessRights+";"+$Share.UnixGroupName

                                        }

                              }

                              else

                              {

                                        $errString = $compname +" -- No result from Get-NaCifsShareAcl"

                                        write-host $errString

                              }

                    }

                    else

                    {

                              $errString = $compname +" -- Cannot connect to NetApp"

                              write-host $errString

                    }

          }

}