Accepted Solution

cifs-share-acl-list-iter-start & Vfiler Tunneling

Hi Guys,

I am able to use cifs-share-acl-list-iter-start on a filer level. However when I try to use  with vfiler tunneling I get the following error below:

unable to find API: cifs-share-acl-list-iter-start for vfiler vfiler_name

Looking on the docs cifs-share-acl-list-iter-start does not seem to support vfiler tunneling, however cifs-share-acl-list-iter-next and cifs-share-acl-list-iter-end seem to support vfiler tunneling. (This might just be documentation)

Has anyone used the above API's before ?

Testing filers with Ontap Version  7.3.5



rle Former NetApp Employee

Re: cifs-share-acl-list-iter-start & Vfiler Tunneling

Hi Dwayne -

You have hit burt 443207,, which is not public.  It is not fixed until 8.2.    The documentation comes directly from the internal API specification, so cifs-share-acl-list-iter-start is not vfFiler supported.  Regards,

   - Rick -

Re: cifs-share-acl-list-iter-start & Vfiler Tunneling


Thank you for the reply Rick. Been wondering what is wrong with my code.

How do I mark this question as answered ?

rle Former NetApp Employee

Re: cifs-share-acl-list-iter-start & Vfiler Tunneling


See if you can find "Mark this answer as correct" at the bottom of the post where there is like and reply button.

   - Rick -

Re: cifs-share-acl-list-iter-start & Vfiler Tunneling

Just posting a little work-around I created in case you really need to parse the ACL's.


$controller = ""

$vfiler = "myVfiler"

# connect to the vfiler

Connect-NaController $controller -vfiler $vfiler

# get the list of the shares (this command is not affected by the burt)

$shares = Get-NaCifsShare

# container for the result

$global:aclList = @()

# because of the burt, we get the ACL info through CLI instead

$command = "vfiler run $vfiler cifs shares"

Invoke-NaSsh -Command $command -WarningVariable warningMsg -OutVariable outMsg -ErrorVariable errorMsg 2>&1 | Out-Null

function parseCifsSharesOutput($output){

    $acls = @()

    $tempshare = ""


    # parse the lines

    $lines = $output.Split("`n")

    foreach($line in $lines){

        # if were are past the "----" lines, we can can start parsing


            # it the line is start with a "tab", it's an acl


                # ACL found

                $line = $line.Trim()

                $acl = $line.Split("/")

                if($acl.Count -eq 2){

                    $newacl = "" | Select ShareName,MountPoint,Description,User,Permission

                    $newacl.ShareName = $tempshare.ShareName

                    $newacl.MountPoint = $tempshare.Mountpoint

                    $newacl.Description = $tempshare.Description

                    $newacl.User = $acl[0].Trim()

                    $newacl.Permission = $acl[1].Trim()

                    $acls += $newacl


            # if the line does not start with "tab", it is a new share entry


                # new share found

                $line = $line.Trim()

                # ignore blank lines (normally at the end)

                if($line -ne ""){

                    $share = $line -split "\s+/"

                    $tempshare = $shares | where{$_.ShareName -eq $share[0].Trim()}





        # we ignore all lines until we come accross "----"


            $infostarted = $true



    $global:aclList = $acls


if(-not $warningMsg -and -not $errorMsg){

    parseCifsSharesOutput $outMsg

    $global:aclList | ft


    write-output "Warning : $warningMsg"

    write-output "Error : $errorMsg"


Re: cifs-share-acl-list-iter-start & Vfiler Tunneling

Mirko - How does this handle share paths with spaces in the volume names?