Virtualization Articles and Resources

GUI PowerShell Qtree and Quota manager, with Ghost Quota and Qtree Reports, Massive Qtree w/ Quota creation


This PowerShell script will help you :

  • About Qtree
    • Adding Qtree (you'll have to confirm deletion on the console windows)
    • Deleting Qtree (you'll have to confirm deletion on the console windows)
  • About Quota
    • Turn on/off a Quota Volume
      • If there is not quota assigned to any qtree action will be cancelled as it is not possible in real life
      • If a quota is assigned to, at least one qtree, it will show a progress bar during the volume quota initialization
    • Put a Quota on a Qtree (even a empty one). Mb Gb & Tb are cleary managed.
      • if it's a new quota, volume quota will be reinitialise
      • if it's an update of an existing quota, quota will only be refreshed
    • Remove a quota on a qtree
      • After this, volume quota will be reinitialized (with a cool progress bar too)
  • About Ghost Quota
    • If you delete a Qtree and forget to delete the Quota, you'll be able to delete them
    • It also detected errors on quotas
  • Report Quota
    • You can easly export a quota report in a CSV file
  • Massive Qtree creation
    • With check on duplicate or existing quota
    • DiskLimit Quota / Empty Quota / No Quota
    • Error report
    • Progress Bar indicate the current progress..

What you need to know before using this script

Don't forget to install the PowerShell NetAPP DataONTAP Module.

Quota is only about DiskLimit on Qtree. Other kind of quota might come later if you need so (please ask).

You must have PowerShell 3.0

I've added strong check against bad Qtree name (escape or special char)

Every Button and forms are enabled depending on the validation process to avoid any mistake

I can't warranty anything for sure. But I'm using it every day and it's working perfectly

Don't forget to update both lines with your infos

$all_ctrl = @("CtrlNetAPP1","CtrlNetAPP2","CtrlNetAPP3","CtrlNetAPP4")

$narootpasswd = "your_root_password"

I'm opened to any advices, bug fixes or suggestions.

If you like it, please share and recommand. Thanks appreciated

Please Note:

All content posted on the NetApp Community is publicly searchable and viewable. Participation in the NetApp Community is voluntary.

In accordance with our Code of Conduct and Community Terms of Use, DO NOT post or attach the following:

  • Software files (compressed or uncompressed)
  • Files that require an End User License Agreement (EULA)
  • Confidential information
  • Personal data you do not want publicly available
  • Another’s personally identifiable information (PII)
  • Copyrighted materials without the permission of the copyright owner

Continued non-compliance may result in NetApp Community account restrictions or termination.


Damned, I'm looking good


You must provide a value expression on the right-hand side of the '-' operator.

At C:\NetAPP_QQ_Manager.ps1:64 char:34

+         if(([int][char]$lettre) - <<<< notin $goodChar) {

    + CategoryInfo          : ParserError: (:) [], ParseException

    + FullyQualifiedErrorId : ExpectedValueExpression

Got this error when running ,It seem your "if condition have wrong expression" ?


found should replaced with -NotContains


Why i replaced the string $all_ctrl = @("NAC01","NAC02")

In the GUI controller box, dropdown list dont have any NAC01 or NAC02 in the list ?


sorry, its the # comment have to delete off.



replaced the "notin" with "notcontains" on lines 64 and 84, uncommented the $all_ctrl and $narootpassword

Can see controllers but not volumes

Got error

Exception calling "AddRange" with "1" argument(s): "Value cannot be null.

Parameter name: items"

At C:\install\netapp\Quota_PowerShell\NetAPP_QQ_Manager.ps1:294 char:34

+     $CmB_Qtree_Vol.Items.AddRange <<<< ((Get-NaVol).Name)

    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException

    + FullyQualifiedErrorId : DotNetMethodException

Any chance this tool can work with vFilers? (Maybe it does - but I got the same error for both filers and vFilers)



HI Communities members,

Same issue.

The Volume list is empty

My netApp version: NetApp Release 8.1P3 7-Mode: Sat Aug 18 02:52:06 PDT 2012

how used the pff file?



Check GET-PSSnapIn

Working fine

BTW new error:

Au caractère C:\DSL\Download\NetApp\NetAPP_QQ_Manager.ps1\NetAPP_QQ_Manager.ps1:646 : 5
+     $MyReportarray.AddRange($QuotaReport)
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ArgumentNullException


Maybe an unexpected error when no qtree or quota exists... I'll check that


pff file can be opened by "PrimalForms Community Edition" which help me buidling the GUI. Fantastic tool.


work perfecly with a filer but not with a vfiler in our structure


Can you identify what makes this require PoSh v3?  What breaks if I use PoSh v2?


I'm getting volume list empty... also, appreciate if we could get this working with vfilers.



Thanks for this script.

it works with vfiler in our structure.




can someone link the free download for sapien forms community edition - cause in downloads on sapien website there is no more download for it.




All Community Forums