[{"data":1,"prerenderedAt":1830},["ShallowReactive",2],{"post:\u002F2014\u002F04\u002F28\u002Fpowershell-netapp-gather-volume-information\u002F":3},{"post":4,"newer":1788,"older":1798,"related":1808,"series":1828},{"id":5,"title":6,"body":7,"canonical":1766,"categories":1767,"date":1771,"description":1772,"extension":1773,"featured":1774,"hero":1775,"image":1775,"meta":1776,"navigation":394,"path":1777,"readingTime":161,"seo":1778,"series":1775,"seriesOrder":1775,"sites":1779,"source":1781,"stem":1782,"tags":1783,"updated":1785,"url":1786,"__hash__":1787},"blog\u002Fblog\u002F2014\u002F04\u002F28\u002Fpowershell-netapp-gather-volume-information.md","PowerShell: NetApp – Gather Volume Information",{"type":8,"value":9,"toc":1759},"minimark",[10,14,19,40,44,136,141,145,148,199,202,214,222,229,233,1731,1735,1755],[11,12,13],"p",{},"This is a simple script to gather volume information including dedupe schedule and autogrow settings. I’m going to combine this with my snapshot script in the future to make a recommended dedupe schedule based on the average snapshot times.",[15,16,18],"h2",{"id":17},"requirements","Requirements",[20,21,22,26,34,37],"ul",{},[23,24,25],"li",{},"PowerShell 2.0 or later.",[23,27,28,29,33],{},"NetApp Data ONTAP PowerShell Toolkit 1.2 or later (the ",[30,31,32],"code",{},"DataONTAP"," module). The script imports it if it is not already loaded and stops with an error if the version is older.",[23,35,36],{},"NetApp 7-Mode controllers reachable over HTTPS.",[23,38,39],{},"An account on each controller that can read volume, autosize and dedupe (SIS) information.",[15,41,43],{"id":42},"parameters","Parameters",[45,46,47,66],"table",{},[48,49,50],"thead",{},[51,52,53,57,60,63],"tr",{},[54,55,56],"th",{},"Name",[54,58,59],{},"Type",[54,61,62],{},"Required",[54,64,65],{},"Description",[67,68,69,86,105,120],"tbody",{},[51,70,71,77,80,83],{},[72,73,74],"td",{},[30,75,76],{},"nodes",[72,78,79],{},"array",[72,81,82],{},"Yes",[72,84,85],{},"One or more controllers to connect to. When prompted, enter one per line and press Enter on an empty line to continue.",[51,87,88,93,96,98],{},[72,89,90],{},[30,91,92],{},"username",[72,94,95],{},"string",[72,97,82],{},[72,99,100,101,104],{},"Account used to connect to every controller, for example ",[30,102,103],{},"\u003Cdomain>\\\u003Cusername>",".",[51,106,107,112,115,117],{},[72,108,109],{},[30,110,111],{},"password",[72,113,114],{},"SecureString",[72,116,82],{},[72,118,119],{},"Password for the account. Prompted for as a secure string when not supplied.",[51,121,122,127,130,133],{},[72,123,124],{},[30,125,126],{},"IsVerbose",[72,128,129],{},"switch",[72,131,132],{},"No",[72,134,135],{},"Display the collected property table for each volume as it is gathered.",[11,137,138,139,104],{},"The same credentials are used for every node in ",[30,140,76],{},[15,142,144],{"id":143},"usage","Usage",[11,146,147],{},"Pass the controllers and account on the command line. You are prompted for the password.",[149,150,155],"pre",{"className":151,"code":152,"language":153,"meta":154,"style":154},"language-powershell shiki shiki-themes github-dark","& '.\\NetApp-Gather Volume Information.ps1' -nodes \"\u003Cfiler-1>\",\"\u003Cfiler-2>\" -username \"\u003Cdomain>\\\u003Cusername>\" -IsVerbose\n","powershell","",[30,156,157],{"__ignoreMap":154},[158,159,162,166,170,173,177,180,183,186,188,191,194,196],"span",{"class":160,"line":161},"line",1,[158,163,165],{"class":164},"snl16","&",[158,167,169],{"class":168},"sU2Wk"," '.\\NetApp-Gather Volume Information.ps1'",[158,171,172],{"class":164}," -",[158,174,176],{"class":175},"s95oV","nodes ",[158,178,179],{"class":168},"\"\u003Cfiler-1>\"",[158,181,182],{"class":164},",",[158,184,185],{"class":168},"\"\u003Cfiler-2>\"",[158,187,172],{"class":164},[158,189,190],{"class":175},"username ",[158,192,193],{"class":168},"\"\u003Cdomain>\\\u003Cusername>\"",[158,195,172],{"class":164},[158,197,198],{"class":175},"IsVerbose\n",[11,200,201],{},"Or run the script with no parameters and answer the prompts.",[149,203,205],{"className":151,"code":204,"language":153,"meta":154,"style":154},"& '.\\NetApp-Gather Volume Information.ps1'\n",[30,206,207],{"__ignoreMap":154},[158,208,209,211],{"class":160,"line":161},[158,210,165],{"class":164},[158,212,213],{"class":168}," '.\\NetApp-Gather Volume Information.ps1'\n",[149,215,220],{"className":216,"code":218,"language":219,"meta":154},[217],"language-text","cmdlet NetApp-Gather Volume Information.ps1 at command pipeline position 1\nSupply values for the following parameters:\nnodes[0]: \u003Cfiler-1>\nnodes[1]: \u003Cfiler-2>\nnodes[2]:\nusername: \u003Cdomain>\\\u003Cusername>\npassword: *************\n","text",[30,221,218],{"__ignoreMap":154},[11,223,224,225,228],{},"The results are written to ",[30,226,227],{},"GatherVolumeInformation_\u003Ctimestamp>_Detail.csv"," in the same folder as the script.",[15,230,232],{"id":231},"script","Script",[149,234,236],{"className":151,"code":235,"language":153,"meta":154,"style":154},"\u003C#\n.SYNOPSIS\n    Gathers NetApp 7-Mode volume information, including dedupe schedule and autogrow settings.\n.DESCRIPTION\n    Connects to each node with the Data ONTAP PowerShell Toolkit and collects\n    details for every online volume that is not read-only: aggregate, total\n    size, used, available, dedupe (SIS) status and schedule, and autogrow\n    status, maximum size and increment size. The results are written to\n    GatherVolumeInformation_\u003Ctimestamp>_Detail.csv in the script folder.\n.PARAMETER nodes\n    One or more controllers to connect to. When prompted, enter one per line and press Enter on an empty line to continue.\n.PARAMETER username\n    Account used to connect to every controller, for example \u003Cdomain>\\\u003Cusername>.\n.PARAMETER password\n    Password for the account. Prompted for as a secure string when not supplied.\n.PARAMETER IsVerbose\n    Display the collected property table for each volume as it is gathered.\n.EXAMPLE\n    & '.\\NetApp-Gather Volume Information.ps1' -nodes \"\u003Cfiler-1>\",\"\u003Cfiler-2>\" -username \"\u003Cdomain>\\\u003Cusername>\" -IsVerbose\n.EXAMPLE\n    & '.\\NetApp-Gather Volume Information.ps1'\n\n    cmdlet NetApp-Gather Volume Information.ps1 at command pipeline position 1\n    Supply values for the following parameters:\n    nodes[0]: \u003Cfiler-1>\n    nodes[1]: \u003Cfiler-2>\n    nodes[2]:\n    username: \u003Cdomain>\\\u003Cusername>\n    password: *************\n.NOTES\n    Author  : Thomas Lasswell (https:\u002F\u002Fwww.techcolumnist.com)\n    Version : 1.1 (2026-09-20)\n    Requires: Data ONTAP PowerShell Toolkit 1.2 or later, NetApp 7-Mode\n    History : 1.0 2014-04-28 Initial version.\n              1.1 2026-09-20 Fixed the timestamp in the CSV file name (it used minutes\n                  where the month belongs) and the volume progress message.\n#>\nparam (\n    [Parameter(Mandatory = $true)]\n    [Array]$nodes,\n    [Parameter(Mandatory = $true)]\n    [String]$username,\n    [Parameter(Mandatory = $true, ParameterSetName = 'Secret')]\n    [Security.SecureString]$password,\n    [switch]$IsVerbose\n)\n\n# Create outfile information.\n$exedir = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent\n$currentDate = (Get-Date -Format yyyyMMdd.HHmmss)\n$outdetails = ($exedir + \"\\\" + \"GatherVolumeInformation_\" + $currentDate + \"_Detail.csv\")\n\n# Load ONTAP PowerShell Toolkit.\n$module = Get-Module DataONTAP\nif ($module -eq $null) {\n    Import-Module DataONTAP\n}\n\ntry {\n    $requiredVersion = New-Object System.Version(1.2)\n    if ((Get-NaToolkitVersion).CompareTo($requiredVersion) -lt 0) {\n        throw\n    }\n} catch [Exception] {\n    Write-Host \"`nThis script requires Data ONTAP PowerShell Toolkit 1.2 or higher`n\" -ForegroundColor Red\n    return\n}\n\n$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username, $password\n\n# Declare object arrays.\n$objDetail = @()\n\n# Connect to each node individually.\nforeach ($node in $nodes) {\n    Write-Host \"connecting to node $node...\"\n    $conn = Connect-NaController -Name $node -HTTPS -Credential $cred\n\n    if ($conn -ne $null) {\n        Write-Host \"node connected, continuing on to volume calculations...\"\n        Write-Host \"gathering node volumes...\"\n        $vols = Get-NaVol | Where-Object { $_.state -eq \"online\" -and $_.raidstatus -notmatch \"read-only\" }\n        if ($vols -ne $null) {\n            foreach ($vol in $vols) {\n                Write-Host \"`ngathering volume data for volume $vol...\"\n                $nasis = $null\n\n                # Get volume details.\n                Write-Host \"    ... gathering volume details\"\n                $navol = Get-NaVol -Name $vol\n                Write-Host \"    ... gathering AutoSize details\"\n                $navolautosize = Get-NaVolAutosize -Name $vol\n                Write-Host \"    ... gathering Dedupe (SIS) details\"\n                if ($navol.Dedupe -eq \"True\") {\n                    $nasis = Get-NaSis -Name $vol\n                }\n                if ($nasis -eq $null) {\n                    $sissched = \"None\"\n                }\n                if ($nasis -ne $null) {\n                    $sissched = $nasis.Schedule\n                }\n\n                # Format numbers.\n                $ftotalsize = ConvertTo-FormattedNumber $navol.TotalSize DataSize \"0.0\"\n                $favailable = ConvertTo-FormattedNumber $navol.Available DataSize \"0.0\"\n                $fmaxsize = ConvertTo-FormattedNumber $navolautosize.MaximumSize DataSize \"0.0\"\n                $fincrement = ConvertTo-FormattedNumber $navolautosize.IncrementSize DataSize \"0.0\"\n\n                # Build array for details.\n                $detailprop = @{\n                    'Node'            = $node\n                    'Volume'          = $vol\n                    'Aggregate'       = $navol.Aggregate\n                    'TotalSize'       = $ftotalsize\n                    'Used'            = $navol.Used\n                    'Available'       = $favailable\n                    'DedupeEnabled'   = $navol.Dedupe\n                    'DedupeSchedule'  = $sissched\n                    'AutogrowEnabled' = $navolautosize.IsEnabled\n                    'MaxSize'         = $fmaxsize\n                    'IncrementSize'   = $fincrement\n                }\n                $objectD = New-Object -TypeName PSObject -Property $detailprop\n                $objDetail += $objectD\n                if ($IsVerbose) {\n                    Write-Host \"`n`nShowing Verbose Output...`n`n\"\n                    $detailprop\n                }\n            }\n        }\n    }\n}\n\n# Save files.\n$objDetail | Select-Object Node, Volume, Aggregate, TotalSize, Used, Available, DedupeEnabled, DedupeSchedule, AutogrowEnabled, MaxSize, IncrementSize | Export-Csv -Path $outdetails -NoTypeInformation\n",[30,237,238,244,253,259,267,273,279,285,291,297,308,314,324,330,340,346,356,362,370,376,383,389,396,402,408,414,420,426,432,438,446,452,458,464,470,476,482,488,497,522,536,553,566,593,606,616,622,627,633,662,681,716,721,727,741,759,767,773,778,787,806,829,835,841,859,884,890,895,900,925,930,936,950,955,961,976,990,1016,1021,1036,1045,1053,1102,1117,1131,1149,1160,1165,1171,1179,1194,1202,1217,1225,1241,1256,1262,1276,1287,1292,1305,1315,1320,1325,1331,1348,1363,1378,1393,1398,1404,1417,1429,1441,1453,1464,1475,1486,1498,1510,1521,1533,1544,1549,1569,1581,1589,1608,1614,1619,1625,1631,1636,1641,1646,1652],{"__ignoreMap":154},[158,239,240],{"class":160,"line":161},[158,241,243],{"class":242},"sAwPA","\u003C#\n",[158,245,247,250],{"class":160,"line":246},2,[158,248,104],{"class":249},"sDLfK",[158,251,252],{"class":164},"SYNOPSIS\n",[158,254,256],{"class":160,"line":255},3,[158,257,258],{"class":242},"    Gathers NetApp 7-Mode volume information, including dedupe schedule and autogrow settings.\n",[158,260,262,264],{"class":160,"line":261},4,[158,263,104],{"class":249},[158,265,266],{"class":164},"DESCRIPTION\n",[158,268,270],{"class":160,"line":269},5,[158,271,272],{"class":242},"    Connects to each node with the Data ONTAP PowerShell Toolkit and collects\n",[158,274,276],{"class":160,"line":275},6,[158,277,278],{"class":242},"    details for every online volume that is not read-only: aggregate, total\n",[158,280,282],{"class":160,"line":281},7,[158,283,284],{"class":242},"    size, used, available, dedupe (SIS) status and schedule, and autogrow\n",[158,286,288],{"class":160,"line":287},8,[158,289,290],{"class":242},"    status, maximum size and increment size. The results are written to\n",[158,292,294],{"class":160,"line":293},9,[158,295,296],{"class":242},"    GatherVolumeInformation_\u003Ctimestamp>_Detail.csv in the script folder.\n",[158,298,300,302,305],{"class":160,"line":299},10,[158,301,104],{"class":249},[158,303,304],{"class":164},"PARAMETER",[158,306,307],{"class":164}," nodes\n",[158,309,311],{"class":160,"line":310},11,[158,312,313],{"class":242},"    One or more controllers to connect to. When prompted, enter one per line and press Enter on an empty line to continue.\n",[158,315,317,319,321],{"class":160,"line":316},12,[158,318,104],{"class":249},[158,320,304],{"class":164},[158,322,323],{"class":164}," username\n",[158,325,327],{"class":160,"line":326},13,[158,328,329],{"class":242},"    Account used to connect to every controller, for example \u003Cdomain>\\\u003Cusername>.\n",[158,331,333,335,337],{"class":160,"line":332},14,[158,334,104],{"class":249},[158,336,304],{"class":164},[158,338,339],{"class":164}," password\n",[158,341,343],{"class":160,"line":342},15,[158,344,345],{"class":242},"    Password for the account. Prompted for as a secure string when not supplied.\n",[158,347,349,351,353],{"class":160,"line":348},16,[158,350,104],{"class":249},[158,352,304],{"class":164},[158,354,355],{"class":164}," IsVerbose\n",[158,357,359],{"class":160,"line":358},17,[158,360,361],{"class":242},"    Display the collected property table for each volume as it is gathered.\n",[158,363,365,367],{"class":160,"line":364},18,[158,366,104],{"class":249},[158,368,369],{"class":164},"EXAMPLE\n",[158,371,373],{"class":160,"line":372},19,[158,374,375],{"class":242},"    & '.\\NetApp-Gather Volume Information.ps1' -nodes \"\u003Cfiler-1>\",\"\u003Cfiler-2>\" -username \"\u003Cdomain>\\\u003Cusername>\" -IsVerbose\n",[158,377,379,381],{"class":160,"line":378},20,[158,380,104],{"class":249},[158,382,369],{"class":164},[158,384,386],{"class":160,"line":385},21,[158,387,388],{"class":242},"    & '.\\NetApp-Gather Volume Information.ps1'\n",[158,390,392],{"class":160,"line":391},22,[158,393,395],{"emptyLinePlaceholder":394},true,"\n",[158,397,399],{"class":160,"line":398},23,[158,400,401],{"class":242},"    cmdlet NetApp-Gather Volume Information.ps1 at command pipeline position 1\n",[158,403,405],{"class":160,"line":404},24,[158,406,407],{"class":242},"    Supply values for the following parameters:\n",[158,409,411],{"class":160,"line":410},25,[158,412,413],{"class":242},"    nodes[0]: \u003Cfiler-1>\n",[158,415,417],{"class":160,"line":416},26,[158,418,419],{"class":242},"    nodes[1]: \u003Cfiler-2>\n",[158,421,423],{"class":160,"line":422},27,[158,424,425],{"class":242},"    nodes[2]:\n",[158,427,429],{"class":160,"line":428},28,[158,430,431],{"class":242},"    username: \u003Cdomain>\\\u003Cusername>\n",[158,433,435],{"class":160,"line":434},29,[158,436,437],{"class":242},"    password: *************\n",[158,439,441,443],{"class":160,"line":440},30,[158,442,104],{"class":249},[158,444,445],{"class":164},"NOTES\n",[158,447,449],{"class":160,"line":448},31,[158,450,451],{"class":242},"    Author  : Thomas Lasswell (https:\u002F\u002Fwww.techcolumnist.com)\n",[158,453,455],{"class":160,"line":454},32,[158,456,457],{"class":242},"    Version : 1.1 (2026-09-20)\n",[158,459,461],{"class":160,"line":460},33,[158,462,463],{"class":242},"    Requires: Data ONTAP PowerShell Toolkit 1.2 or later, NetApp 7-Mode\n",[158,465,467],{"class":160,"line":466},34,[158,468,469],{"class":242},"    History : 1.0 2014-04-28 Initial version.\n",[158,471,473],{"class":160,"line":472},35,[158,474,475],{"class":242},"              1.1 2026-09-20 Fixed the timestamp in the CSV file name (it used minutes\n",[158,477,479],{"class":160,"line":478},36,[158,480,481],{"class":242},"                  where the month belongs) and the volume progress message.\n",[158,483,485],{"class":160,"line":484},37,[158,486,487],{"class":242},"#>\n",[158,489,491,494],{"class":160,"line":490},38,[158,492,493],{"class":164},"param",[158,495,496],{"class":175}," (\n",[158,498,500,503,506,509,513,516,519],{"class":160,"line":499},39,[158,501,502],{"class":175},"    [",[158,504,505],{"class":249},"Parameter",[158,507,508],{"class":175},"(",[158,510,512],{"class":511},"s9osk","Mandatory",[158,514,515],{"class":164}," =",[158,517,518],{"class":249}," $true",[158,520,521],{"class":175},")]\n",[158,523,525,527,530,533],{"class":160,"line":524},40,[158,526,502],{"class":175},[158,528,529],{"class":164},"Array",[158,531,532],{"class":175},"]$nodes",[158,534,535],{"class":164},",\n",[158,537,539,541,543,545,547,549,551],{"class":160,"line":538},41,[158,540,502],{"class":175},[158,542,505],{"class":249},[158,544,508],{"class":175},[158,546,512],{"class":511},[158,548,515],{"class":164},[158,550,518],{"class":249},[158,552,521],{"class":175},[158,554,556,558,561,564],{"class":160,"line":555},42,[158,557,502],{"class":175},[158,559,560],{"class":164},"String",[158,562,563],{"class":175},"]$username",[158,565,535],{"class":164},[158,567,569,571,573,575,577,579,581,583,586,588,591],{"class":160,"line":568},43,[158,570,502],{"class":175},[158,572,505],{"class":249},[158,574,508],{"class":175},[158,576,512],{"class":511},[158,578,515],{"class":164},[158,580,518],{"class":249},[158,582,182],{"class":164},[158,584,585],{"class":511}," ParameterSetName",[158,587,515],{"class":164},[158,589,590],{"class":168}," 'Secret'",[158,592,521],{"class":175},[158,594,596,598,601,604],{"class":160,"line":595},44,[158,597,502],{"class":175},[158,599,600],{"class":164},"Security.SecureString",[158,602,603],{"class":175},"]$password",[158,605,535],{"class":164},[158,607,609,611,613],{"class":160,"line":608},45,[158,610,502],{"class":175},[158,612,129],{"class":164},[158,614,615],{"class":175},"]$IsVerbose\n",[158,617,619],{"class":160,"line":618},46,[158,620,621],{"class":175},")\n",[158,623,625],{"class":160,"line":624},47,[158,626,395],{"emptyLinePlaceholder":394},[158,628,630],{"class":160,"line":629},48,[158,631,632],{"class":242},"# Create outfile information.\n",[158,634,636,639,642,645,647,650,653,656,659],{"class":160,"line":635},49,[158,637,638],{"class":175},"$exedir ",[158,640,641],{"class":164},"=",[158,643,644],{"class":249}," Split-Path",[158,646,172],{"class":164},[158,648,649],{"class":175},"Path ",[158,651,652],{"class":249},"$MyInvocation",[158,654,655],{"class":175},".MyCommand.Definition ",[158,657,658],{"class":164},"-",[158,660,661],{"class":175},"Parent\n",[158,663,665,668,670,673,676,678],{"class":160,"line":664},50,[158,666,667],{"class":175},"$currentDate ",[158,669,641],{"class":164},[158,671,672],{"class":175}," (",[158,674,675],{"class":249},"Get-Date",[158,677,172],{"class":164},[158,679,680],{"class":175},"Format yyyyMMdd.HHmmss)\n",[158,682,684,687,689,692,695,698,701,704,706,709,711,714],{"class":160,"line":683},51,[158,685,686],{"class":175},"$outdetails ",[158,688,641],{"class":164},[158,690,691],{"class":175}," ($exedir ",[158,693,694],{"class":164},"+",[158,696,697],{"class":168}," \"\\\"",[158,699,700],{"class":164}," +",[158,702,703],{"class":168}," \"GatherVolumeInformation_\"",[158,705,700],{"class":164},[158,707,708],{"class":175}," $currentDate ",[158,710,694],{"class":164},[158,712,713],{"class":168}," \"_Detail.csv\"",[158,715,621],{"class":175},[158,717,719],{"class":160,"line":718},52,[158,720,395],{"emptyLinePlaceholder":394},[158,722,724],{"class":160,"line":723},53,[158,725,726],{"class":242},"# Load ONTAP PowerShell Toolkit.\n",[158,728,730,733,735,738],{"class":160,"line":729},54,[158,731,732],{"class":175},"$module ",[158,734,641],{"class":164},[158,736,737],{"class":249}," Get-Module",[158,739,740],{"class":175}," DataONTAP\n",[158,742,744,747,750,753,756],{"class":160,"line":743},55,[158,745,746],{"class":164},"if",[158,748,749],{"class":175}," ($module ",[158,751,752],{"class":164},"-eq",[158,754,755],{"class":249}," $null",[158,757,758],{"class":175},") {\n",[158,760,762,765],{"class":160,"line":761},56,[158,763,764],{"class":249},"    Import-Module",[158,766,740],{"class":175},[158,768,770],{"class":160,"line":769},57,[158,771,772],{"class":175},"}\n",[158,774,776],{"class":160,"line":775},58,[158,777,395],{"emptyLinePlaceholder":394},[158,779,781,784],{"class":160,"line":780},59,[158,782,783],{"class":164},"try",[158,785,786],{"class":175}," {\n",[158,788,790,793,795,798,801,804],{"class":160,"line":789},60,[158,791,792],{"class":175},"    $requiredVersion ",[158,794,641],{"class":164},[158,796,797],{"class":249}," New-Object",[158,799,800],{"class":175}," System.Version(",[158,802,803],{"class":249},"1.2",[158,805,621],{"class":175},[158,807,809,812,815,818,821,824,827],{"class":160,"line":808},61,[158,810,811],{"class":164},"    if",[158,813,814],{"class":175}," ((",[158,816,817],{"class":249},"Get-NaToolkitVersion",[158,819,820],{"class":175},").CompareTo($requiredVersion) ",[158,822,823],{"class":164},"-lt",[158,825,826],{"class":249}," 0",[158,828,758],{"class":175},[158,830,832],{"class":160,"line":831},62,[158,833,834],{"class":164},"        throw\n",[158,836,838],{"class":160,"line":837},63,[158,839,840],{"class":175},"    }\n",[158,842,844,847,850,853,856],{"class":160,"line":843},64,[158,845,846],{"class":175},"} ",[158,848,849],{"class":164},"catch",[158,851,852],{"class":175}," [",[158,854,855],{"class":164},"Exception",[158,857,858],{"class":175},"] {\n",[158,860,862,865,868,871,874,876,879,881],{"class":160,"line":861},65,[158,863,864],{"class":249},"    Write-Host",[158,866,867],{"class":168}," \"",[158,869,870],{"class":249},"`n",[158,872,873],{"class":168},"This script requires Data ONTAP PowerShell Toolkit 1.2 or higher",[158,875,870],{"class":249},[158,877,878],{"class":168},"\"",[158,880,172],{"class":164},[158,882,883],{"class":175},"ForegroundColor Red\n",[158,885,887],{"class":160,"line":886},66,[158,888,889],{"class":164},"    return\n",[158,891,893],{"class":160,"line":892},67,[158,894,772],{"class":175},[158,896,898],{"class":160,"line":897},68,[158,899,395],{"emptyLinePlaceholder":394},[158,901,903,906,908,910,912,915,917,920,922],{"class":160,"line":902},69,[158,904,905],{"class":175},"$cred ",[158,907,641],{"class":164},[158,909,797],{"class":249},[158,911,172],{"class":164},[158,913,914],{"class":175},"TypeName System.Management.Automation.PSCredential ",[158,916,658],{"class":164},[158,918,919],{"class":175},"ArgumentList $username",[158,921,182],{"class":164},[158,923,924],{"class":175}," $password\n",[158,926,928],{"class":160,"line":927},70,[158,929,395],{"emptyLinePlaceholder":394},[158,931,933],{"class":160,"line":932},71,[158,934,935],{"class":242},"# Declare object arrays.\n",[158,937,939,942,944,947],{"class":160,"line":938},72,[158,940,941],{"class":175},"$objDetail ",[158,943,641],{"class":164},[158,945,946],{"class":164}," @",[158,948,949],{"class":175},"()\n",[158,951,953],{"class":160,"line":952},73,[158,954,395],{"emptyLinePlaceholder":394},[158,956,958],{"class":160,"line":957},74,[158,959,960],{"class":242},"# Connect to each node individually.\n",[158,962,964,967,970,973],{"class":160,"line":963},75,[158,965,966],{"class":164},"foreach",[158,968,969],{"class":175}," ($node ",[158,971,972],{"class":164},"in",[158,974,975],{"class":175}," $nodes) {\n",[158,977,979,981,984,987],{"class":160,"line":978},76,[158,980,864],{"class":249},[158,982,983],{"class":168}," \"connecting to node ",[158,985,986],{"class":175},"$node",[158,988,989],{"class":168},"...\"\n",[158,991,993,996,998,1001,1003,1006,1008,1011,1013],{"class":160,"line":992},77,[158,994,995],{"class":175},"    $conn ",[158,997,641],{"class":164},[158,999,1000],{"class":249}," Connect-NaController",[158,1002,172],{"class":164},[158,1004,1005],{"class":175},"Name $node ",[158,1007,658],{"class":164},[158,1009,1010],{"class":175},"HTTPS ",[158,1012,658],{"class":164},[158,1014,1015],{"class":175},"Credential $cred\n",[158,1017,1019],{"class":160,"line":1018},78,[158,1020,395],{"emptyLinePlaceholder":394},[158,1022,1024,1026,1029,1032,1034],{"class":160,"line":1023},79,[158,1025,811],{"class":164},[158,1027,1028],{"class":175}," ($conn ",[158,1030,1031],{"class":164},"-ne",[158,1033,755],{"class":249},[158,1035,758],{"class":175},[158,1037,1039,1042],{"class":160,"line":1038},80,[158,1040,1041],{"class":249},"        Write-Host",[158,1043,1044],{"class":168}," \"node connected, continuing on to volume calculations...\"\n",[158,1046,1048,1050],{"class":160,"line":1047},81,[158,1049,1041],{"class":249},[158,1051,1052],{"class":168}," \"gathering node volumes...\"\n",[158,1054,1056,1059,1061,1064,1067,1070,1073,1076,1079,1081,1084,1087,1090,1093,1096,1099],{"class":160,"line":1055},82,[158,1057,1058],{"class":175},"        $vols ",[158,1060,641],{"class":164},[158,1062,1063],{"class":249}," Get-NaVol",[158,1065,1066],{"class":164}," |",[158,1068,1069],{"class":249}," Where-Object",[158,1071,1072],{"class":175}," { ",[158,1074,1075],{"class":249},"$_",[158,1077,1078],{"class":175},".state ",[158,1080,752],{"class":164},[158,1082,1083],{"class":168}," \"online\"",[158,1085,1086],{"class":164}," -and",[158,1088,1089],{"class":249}," $_",[158,1091,1092],{"class":175},".raidstatus ",[158,1094,1095],{"class":164},"-notmatch",[158,1097,1098],{"class":168}," \"read-only\"",[158,1100,1101],{"class":175}," }\n",[158,1103,1105,1108,1111,1113,1115],{"class":160,"line":1104},83,[158,1106,1107],{"class":164},"        if",[158,1109,1110],{"class":175}," ($vols ",[158,1112,1031],{"class":164},[158,1114,755],{"class":249},[158,1116,758],{"class":175},[158,1118,1120,1123,1126,1128],{"class":160,"line":1119},84,[158,1121,1122],{"class":164},"            foreach",[158,1124,1125],{"class":175}," ($vol ",[158,1127,972],{"class":164},[158,1129,1130],{"class":175}," $vols) {\n",[158,1132,1134,1137,1139,1141,1144,1147],{"class":160,"line":1133},85,[158,1135,1136],{"class":249},"                Write-Host",[158,1138,867],{"class":168},[158,1140,870],{"class":249},[158,1142,1143],{"class":168},"gathering volume data for volume ",[158,1145,1146],{"class":175},"$vol",[158,1148,989],{"class":168},[158,1150,1152,1155,1157],{"class":160,"line":1151},86,[158,1153,1154],{"class":175},"                $nasis ",[158,1156,641],{"class":164},[158,1158,1159],{"class":249}," $null\n",[158,1161,1163],{"class":160,"line":1162},87,[158,1164,395],{"emptyLinePlaceholder":394},[158,1166,1168],{"class":160,"line":1167},88,[158,1169,1170],{"class":242},"                # Get volume details.\n",[158,1172,1174,1176],{"class":160,"line":1173},89,[158,1175,1136],{"class":249},[158,1177,1178],{"class":168}," \"    ... gathering volume details\"\n",[158,1180,1182,1185,1187,1189,1191],{"class":160,"line":1181},90,[158,1183,1184],{"class":175},"                $navol ",[158,1186,641],{"class":164},[158,1188,1063],{"class":249},[158,1190,172],{"class":164},[158,1192,1193],{"class":175},"Name $vol\n",[158,1195,1197,1199],{"class":160,"line":1196},91,[158,1198,1136],{"class":249},[158,1200,1201],{"class":168}," \"    ... gathering AutoSize details\"\n",[158,1203,1205,1208,1210,1213,1215],{"class":160,"line":1204},92,[158,1206,1207],{"class":175},"                $navolautosize ",[158,1209,641],{"class":164},[158,1211,1212],{"class":249}," Get-NaVolAutosize",[158,1214,172],{"class":164},[158,1216,1193],{"class":175},[158,1218,1220,1222],{"class":160,"line":1219},93,[158,1221,1136],{"class":249},[158,1223,1224],{"class":168}," \"    ... gathering Dedupe (SIS) details\"\n",[158,1226,1228,1231,1234,1236,1239],{"class":160,"line":1227},94,[158,1229,1230],{"class":164},"                if",[158,1232,1233],{"class":175}," ($navol.Dedupe ",[158,1235,752],{"class":164},[158,1237,1238],{"class":168}," \"True\"",[158,1240,758],{"class":175},[158,1242,1244,1247,1249,1252,1254],{"class":160,"line":1243},95,[158,1245,1246],{"class":175},"                    $nasis ",[158,1248,641],{"class":164},[158,1250,1251],{"class":249}," Get-NaSis",[158,1253,172],{"class":164},[158,1255,1193],{"class":175},[158,1257,1259],{"class":160,"line":1258},96,[158,1260,1261],{"class":175},"                }\n",[158,1263,1265,1267,1270,1272,1274],{"class":160,"line":1264},97,[158,1266,1230],{"class":164},[158,1268,1269],{"class":175}," ($nasis ",[158,1271,752],{"class":164},[158,1273,755],{"class":249},[158,1275,758],{"class":175},[158,1277,1279,1282,1284],{"class":160,"line":1278},98,[158,1280,1281],{"class":175},"                    $sissched ",[158,1283,641],{"class":164},[158,1285,1286],{"class":168}," \"None\"\n",[158,1288,1290],{"class":160,"line":1289},99,[158,1291,1261],{"class":175},[158,1293,1295,1297,1299,1301,1303],{"class":160,"line":1294},100,[158,1296,1230],{"class":164},[158,1298,1269],{"class":175},[158,1300,1031],{"class":164},[158,1302,755],{"class":249},[158,1304,758],{"class":175},[158,1306,1308,1310,1312],{"class":160,"line":1307},101,[158,1309,1281],{"class":175},[158,1311,641],{"class":164},[158,1313,1314],{"class":175}," $nasis.Schedule\n",[158,1316,1318],{"class":160,"line":1317},102,[158,1319,1261],{"class":175},[158,1321,1323],{"class":160,"line":1322},103,[158,1324,395],{"emptyLinePlaceholder":394},[158,1326,1328],{"class":160,"line":1327},104,[158,1329,1330],{"class":242},"                # Format numbers.\n",[158,1332,1334,1337,1339,1342,1345],{"class":160,"line":1333},105,[158,1335,1336],{"class":175},"                $ftotalsize ",[158,1338,641],{"class":164},[158,1340,1341],{"class":249}," ConvertTo-FormattedNumber",[158,1343,1344],{"class":175}," $navol.TotalSize DataSize ",[158,1346,1347],{"class":168},"\"0.0\"\n",[158,1349,1351,1354,1356,1358,1361],{"class":160,"line":1350},106,[158,1352,1353],{"class":175},"                $favailable ",[158,1355,641],{"class":164},[158,1357,1341],{"class":249},[158,1359,1360],{"class":175}," $navol.Available DataSize ",[158,1362,1347],{"class":168},[158,1364,1366,1369,1371,1373,1376],{"class":160,"line":1365},107,[158,1367,1368],{"class":175},"                $fmaxsize ",[158,1370,641],{"class":164},[158,1372,1341],{"class":249},[158,1374,1375],{"class":175}," $navolautosize.MaximumSize DataSize ",[158,1377,1347],{"class":168},[158,1379,1381,1384,1386,1388,1391],{"class":160,"line":1380},108,[158,1382,1383],{"class":175},"                $fincrement ",[158,1385,641],{"class":164},[158,1387,1341],{"class":249},[158,1389,1390],{"class":175}," $navolautosize.IncrementSize DataSize ",[158,1392,1347],{"class":168},[158,1394,1396],{"class":160,"line":1395},109,[158,1397,395],{"emptyLinePlaceholder":394},[158,1399,1401],{"class":160,"line":1400},110,[158,1402,1403],{"class":242},"                # Build array for details.\n",[158,1405,1407,1410,1412,1414],{"class":160,"line":1406},111,[158,1408,1409],{"class":175},"                $detailprop ",[158,1411,641],{"class":164},[158,1413,946],{"class":164},[158,1415,1416],{"class":175},"{\n",[158,1418,1420,1423,1426],{"class":160,"line":1419},112,[158,1421,1422],{"class":168},"                    'Node'",[158,1424,1425],{"class":164},"            =",[158,1427,1428],{"class":175}," $node\n",[158,1430,1432,1435,1438],{"class":160,"line":1431},113,[158,1433,1434],{"class":168},"                    'Volume'",[158,1436,1437],{"class":164},"          =",[158,1439,1440],{"class":175}," $vol\n",[158,1442,1444,1447,1450],{"class":160,"line":1443},114,[158,1445,1446],{"class":168},"                    'Aggregate'",[158,1448,1449],{"class":164},"       =",[158,1451,1452],{"class":175}," $navol.Aggregate\n",[158,1454,1456,1459,1461],{"class":160,"line":1455},115,[158,1457,1458],{"class":168},"                    'TotalSize'",[158,1460,1449],{"class":164},[158,1462,1463],{"class":175}," $ftotalsize\n",[158,1465,1467,1470,1472],{"class":160,"line":1466},116,[158,1468,1469],{"class":168},"                    'Used'",[158,1471,1425],{"class":164},[158,1473,1474],{"class":175}," $navol.Used\n",[158,1476,1478,1481,1483],{"class":160,"line":1477},117,[158,1479,1480],{"class":168},"                    'Available'",[158,1482,1449],{"class":164},[158,1484,1485],{"class":175}," $favailable\n",[158,1487,1489,1492,1495],{"class":160,"line":1488},118,[158,1490,1491],{"class":168},"                    'DedupeEnabled'",[158,1493,1494],{"class":164},"   =",[158,1496,1497],{"class":175}," $navol.Dedupe\n",[158,1499,1501,1504,1507],{"class":160,"line":1500},119,[158,1502,1503],{"class":168},"                    'DedupeSchedule'",[158,1505,1506],{"class":164},"  =",[158,1508,1509],{"class":175}," $sissched\n",[158,1511,1513,1516,1518],{"class":160,"line":1512},120,[158,1514,1515],{"class":168},"                    'AutogrowEnabled'",[158,1517,515],{"class":164},[158,1519,1520],{"class":175}," $navolautosize.IsEnabled\n",[158,1522,1524,1527,1530],{"class":160,"line":1523},121,[158,1525,1526],{"class":168},"                    'MaxSize'",[158,1528,1529],{"class":164},"         =",[158,1531,1532],{"class":175}," $fmaxsize\n",[158,1534,1536,1539,1541],{"class":160,"line":1535},122,[158,1537,1538],{"class":168},"                    'IncrementSize'",[158,1540,1494],{"class":164},[158,1542,1543],{"class":175}," $fincrement\n",[158,1545,1547],{"class":160,"line":1546},123,[158,1548,1261],{"class":175},[158,1550,1552,1555,1557,1559,1561,1564,1566],{"class":160,"line":1551},124,[158,1553,1554],{"class":175},"                $objectD ",[158,1556,641],{"class":164},[158,1558,797],{"class":249},[158,1560,172],{"class":164},[158,1562,1563],{"class":175},"TypeName PSObject ",[158,1565,658],{"class":164},[158,1567,1568],{"class":175},"Property $detailprop\n",[158,1570,1572,1575,1578],{"class":160,"line":1571},125,[158,1573,1574],{"class":175},"                $objDetail ",[158,1576,1577],{"class":164},"+=",[158,1579,1580],{"class":175}," $objectD\n",[158,1582,1584,1586],{"class":160,"line":1583},126,[158,1585,1230],{"class":164},[158,1587,1588],{"class":175}," ($IsVerbose) {\n",[158,1590,1592,1595,1597,1600,1603,1605],{"class":160,"line":1591},127,[158,1593,1594],{"class":249},"                    Write-Host",[158,1596,867],{"class":168},[158,1598,1599],{"class":249},"`n`n",[158,1601,1602],{"class":168},"Showing Verbose Output...",[158,1604,1599],{"class":249},[158,1606,1607],{"class":168},"\"\n",[158,1609,1611],{"class":160,"line":1610},128,[158,1612,1613],{"class":175},"                    $detailprop\n",[158,1615,1617],{"class":160,"line":1616},129,[158,1618,1261],{"class":175},[158,1620,1622],{"class":160,"line":1621},130,[158,1623,1624],{"class":175},"            }\n",[158,1626,1628],{"class":160,"line":1627},131,[158,1629,1630],{"class":175},"        }\n",[158,1632,1634],{"class":160,"line":1633},132,[158,1635,840],{"class":175},[158,1637,1639],{"class":160,"line":1638},133,[158,1640,772],{"class":175},[158,1642,1644],{"class":160,"line":1643},134,[158,1645,395],{"emptyLinePlaceholder":394},[158,1647,1649],{"class":160,"line":1648},135,[158,1650,1651],{"class":242},"# Save files.\n",[158,1653,1655,1657,1660,1663,1666,1668,1671,1673,1676,1678,1681,1683,1686,1688,1691,1693,1696,1698,1701,1703,1706,1708,1711,1713,1716,1718,1721,1723,1726,1728],{"class":160,"line":1654},136,[158,1656,941],{"class":175},[158,1658,1659],{"class":164},"|",[158,1661,1662],{"class":249}," Select-Object",[158,1664,1665],{"class":175}," Node",[158,1667,182],{"class":164},[158,1669,1670],{"class":175}," Volume",[158,1672,182],{"class":164},[158,1674,1675],{"class":175}," Aggregate",[158,1677,182],{"class":164},[158,1679,1680],{"class":175}," TotalSize",[158,1682,182],{"class":164},[158,1684,1685],{"class":175}," Used",[158,1687,182],{"class":164},[158,1689,1690],{"class":175}," Available",[158,1692,182],{"class":164},[158,1694,1695],{"class":175}," DedupeEnabled",[158,1697,182],{"class":164},[158,1699,1700],{"class":175}," DedupeSchedule",[158,1702,182],{"class":164},[158,1704,1705],{"class":175}," AutogrowEnabled",[158,1707,182],{"class":164},[158,1709,1710],{"class":175}," MaxSize",[158,1712,182],{"class":164},[158,1714,1715],{"class":175}," IncrementSize ",[158,1717,1659],{"class":164},[158,1719,1720],{"class":249}," Export-Csv",[158,1722,172],{"class":164},[158,1724,1725],{"class":175},"Path $outdetails ",[158,1727,658],{"class":164},[158,1729,1730],{"class":175},"NoTypeInformation\n",[15,1732,1734],{"id":1733},"notes","Notes",[20,1736,1737],{},[23,1738,1739,1740,1743,1744,1747,1748,1751,1752,104],{},"Update 2026-09-20 (v1.1): the timestamp in the output file name was ",[30,1741,1742],{},"yyyymmdd.Hm.s",", where ",[30,1745,1746],{},"mm"," is minutes, so it never contained the month. It is now ",[30,1749,1750],{},"yyyyMMdd.HHmmss",", for example ",[30,1753,1754],{},"GatherVolumeInformation_20140428.140530_Detail.csv",[1756,1757,1758],"style",{},"html pre.shiki code .snl16, html code.shiki .snl16{--shiki-default:#F97583}html pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .sDLfK, html code.shiki .sDLfK{--shiki-default:#79B8FF}html pre.shiki code .s9osk, html code.shiki .s9osk{--shiki-default:#FFAB70}",{"title":154,"searchDepth":246,"depth":246,"links":1760},[1761,1762,1763,1764,1765],{"id":17,"depth":246,"text":18},{"id":42,"depth":246,"text":43},{"id":143,"depth":246,"text":144},{"id":231,"depth":246,"text":232},{"id":1733,"depth":246,"text":1734},"techcolumnist",[1768,1769,1770],"dotps","ps","scripts","2014-04-28T12:57:58Z","This is a simple script to gather volume information including dedupe schedule and autogrow settings.","md",false,null,{},"\u002Fblog\u002F2014\u002F04\u002F28\u002Fpowershell-netapp-gather-volume-information",{"title":6,"description":1772},[1780,1766],"lasswell","both","blog\u002F2014\u002F04\u002F28\u002Fpowershell-netapp-gather-volume-information",[1784,153,231],"netapp","2026-09-20T00:00:00Z","\u002F2014\u002F04\u002F28\u002Fpowershell-netapp-gather-volume-information\u002F","6ug_eIMsoo1sgFpOfnOikEloVvdiMB6N3lF1Uttid8I",{"title":1789,"description":1790,"date":1791,"url":1792,"categories":1793,"tags":1794,"image":1775,"readingTime":161,"canonical":1766,"sites":1797,"series":1775,"seriesOrder":1775},"PowerShell: Autotask – Get Picklist Values","When using AutoTask’s API it’s required to lookup a various amount of picklist values that are used in updating you’re web request.","2015-02-06T18:11:32Z","\u002F2015\u002F02\u002F06\u002Fpowershell-autotask-get-picklist-values\u002F",[1769,1770],[1795,153,1796],"autotask","soap",[1780,1766],{"title":1799,"description":1800,"date":1801,"url":1802,"categories":1803,"tags":1804,"image":1775,"readingTime":161,"canonical":1766,"sites":1807,"series":1775,"seriesOrder":1775},"PowerShell: OnCommand Core – Delete All Information Events","Found a solution on the NetApp communities for deleting the Informational events that plague OnCommand Core.","2014-02-10T11:56:00Z","\u002F2014\u002F02\u002F10\u002Foncommand-core-delete-all-information-events\u002F",[1769,1770],[1805,1784,1806,153],"dfm","oncommand",[1780,1766],[1809,1819,1798],{"title":1810,"description":1811,"date":1812,"url":1813,"categories":1814,"tags":1815,"image":1775,"readingTime":261,"canonical":1766,"sites":1818,"series":1775,"seriesOrder":1775},"PowerShell: NetApp – Discover Every Volume Over 80 Percent Capacity","Sweep every ONTAP cluster you manage through the ONTAP REST API from PowerShell and report volumes above a capacity threshold, with a read-only login.","2025-08-13T14:00:00Z","\u002F2025\u002F08\u002F13\u002Fpowershell-netapp-discover-every-volume-over-80-percent-capacity\u002F",[1769,1770,1768],[153,1784,1816,1817],"ontap","discovery",[1766],{"title":1820,"description":1821,"date":1822,"url":1823,"categories":1824,"tags":1825,"image":1775,"readingTime":161,"canonical":1766,"sites":1827,"series":1775,"seriesOrder":1775},"PowerShell: NetApp – Gather Snapshot Details","Gathering snapshot statistics is a tedious task when looking at autosupports and cli output.","2014-01-21T16:15:38Z","\u002F2014\u002F01\u002F21\u002Fpowershell-gather-netapp-snapshot-details\u002F",[1768,1769,1770],[1784,153,1826],"snapshots",[1780,1766],{"doc":1775,"posts":1829},[],1790223957206]