Microsoft Virtualization Discussions

toolkit output questions

First, I am very new to PowerShell and the toolkit.

When I use some commandlets in a shell I get blank lines for output.

such as when I put in Get-NaSystemOntapiVersion

Tried piping it to foreach and then assigning the variable I wanted, in this case MajorVersion and MinorVersion but I still get nothing

Obviously I am missing something.

Can someone explain in plain language (as opposed to powershell speak) what that might be ?



Re: toolkit output questions

I figured out the foreach part, but not why it would not list things without using the foreach

Re: toolkit output questions

Could you post an example from importing the module to the Get-NaSystemOntapi cmdlet?  Something like this:

PS C:\> ipmo dataontap

PS C:\> Connect-NaController

Name                 Address           Ontapi   Version

----                 -------           ------   -------      1.13     NetApp Release 8.0.1 7-Mode: Wed Jan  5 17:24:41 PST 2011

PS C:\> Get-NaSystemOntapiVersion

                           MajorVersion                            MinorVersion NodeOntapiDetails

                           ------------                            ------------ -----------------

                                      1                                      13 {fas2040rre1}


Re: toolkit output questions

Hi Eric,

Here is the relevant part of the ps script

Import-module DataOnTap


$cred = "appropriate definition of $cred here"

foreach ($netapp in $NetappList) {   

   Connect-nacontroller -credential $cred $netapp | select Name,Address


}  # End netapplist foreach

When I run these commands from the command line the output is what you show


Re: toolkit output questions

Ahh, so the commands inside the loop don't output text, they return objects directly on the pipeline.  You essentially end up with a list of controller, ontapi version, controller, ontapi version, and so on.   Because you have a select statement in there and multiple types in the output, PowerShell is getting confused and doesn't know how to format the objects.

Instead, one option is to use the Select-Object cmdlet to combine the controller and Ontapi Version into a single object:

$hostnames = @("", "")

foreach ($hostname in $hostnames)


   $cntlr = Connect-NaController $hostname

    Get-NaSystemOntapiVersion |

        select @{Name="Name";Expression={$cntlr.Name}},


               MajorVersion, MinorVersion


which outputs this:

Name                         Address                                        MajorVersion                MinorVersion
----                         -------                                        ------------                ------------                                                     1                          13                                                   1                           7

Of course this example is a bit contrived since the controller object already includes an OntapiVersion property, but it would apply similarly to any other information you gather per controller...

Hope that helps!

View solution in original post

Re: toolkit output questions

Ahhhh, I would have thought the select in the connect-nacontroller statement would have only acted on that statement, but after reading your response I see that it apparently does not.  Removing it from the connect statement returns the output I would have thought I would see.

I have a long way to go to understand the PowerShell stuff!


Cloud Volumes ONTAP
Review Banner
All Community Forums