Powercli 5.8 R1Released

In case you missed it, Powercli 5.8 R1 was just released. It looks like they mostly added more support for the SRM API and Storage Policy-Based Management (which I don’t currently use).

Here is a link to the release notes:


I have pasted them here for your convenience.

About VMware vSphere PowerCLI

VMware vSphere PowerCLI is a command-line and scripting tool built on Windows PowerShell, and provides more than 400 cmdlets for managing and automating vSphere and vCloud environments.

VMware vSphere PowerCLI Components

VMware vSphere PowerCLI 5.8 Release 1 consists of two components:

  • vSphere PowerCLI is the core component of the PowerCLI package. It contains six snap-ins with cmdlets for managing vSphere features:
    • VMware.VimAutomation.Core: Provides cmdlets for automated administration of the vSphere environment.
    • VMware.VimAutomation.Vds: Provides cmdlets for managing virtual distributed switches and port groups.
    • VMware.VimAutomation.Storage: Provides cmdlets for managing vSphere policy-based storage.
    • VMware.VimAutomation.License: Provides the Get-LicenseDataManager cmdlet for managing VMware License components.
    • VMware.ImageBuilder: Provides cmdlets for managing depots, image profiles, and VIBs.
    • VMware.DeployAutomation: Provides cmdlets that provide an interface to VMware Auto Deploy for provisioning physical hosts with ESXi software.
  • vCloud Director PowerCLI is an optional component that you can install during the PowerCLI installation. It provides the VMware.VimAutomation.Cloud snap-in with cmdlets for automating vCloud Director features.


For a list of software that you need if you want to work with VMware vSphere PowerCLI 5.8 Release 1, see Compatibility Matrixes for vSphere PowerCLI 5.8 Release 1.

Supported Platforms

For a list of VMware vSphere PowerCLI 5.8 Release 1 supported operating systems and PowerShell versions, see Compatibility Matrixes for vSphere PowerCLI 5.8 Release 1.

When running against vCenter Server or ESX/ESXi versions earlier than 5.0, the following PowerCLI features are supported only on the 32-bit version of Windows PowerShell.

  • Invoke-VMScript
  • Copy-VMGuestFile
  • New-VMGuestRoute, Get-VMGuestRoute, and Remove-VMGuestRoute
  • Get-VMGuestNetworkInterface and Set-VMGuestNetworkInterface
  • Set-HardDisk (only when used for resizing guest disk partitions)

For a list of VMware products with which VMware vSphere PowerCLI 5.8 Release 1 is compatible, see VMware Product Interoperability Matrixes.

What’s New in This Release

New Features

This release of vSphere PowerCLI introduces a number of new capabilities and expands on the existing cmdlets introducing cmdlets for Storage Policy-Based Management and providing further management of the VMware vSphere and VMware vCloud Director products.

vSphere PowerCLI 5.8 Release 1 introduces the following new features and improvements:

  • Enhancements have been made to improve the start-up speed of the first PowerCLI cmdlet in a session to ensure access to PowerCLI is now faster.
  • You can now manage storage policies with the Storage Policy-Based Management (SPBM) cmdlets. This functionality is included in a new snap-in for storage, which contains the following cmdlets:
    • Export-SpbmStoragePolicy
    • Get-SpbmCapability
    • Get-SpbmCompatibleStorage
    • Get-SpbmEntityConfiguration
    • Get-SpbmStoragePolicy
    • Import-SpbmStoragePolicy
    • New-SpbmRule
    • New-SpbmRuleSet
    • New-SpbmStoragePolicy
    • Remove-SpbmStoragePolicy
    • Set-SpbmEntityConfiguration
    • Set-SpbmStoragePolicy
  • Enhancements have been made to support deployment of OVF and OVA files with configuration parameters in the following areas:
    • Get-OVFConfiguration allows you to query an OVF or OVA for deployment properties
    • Import-vApp now has an OvfConfiguration parameter which allows for OVFProperties to be passed during deployment
  • You can now filter multiple objects by tag information. A tag parameter has been added to the following cmdlets:
    • Get-Cluster
    • Get-DatastoreCluster
    • Get-Folder
    • Get-ResourcePool
    • Get-DistributedSwitch
    • Get-Datacenter
    • Get-VApp
  • Enhancements have been made to error reporting by including more details in the error messages returned by the cmdlets.
  • You can now pass SpbmStoragePolicy objects to the RelatedObject parameter of the Get-HardDisk and Get-VM cmdlets.
  • You can now provide a filter when working with Datastore Providers.
  • You can now filter on DistributedSwitch and VMHost when using the Get-VMHostNetworkAdapter cmdlet with provided parameters.
  • You can now work with vCloud Director and vCloud Air with support for the latest version of the vCloud Director APIs.
  • vCloud Director cmdlets have been extended to include the New-CIVM and Get-CIVMTemplate cmdlets.
  • The New-CIVapp cmdlet has been extended with a new parameter set, which allows you to create an empty vApp.
  • You can now work with vCenter Site Recovery Manager 5.8 public APIs, as support has been added for the SRM cmdlets to be compatible with this version.
  • Other bug fixes and general performance enhancements have been made to various PowerCLI cmdlets.

