Hi, Bill. You may be able to use the PS Provider in the Toolkit to recurse, but it uses Read-NaDirectory (which isn't recursive) underneath, so it may be simpler to code but probably won't be any faster.
PS C:\> Connect-NaController dunn
Name Address Ontapi Version
---- ------- ------ -------
dunn 10.61.167.60 1.14 NetApp Release 7.3.5: Mon Nov 22 21:32:44 PST 2010
PS C:\> Mount-NaController
Name Used (GB) Free (GB) Provider Root
---- --------- --------- -------- ----
dunn DataONTAP /
PS C:\> cd dunn:
PS dunn:\> dir /etc -Recurse
Name Type Size Created Modified Owner Group Perm Empty
I had already written a vbScript to do this but it has two major problems. It is very slow (we have a lot of files/folders to traverse). It constantly produces errors due to Windows File System length limitations. These results in an inaccurate file size total.
I was hoping to use the NetApp APIs to circumvent both of these issues.
Even when I manually recurse using the Read-NaDirectory CmdLet, it is very slow.
Do you think this could be an enhancement for a future release of the OnTap PS Toolkit?
The API that Read-NaDirectory uses doesn't support recursion, so making the cmdlet do that won't speed things up. As I mentioned, the provider can support recursion. Please note that the file APIs are many times slower than normal in-band I/O like CIFS or iSCSI, so you're probably better off using standard Windows file APIs to traverse the directory structure if you can make those work for you.