## PowerCLI Reference

# Get-VM

## Synopsis

This cmdlet retrieves the virtual machines on a vCenter Server system.

Syntax

Get-VM [[-Name] <String[]>] [-Server <VIServer[]>] [-Datastore <StorageResource[]>] [-Location <VIContainer[]>] [-Tag <Tag[]>] [-NoRecursion] [<CommonParameters>]
Get-VM [[-Name] <String[]>] [-Server <VIServer[]>] [-VirtualSwitch <VirtualSwitchBase[]>] [-Tag <Tag[]>] [<CommonParameters>]
Get-VM [-Server <VIServer[]>] -Id <String[]> [<CommonParameters>]
Get-VM -RelatedObject <VmRelatedObjectBase[]> [<CommonParameters>]

Related Commands

Online version
Remove-VM
New-VM
Set-VM
Move-VM
Start-VM
Stop-VM
Suspend-VM
Restart-VM

Detailed Description

This cmdlet retrieves the virtual machines on a vCenter Server system. Returns a set of virtual machines that correspond to the filter criteria provided by the cmdlet parameters. For virtual machines with multiple NICs and multiple IP addresses, the IPAddress property of the VMGuest object contains all IP addresses of the virtual machine. The IP at position 0 is the primary IP address.

Parameters

Name | Type | Description | Required? | Pipeline Input | Default Value
--- | --- | --- | --- | --- | ---
Name | String[] | Specifies the names of the virtual machines you want to retrieve. | false | false
Datastore | StorageResource[] | Specifies datastores or datastore clusters to filter the virtual machines associated with them. Passing values to this parameter through a pipeline is deprecated and will be removed in a future release. | false | true (ByValue)
Id | String[] | Specifies the IDs of the virtual machines you want to retrieve. Note: When a list of values is specified for the Id parameter, the returned objects would have an ID that matches exactly one of the string values in that list. | true | false
Location | VIContainer[] | Specifies vSphere container objects you want to search for virtual machines. Supported container object types are: ResourcePool, VApp, VMHost, Folder, Cluster, Datacenter. | false | true (ByValue)
NoRecursion | SwitchParameter | Indicates that you want to disable the recursive behavior of the command. | false | false
RelatedObject | VmRelatedObjectBase[] | Specifies objects to retrieve one or more vSphere VirtualMachine objects that are related to them. This parameter accepts vCloud CIVM and OMResource objects. | true | true (ByValue)
Server | VIServer[] | Specifies the vCenter Server systems on which you want to run the cmdlet. If no value is passed to this parameter, the command runs on the default servers. For more information about default servers, see the description of Connect-VIServer. | false | false
Tag | Tag[] | Returns only the virtual machines that are associated with any of the specified tags. | false | false
VirtualSwitch | VirtualSwitchBase[] | When specified, the cmdlet returns only the virtual machines that have network adapters attached to the specified switches. | false | true (ByValue)

Return Type

Zero or more VirtualMachine objects

Notes

The NetworkName property, which is of type NicInfo and is accessed through the Vm.Guest.Nics property, is deprecated. When a virtual machine is part of a vApp, the Folder and FolderId properties are $null.

Examples

-------------- Example 1 --------------

    Get-VM -Name MyVM*

Retrieves all virtual machines whose names starting with "MyVM".

-------------- Example 2 --------------

    $myDatastore = Get-Datastore -Name "MyDatastore"
    Get-VM -Datastore $myDatastore

Retrieves all virtual machines that reside on the specified datastore.

-------------- Example 3 --------------

    $myDatacenter = Get-Datacenter -Name "MyDatacenter"
    Get-VM -Location $myDatacenter

Retrieves all virtual machines in the specified datacenter.

-------------- Example 4 --------------

    $myVDSwitch = Get-VDSwitch -Name "MyVDSwitch"
    Get-VM -DistributedSwitch $myVDSwitch

Retrieves all virtual machines connected to the specified distributed switch.

Copyright © VMware, Inc. All rights reserved.