Home > Blogs > VMware PowerCLI Blog


Get-View Part 1: Introduction to Get-View

I’ve had several people ask to understand more about Get-View. I will be doing several blog posts on this topic to hopefully help educate on what Get-View is and why it’s useful.

  • Part 1: Introduction
  • Part 2: Extension Data
  • Part 3: Performance Impact

***Note: Get-view is a more advanced feature of PowerCLI. Administrators are able to fully utilize the benefits of PowerCLI without needing to learn Get-View. However, Get-view opens the door for even more flexibility and power in controlling your virtual environment.

Before dealing with Get-View, we need to understand a little bit about how PowerCLI works. The cmdlets like Get-VM will return nicely formatted information about a Virtual Machine, however, when Get-VM is run, there are a number of queries and formatting that takes place in the back-end that result in what is returned.

Screenshot 2014-12-31 11.31.47

What happens when we return this same list using Get-View?

image

As you can see, a lot more information is returned. If this is the first time you are seeing this output, it can feel a little overwhelming and you will most likely want to just return to using Get-VM. But before you run off, let’s take a deeper look at this and try to understand what we are seeing.

To make this easier to sort through for this first time, let’s run the get-view cmdlet again but this time we’ll filter it for a single VM.

The –Filter parameter requires a hashtable for input, otherwise you’ll receive an error like this:

image

So we’ll run it the correct way and we’ll search based on the VM’s name.

get-view –viewtype VirtualMachine –filter @{“Name”=”SDDC-VCAC-IAAS”}

image

Ok, that’s not looking so bad now is it? ok, well you may still be saying “I don’t understand what I’m seeing….” but we have narrowed down the number of lines returned by looking at a single Virtual Machine.

What are we seeing?

What we see when running Get-View is the view object (Do not confuse ‘view object’ with ‘VIobject’ we’ll discuss this later). We can then dig into the different properties for this object and find large sums of information that may be useful for your needs.

We’ll first save our query as a variable:

$VM = get-view –viewtype VirtualMachine –filter @{“Name”=”SDDC-VCAC-IAAS”}

Now by typing the variable name ‘$VM’ we can see and work with the object.

image

It may take some practice and some time to get to know what all can be found within the view of each object… Don’t despair, it’s well worth it! let’s look in the Config property (VirtualMachineConfigInfo).

$VM.config

image

Here we can see some interesting information. We can see the VM Name, the Guest full name (Server 2008r2 64-bit), Hardware version, UUID, if it’s a template, and so on. These could be very useful when querying your infrastructure for reporting purposes especially (More to come in another blog post).

If we jump into the Summary section we see a number of other sections we can dive into. We’ll start with Runtime.

$VM.Summary.Runtime

Screenshot 2014-12-31 13.12.25

We can see the VM is connected, powered off, VMTools installer is not mounted, etc.

On to Guest:

$VM.Summary.Guest

Screenshot 2014-12-31 13.12.43

We can see here that VMTools is not running, the version is current, hostname, and IP would be here if the VM were powered on. For those of you who may want to write a script that sees if a VM is up and running before continuing, using the ToolsStatus property in a loop is an excellent way to judge if the script should proceed or loop again (*note: just because tools are running doesn’t mean the OS is always ready. sometimes it is good to place a start-sleep in the script once VMTools shows it is running, to ensure that the OS is fully up and running before continuing).

Finally, We’ll look at the Summary Config (do not get confused with the $VM.Config we looked at earlier):

$VM.Summary.Config

Screenshot 2014-12-31 13.12.49

Here we see the amount of RAM allocated to the VM, the actual path to the VMX (in this case it’s [Datastore] Folder/VMName.vmx), # of CPU, NICs, Disks, and more.

In just a few queries we’ve been able to see a lot of data…

In the next article we will discuss how to use the data we find. and an even easier way of accessing this data for consumption.

Stay Tuned!

This entry was posted in Advanced, Learning, Reporting and tagged , , on by .
Brian Graf

About Brian Graf

Brian Graf is a Senior Product Manager - Distributed Resource Management (DRS/HA/DPM) at VMware. Previous to Product Management, Brian worked as a Senior Technical Marketing Manager at VMware, focused on PowerCLI Automation and ESXi Lifecycle technologies. Previous roles also include: Consultant for EMC Consulting. His main focus was Data center migration methodologies and implementations. His background previous to VMware includes Operations Engineering, Virtualization, Business Intelligence, and Exchange/Blackberry Engineering. Get notification of new blog postings and more by following Brian on Twitter: @vBrianGraf

15 thoughts on “Get-View Part 1: Introduction to Get-View

  1. Pingback: VMware powerCLI | Srinivasu Meesala

  2. Pingback: Newsletter: February 15, 2015 | Notes from MWhite

  3. Pingback: Get-View Part 2: Views and Extension Data | VMware PowerCLI Blog - VMware Blogs

  4. Pingback: vCoffee Links #13 – Lots of good vStuff!!! » vHersey - VCDX Two to the Seventh Power (#128)

  5. Pingback: #PowerCLI: Distributed switch portgroup usage. Good vs. bad vs. Max Power approach | v(e)Xpertise

  6. Pingback: Get-View Part 3: Peformance Impact - Is it really THAT much different? | VMware PowerCLI Blog - VMware Blogs

  7. Pingback: Getting VM Information using Get-view | Welcome to deepakkanda's Blog

  8. gajendra d ambi

    this is nice but how do we change certain values here? Let us say i want to change the startorder & startdelay to something else.
    (get-vapp myvapp | get-view).VAppConfig.EntityConfig
    Basically with powercli i want to
    create vapp
    set startorder
    startdelay
    startaction
    stopdelay
    stopaction

    Reply
    1. CraigR

      To change any of those things, I think you would need to operate on the VM-type object, not the View-of-a-VM-type object.

      Reply
  9. Pingback: Learn how to generate a vSphere report using PowerShell

  10. Pingback: PowerCLI, VMware Tools update, etc. « rakhesh.com

  11. free sound plays

    Terrifiϲ work! Thhis is the type of information that are
    supрosed to be hared across tthe internet. Disgrace on Google ffor no longer positioning thiѕ publish upper!
    Comme on օver and visit my website . Thanks =)

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

*