Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases now! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Learning PowerCLI

You're reading from   Learning PowerCLI A comprehensive guide on PowerCLI

Arrow left icon
Product type Paperback
Published in Feb 2017
Publisher
ISBN-13 9781786468017
Length 562 pages
Edition 2nd Edition
Languages
Arrow right icon
Author (1):
Arrow left icon
Robert van den Nieuwendijk Robert van den Nieuwendijk
Author Profile Icon Robert van den Nieuwendijk
Robert van den Nieuwendijk
Arrow right icon
View More author details
Toc

Table of Contents (16) Chapters Close

Preface 1. Introduction to PowerCLI FREE CHAPTER 2. Learning Basic PowerCLI Concepts 3. Working with Objects in PowerShell 4. Managing vSphere Hosts with PowerCLI 5. Managing Virtual Machines with PowerCLI 6. Managing Virtual Networks with PowerCLI 7. Managing Storage 8. Managing High Availability and Clustering 9. Managing vCenter Server 10. Patching ESXi Hosts and Upgrading Virtual Machines 11. Managing VMware vCloud Director and vCloud Air 12. Using Site Recovery Manager 13. Using vRealize Operations Manager 14. Using REST API to manage NSX and vRealize Automation 15. Reporting with PowerCLI

Retrieving a list of all of your hosts

Similar to the Get-VM cmdlet, which retrieves your virtual machines, is the Get-VMHost cmdlet, which displays your hosts. The Get-VMHost cmdlet has the following syntax. The first parameter set is the default:

Get-VMHost [[-Name] <String[]>] [-NoRecursion] [-Datastore
    <StorageResource[]>] [-State <VMHostState[]>] [-Location
    <VIContainer[]>]
    [-Tag <Tag[]>] [-Server <VIServer[]>][<CommonParameters>]

The second parameter set is for retrieving hosts connected to specific distributed virtual switches:

Get-VMHost [[-Name] <String[]>] [-DistributedSwitch
    <DistributedSwitch[]>] [-Tag <Tag[]>] [-Server <VIServer[]>]
    [<CommonParameters>]

The third parameter set is for retrieving hosts by virtual machine or resource pool:

Get-VMHost [[-Name] <String[]>] [-NoRecursion] [-VM <VirtualMachine[]>]
    [-ResourcePool <ResourcePool[]>] [-Datastore <StorageResource[]>]
    [-Location <VIContainer[]>] [-Tag<Tag[]>] [-Server <VIServer[]>] 
    [<CommonParameters>]

The fourth parameter set is for retrieving hosts by ID:

Get-VMHost [-Server <VIServer[]>] -Id <String[]> [<CommonParameters>]

The -Id parameter is required. The fifth parameter set is for retrieving hosts by related object:

Get-VMHost [-RelatedObject] <VMHostRelatedObjectBase[]>
    [<CommonParameters>]

The -RelatedObject parameter is required.

Don't mix parameters from different sets or you will get an error as follows:

PowerCLI C:\> Get-VMHost -Id HostSystem-host-22 -Name 192.168.0.133
Get-VMHost : Parameter set cannot be resolved using the specified named
    parameters.
At line:1 char:1
+ Get-VMHost -Id HostSystem-host-22 -Name 192.168.0.133
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Get-VMHost], 
                                  ParameterBindingException
    + FullyQualifiedErrorId : AmbiguousParameterSet,
                                  VMware.VimAutomation
                                  .ViCore.Cmdlets.Commands.GetVMHost

To get a list of all of your hosts, type the following command:

PowerCLI C:\> Get-VMHost

By default, only the Name, ConnectionState, PowerState, NumCPU, CpuUsageMhz, CpuTotalMhz, MemoryUsageGB, MemoryTotalGB, and Version properties are shown. To get a list of all of the properties, type the following command:

PowerCLI C:\> Get-VMHost | Format-List -Property *

The output of this command can be seen in the following screenshot:

Retrieving a list of all of your hosts

You can use the Get-VMHost parameters or the Where-Object cmdlet to filter the hosts you want to display, as we did with the Get-VM cmdlet.

Displaying the output in a grid view

Instead of displaying the output of your PowerCLI commands in the PowerCLI console, you can also display the output in a grid view. A grid view is a popup that looks like a spreadsheet with rows and columns. To display the output of the Get-VMHost cmdlet in a grid view, type the following command:

PowerCLI C:\> Get-VMHost | Out-GridView

The preceding command opens the window of the following screenshot:

Displaying the output in a grid view

You can create filters to display only certain rows, and you can sort columns by clicking on the column header. You can also reorder columns by dragging and dropping them. In the following screenshot, we created a filter to show only the hosts with a CpuUsageMhz value greater than or equal to 22. We also changed the order of the ConnectionState and PowerState columns.

Displaying the output in a grid view

Isn't that cool?

You have been reading a chapter from
Learning PowerCLI - Second Edition
Published in: Feb 2017
Publisher:
ISBN-13: 9781786468017
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at €18.99/month. Cancel anytime