For more information on changes made in vSphere PowerCLI 5.8 Release 1, including improvements, security enhancements, and deprecated features, see the vSphere PowerCLI Change Log. For more information on specific product features, see the VMware vSphere PowerCLI 5.8 Release 1 User’s Guide. For more information on specific cmdlets, see the VMware vSphere PowerCLI 5.8 Release 1 Cmdlet Reference.

Known Issues

VMware vSphere PowerCLI 5.8 Release 1 is known to have the following issues:

  • Apply-DrsRecommendation
    Apply-DrsRecommendation runs in asynchronous mode even when called without the RunAsync parameter.
  • Connect-VIServer
    • Connect-VIServer cannot use the Kerberos network authentication protocol to connect to vCenter Server systems that are installed under a custom user account on a Windows system. Connect-VIServer uses NTLM instead.
      Workaround: Install and run vCenter Server under the default system account. Alternatively, you can:

      1. Add another IP to the Windows system where vCenter Server is running.
      2. Register a new A DNS record for the IP.
      3. Run the setspn tool to register an SPN for the new DNS record and associate it with the vCenter Server account under which vCenter Server was installed.
        For example: To register an SPN for the vc-alias.domain.com DNS and the VCAccount account, run:
        setspn -A -HOST/vc-alias.domain.com Domain\VCAccount
      4. Use the new DNS name to connect to the vCenter Server system.
        For example: Run Connect-VIServer vc-alias.domain.com
    • When you use the User and Password parameters to authenticate with a vCenter Server 5.1 or later system, you might not be recognized as a domain user.
      Workaround: Pass the domain name and the user name to the User parameter.
      For example: Run Connect-VIServer my.server.com -Username MyDomain\MyUserName -Password MyPassword
  • Copy-DatastoreItem
    Copy-DatastoreItem throws an error when uploading an item to the root folder of a Datastore Provider drive.
  • Copy-HardDisk
    • On vCenter Server 5.0, Copy-HardDisk cannot change the storage format of the destination hard disk.
    • Using the Thick2GB value for the DestinationStorageFormat parameter is not supported. If you specify this value against an ESX 5.0 host, the connection to the ESX environment is lost.
  • Get-Cluster
    You cannot specify the VM or VMHost parameters in combination with the Location and NoRecursion parameters.
  • Get-Datacenter
    You cannot specify the VM or VMHost parameters in combination with the Location and NoRecursion parameters.
  • Get-HardDisk
    The value of the Persistence property of the object returned by Get-HardDisk is different depending on the way the hard disk is retrieved by the cmdlet.
  • Get-OrgVdc
    You cannot run scripts that use filtering by name by using PowerShell ISE with Windows PowerShell 4.0.
    Workaround: Run your scripts from the PowerShell console.
  • Get-OvfConfiguration
    After you use Get-OvfConfiguration to retrieve the OVF configuration object for an OVA package, you cannot delete or move the OVA package.
    Workaround: Close the PowerCLI session.
  • Get-ResourcePool
    You cannot specify the VM parameter in combination with the Location and NoRecursion parameters.
  • Get-ScsiLun
    When you use Get-ScsiLun to retrieve Powerpath devices, the value of their MultipathPolicy property is shown as Unknown.
  • Get-Template
    The Location parameter of Get-Template does not accept Cluster objects.
  • Get-UsbDevice
    Get-UsbDevice cannot obtain USB devices from snapshots.
  • Get-VDPortgroup
    When you are connected to a vCloud Director 5.1 or later environment, you cannot use the RelatedObject parameter to retrieve a distributed port group from an organization network backed by the port group.
  • Get-View
    • If you run Get-View with the SearchRoot and ViewType parameters and specify a property path for the Property parameter, the linked view of the cmdlet output is not populated.
    • You cannot retrieve the vSphere PowerCLI view of the underlying port group from the vCloud Director PowerCLI view of a network pool backed by the port group.
  • Get-VIEvent
    • If a nonexisting user is specified, Get-VIEvent returns the events for all existing users.
    • Objects returned by Get-VIEvent contain ManagedObjectReference types that are not compatible with the Get-View cmdlet.
  • Get-VirtualSwitch
    When you are connected to a vCloud Director 5.1 or later environment, you cannot use the RelatedObject parameter to retrieve a distributed switch from a network pool backed by the distributed switch.
  • Get-VirtualPortgroup
    When you are connected to a vCloud Director 5.1 or later environment, you cannot use the RelatedObject parameter to retrieve a distributed port group from an organization network backed by the port group.
  • Get-VM
    During the process of creating a template from a virtual machine, Get-VM returns both the virtual machine and template objects.
  • Get-VMHostProfileRequiredInput
    On vCenter Server 5.0, Get-VMHostProfileRequiredInput returns a result even if you pass a hashtable with inapplicable elements.
  • Install-VMHostPatch
    • On ESX 4.0, the LocalPath parameter does not accept paths to .vib files as arguments.
    • Install-VMHostPatch cannot install patches on diskless ESXi servers.
    • Install-VMHostPatch cannot apply VIB patches.

    Workaround: Use metadata.zip patches.

  • Invoke-VMScript
    When using Invoke-VMScript to invoke multi-line BAT and BASH scripts, the command might not run all the script lines.
  • New-CIVAppNetwork
    You can create a vApp network by specifying inconsistent network settings. While the settings of the newly created vApp network are inconsistent, you can only modify them to restore their consistency. To configure the vApp network, run Set-CIVAppNetwork.
  • New-HardDisk
    New-HardDisk does not prompt for confirmation when you try to create a VMDK anti-affinity rule that overwrites an existing one.
  • New-OrgNetwork
    You cannot create new organization networks in vCloud Director 5.1 or later environments.
  • New-OrgVdc
    To ensure backward compatibility, PowerCLI provides limited support for the StorageAllocationGB parameter on vCloud Director 5.1 environments. When you develop new scripts for vCloud Director 5.1 environments, do not use this parameter.
  • New-OSCustomizationSpec
    You cannot add a virtual machine to a domain by using OS customization.
  • Set-OrgVdc
    The StorageAllocationGB parameter is supported only on vCloud Director 1.5.x environments.
  • Set-ScsiController
    Set-ScsiController cannot set both the Type and BusSharingMode parameters at the same time when running against vCenter Server or ESX/ESXi versions 5.1 or earlier.
    Workaround: First run the cmdlet to set the type and then run it again to configure the bus sharing mode.
  • Set-VMGuestNetworkInterface
    On Windows operating systems, Set-VMGuestNetworkInterface becomes non-responsive if the provided IP address conflicts with an existing IP address on the network.
  • Set-VMHost
    • When an ESX/ESXi host is registered with multiple vCenter Server systems, you cannot change the state of the disconnected host to connected.

      1. Run Remove-VMHost to remove the disconnected host from the vCenter Server system that it is registered with.
      2. Run Add-VMHost to attach the host to the vCenter Server system again.
      3. (Optional) Run Set-VMHost to restore the initial configuration of the host.

      The operation authenticates you with the host and automatically changes its state to connected.

    • When you update the value of the VMSwapfileDatastore parameter and immediately retrieve the host information, the value of VMSwapfileDatastore might appear unchanged. If you retrieve the host information after a brief period of time, the change of the property value should be reflected.
  • Set-VMHostNetwork
    Set-VMHostNetwork cannot clear the values of the ConsoleV6Gateway and VMKernelV6Gateway properties of the input object.
  • Set-VMHostNetworkAdapter
    If you have vMotion enabled on one VMKernel NIC and you enable it on a second NIC on the same switch by using Set-VMHostNetworkAdapter, the VMotionEnabled property of the second NIC might still report that vMotion is not enabled. This is because only one NIC can be selected for vMotion, but more than one can be candidate NICs for vMotion. To change the currently active vMotion NIC, first disable the current one and then enable the one you want.
  • Set-VMHostSNMP
      • The default value of the Set-VMHostSNMP TargetPort parameter is a random number instead of the port number.
      • Set-VMHostSNMP skips the value of the TargetPort parameter.
      • Set-VMHostSNMP fails to enable VMHostSNMP and to set the ReadOnlyCommunityString when called for the first time.


      Run the command again.

    • Against ESXi 5.1 hosts, you cannot use the Set-VMHostSNMP cmdlet to modify any trap target-related settings. Attempting to modify any of these settings with the Set-VMHostSNMP cmdlet might cause the ESXi SNMP agent to stop working properly.
  • Get-CIDatastore
    When you specify the ProviderVdc parameter, Get-CIDatastore might return incorrect results if multiple provider virtual datacenters share a datastore.
  • Get-CIVM
    When you are logged in as SysAdmin, the Get-CIVM cmdlet returns system vShield Edge virtual machines used to establish perimeter security in the NAT-routed network.
  • Get-CIVApp
    Get-CIVApp returns all virtual appliance objects in the inventory including expired ones.
  • Get-CIVAppTemplate
    Get-CIVAppTemplate returns all virtual appliance templates in the inventory including expired ones.
  • Inventory Provider
    When run within the Inventory Provider, Get-Datacenter returns the datacenters from the default servers instead from the VIServer folder of the Inventory Provider drive.
  • New-SpbmRule
    When you create an SPBM rule, you can specify a value for the CacheReservation property that is outside the valid range of 0 to 100. You can specify a value from 0 to 1,000,000 and divide it by 10,000 to get the value in percentage. This value in percentage is displayed in the vSphere Web Client, while the actual value that you provide is displayed in PowerCLI.
  • Remove-SpbmStoragePolicy
    If you run Remove-SpbmStoragePolicy with an array of storage policy objects, and one of the objects does not exist, you receive a terminating error.
  • Set-SpbmStoragePolicy
    You can assign the same name to multiple storage policies in the same environment.
  • Other
    • The parameters in the Examples section of SPBM cmdlets in the vSphere PowerCLI Cmdlets Reference.chm file are incorrectly prefixed by a question mark character (?) instead of a hyphen (-).
    • If you apply a policy created from VASA 1.0 capabilities to a virtual machine created on a VSAN datastore, the compliance status of the virtual machine is incorrectly displayed as non-compliant instead of not-applicable.
    • If you clone a virtual machine from a NFS datastore to a VSAN datastore with a mixed storage policy that has both VASA 1.0 and VSAN rule sets, the policy associated with VM Home is removed from the virtual machine.
    • If you create a linked clone of a virtual machine which is associated with a VASA 1.0 profile and then move the cloned virtual machine to a VSAN datastore, the virtual machine’s VM Home and HardDisk properties are incorrectly displayed as compliant.
    • If you apply a storage policy that has VSAN capabilities to a HardDisk object, the SPBM compliance status of the HardDisk object changes to outOfDate.
    • You can modify the SPBM configuration of VirtualMachine and HardDisk objects after disabling SPBM on the cluster in which the objects are located.
    • Users without the Profile-driven storage update privilege can modify SPBM configuration on VirtualMachine and HardDisk objects, and can also enable or disable SPBM on Cluster objects.
    • You cannot create a storage policy if you do not specify a description for a tag or tag category.
    • You can create a storage policy by using a tag that has already been deleted from the SPBM server. When you retrieve information about the policy, the tag is shown as missing.
      Workaround: Use the Get-Tag cmdlet to verify that the tag you want to use exists on the SPBM server.
    • You can create rules by specifying a value for VSAN capabilities of the type ValueType. However, PowerCLI cannot verify whether the value assigned to the capability is within the allowed range of values because the AllowedValue property is not populated.
    • If you are logged in to vCloud Director as a regular user or an organization administrator, you might not be able to retrieve CIView by ID for some of the cloud objects.
      Workaround: Pass the object to the Get-CIView cmdlet.
    • If you try to run a script or binary code which creates new instances of the VimClient class from the VMware.Vim.dll module, you might receive a MissingMethodException error message.
      Workaround: Create new instances of the VimClientImpl class instead of the VimClient class.
    • If you run a vCloud Director PowerCLI cmdlet that uses filtering by name when using Powershell ISE with Windows PowerShell 4.0, the search might not return any result.
    • The types labels in the UpdateViewData property are case-sensitive.
    • When running in 64-bit mode, PowerCLI cannot detect the registry key HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc.\VMware vSphere PowerCLI\, which is used for determining the PowerCLI installation folder. Instead, you can use the following key: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\VMware, Inc.\VMware vSphere PowerCLI.
    • All VIX cmdlets support use of SSPI for Windows guest machines if the underlying vCenter Server is version 5.0. This might not be valid for users who are local, and not domain users. VIX cmdlets are Invoke-VMScript, Copy-VMGuestFile, *-VMGuestNetworkInterface, *-VMGUestRoute, and Set-HardDisk when used for guest disk resizing.

Resolved Issues

The following issues have been resolved in VMware vSphere PowerCLI 5.8 Release 1:

  • Get-ResourcePool
    The RelatedObject parameter does not accept ProviderVdc objects through the pipeline.
  • New-VM
    You cannot deploy a virtual machine by using the New-VM cmdlet when the target is a datastore cluster and the DiskStorageFormat parameter is specified.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: