Released 26 April 2018 Build 8403314 is VMware PowerCLI 10.1.0 Release notes last updated on 30 April 2018. Check frequently for additions and updates to these release notes. |
VMware PowerCLI 10.1.0 Release Notes
VMware PowerCLI provides a Windows PowerShell interface to the VMware vSphere, vCloud, vRealize Operations Manager, and VMware Horizon APIs. VMware PowerCLI includes numerous cmdlets, sample scripts, and a function library.
About VMware PowerCLI
VMware PowerCLI is a command-line and scripting tool built on Windows PowerShell, and provides more than 600 cmdlets for managing and automating vSphere, vCloud, vRealize Operations Manager, vSAN, NSX-T, VMware Horizon, and VMware Cloud on AWS environments.
Installation, Upgrade, and Removal of VMware PowerCLI
In this release of PowerCLI, an MSI installer is no longer available. Management of the PowerCLI modules is now provided by the PowerShell Gallery and by using the PowerShell default cmdlets for working with modules in the PowerShell Gallery. For detailed information on how to install, upgrade, or remove PowerCLI, refer to the VMware PowerCLI 10.1.0 User's Guide or the PowerCLI Blog.
VMware PowerCLI Components
In VMware PowerCLI 10.1.0, the following modules have been updated:
VMware.PowerCLI
: Provides a root module which other modules are dependent on. This ensures the PowerCLI product can be installed, upgraded, and removed as a complete package if needed.VMware.VimAutomation.Core
: Provides cmdlets for automated administration of the vSphere environment.VMware.VimAutomation.Common
: Provides functionality that is common to all PowerCLI modules. This module has no cmdlets, but is required for other modules to function correctly.VMware.VimAutomation.Sdk
: Provides SDK functionality that is needed by all PowerCLI modules. This module has no cmdlets, but is required for other modules to function correctly.VMware.VimAutomation.Vds
: Provides cmdlets for managing vSphere distributed switches and distributed port groups.VMware.VimAutomation.Cis.Core
: Provides cmdlets for managing vSphere Automation SDK servers.VMware.VimAutomation.Storage
: Provides cmdlets for managing vSphere policy-based storage.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.VMware.VimAutomation.Nsxt
: Provides cmdlets for managing NSX-T servers.
In VMware PowerCLI 10.1.0, the following module has been added:
VMware.Vim
: Provides vSphere low-level binding libraries. This module has no cmdlets.
Requirements
For a list of software that you need if you want to work with VMware PowerCLI 10.1.0, see Compatibility Matrixes for VMware PowerCLI 10.1.0.
Supported Platforms
For a list of VMware PowerCLI 10.1.0 supported operating systems and PowerShell versions, see Compatibility Matrixes for VMware PowerCLI 10.1.0.
For a list of VMware products with which VMware PowerCLI 10.1.0 is compatible, see VMware Product Interoperability Matrixes.
What's New in This Release
New Features
VMware PowerCLI 10.1.0 introduces the following new features, changes, and improvements:
- The new
VMware.Vim
module provides vSphere API bindings, allowing access to the latest features available in the VMware Cloud software-defined data centers (SDDCs). - The
NSX-T
module has been updated to support the new API features in VMware NSX-T 2.1. - VMware PowerCLI has been updated to support the new API features in VMware vSphere 6.7.
- The
Import-VApp
cmdlet has been updated to support SHA-256 and SHA-512 hash algorithms. - The
Set-ScriptBundleAssociation
andRemove-ScriptBundle
cmdlets have been added to theVMware.DeployAutomation
module, providing the ability to work with script bundles. - The
Version
parameter of theNew-VM
andSet-VM
cmdlets has been deprecated and replaced by theHardwareVersion
parameter that accepts string input. - The
Version
property of theVirtualMachine
object has been deprecated and replaced by theHardwareVersion
property.
For more information on changes made in VMware PowerCLI 10.1.0, including improvements, security enhancements, and deprecated features, see the VMware PowerCLI Change Log. For more information on specific product features, see the VMware PowerCLI 10.1.0 User's Guide. For more information on specific cmdlets, see the VMware PowerCLI 10.1.0 Cmdlet Reference.
Resolved Issues
The following issues have been resolved in VMware PowerCLI 10.1.0:
- Get-TagAssignment
When usingGet-TagAssignment
, you cannot query tags on datastore clusters. - Get-VDPortgroup
When runningGet-VDPortgroup
, names that contain a "/" character are returned with a "%2f" string from the API. - Move-VM
When you try to migrate a virtual machine to VMware Cloud on AWS by using Cross vCenter Server vMotion, the operation might fail. - Set-PowerCLIConfiguration
When you runSet-PowerCLIConfiguration
and the value of theInvalidCertificateAction
parameter is set toUnset
orWarn
, valid certificates might appear as invalid. - Other
VMware.VimAutomation.Vds
: Cmdlet formatting does not work.
Known Issues
VMware PowerCLI 10.1.0 is known to have the following issues:
- Add-EntityBaseline
The text of the error message that appears when you try to attach a baseline to a non-existing entity is improper. - Apply-DrsRecommendation
Apply-DrsRecommendation
runs in asynchronous mode even when called without theRunAsync
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:
- Add another IP to the Windows system where vCenter Server is running.
- Register a new A DNS record for the IP.
- 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
- Use the new DNS name to connect to the vCenter Server system.
For example: RunConnect-VIServer vc-alias.domain.com
-
When you use the
User
andPassword
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 theUser
parameter.
For example: RunConnect-VIServer my.server.com -Username MyDomain\MyUserName -Password MyPassword
-
When you want to reconnect to a server in the same session by running
Connect-VIServer
on Windows 7, you might receive an error message of typeInvalid server certificate
or similar to this. The issue might occur even if you specify that invalid certificate errors should be ignored.
Workaround:- Use Windows 10.
- Restart the PowerShell session.
- Increase the value of
[System.Net.ServicePointManager]::MaxServicePointIdleTime
to a value that is larger than the expected idle time of the script. - Trust the certificate of the server from the Windows systems certificate store.
-
- 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 theDestinationStorageFormat
parameter is not supported. If you specify this value against an ESX 5.0 host, the connection to the ESX environment is lost.
-
On vCenter Server 5.0,
- Get-CIDatastore
When you specify theProviderVdc
parameter,Get-CIDatastore
might return incorrect results if multiple provider virtual data centers share a datastore. - Get-CIVM
When you are logged in as SysAdmin, theGet-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. - Get-Cluster
You cannot specify theVM
orVMHost
parameters in combination with theLocation
andNoRecursion
parameters.
- Get-Datacenter
You cannot specify theVM
orVMHost
parameters in combination with theLocation
andNoRecursion
parameters.
- Get-HardDisk
The value of thePersistence
property of the object returned byGet-HardDisk
is different depending on the way the hard disk is retrieved by the cmdlet. - Get-Log
When you try to retrieve a log from vSphere 6.0 or later, you might receive aThere is an error in XML document
error message.
Workaround: Use theBundle
parameter to retrieve the whole log bundle, or theStartLineNum
andNumLines
parameters to retrieve specific lines from the log. - Get-OMAlert
If you use theAssignedUser
parameter to filter alerts and some of the retrieved alerts are assigned to theadmin
user,Get-OMAlert
returns those alerts with emptyAssignedUser
property.
Workaround: To retrieve only the non-assigned alerts, use both theAssignedUser
andStatus
parameters as filters. - Get-OMResource
TheResourceKind
parameter does not work against vRealize Operations Manager 6.1.
Note: The parameter works against vRealize Operations Manager 6.2. - Get-OMStat
TheKey
parameter does not work against vRealize Operations Manager 6.1.
Workaround: Use a client-side script to filter by key.
Note: The parameter works against vRealize Operations Manager 6.2. - Get-OMStatKey
-
If you retrieve statistic keys by
OMResource
instance, some items might have empty properties. The returned keys that identify metric data for a specific instance object, like a CPU or network adapter, do not contain a description orExtensionData
info. -
Get-OMStatKey
does not work against vRealize Operations Manager 6.1.
Note: The cmdlet works against vRealize Operations Manager 6.2.
-
If you retrieve statistic keys by
- Get-OMUser
Get-OMUser
does not return the vRealize Operations Manageramdin
user and other internal users. If you specifyadmin
for theName
parameter,Get-OMUser
returns$null
. For more information, see the vRealize Operations Manager 6.0.3 Release Notes. - Get-ResourcePool
You cannot specify theVM
parameter in combination with theLocation
andNoRecursion
parameters. - Get-ScsiLun
When you useGet-ScsiLun
to retrieve Powerpath devices, the value of theirMultipathPolicy
property is shown asUnknown
. - Get-SpbmStoragePolicy
If you try to retrieve storage policy contents and any VASA provider does not comply with the constraints in the resource storage policy, you receive a validation error for these resource storage policies. All valid storage policies are returned by the cmdlet. - Get-TagAssignment
If you runGet-TagAssignment
against a vCenter Server 6.0.x system that uses a non-default HTTPS port, the cmdlet fails.
Workaround: Configure the vCenter Server 6.0.x system to use the default HTTPS port (443). - Get-Template
TheLocation
parameter ofGet-Template
does not acceptCluster
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 theRelatedObject
parameter to retrieve a distributed port group from an organization network backed by the port group. - Get-View
-
If you run
Get-View
with theSearchRoot
andViewType
parameters and specify a property path for theProperty
parameter, the linked view of the cmdlet output is not populated. - You cannot retrieve the VMware PowerCLI view of the underlying port group from the vCloud Director PowerCLI view of a network pool backed by the port group.
-
If you run
- Get-VIEvent
-
Filtering by type might return incorrect results. For example, if you specify
Warning
as the value for theTypes
parameter, you might receiveInfo
andError
type events in addition to theWarning
events. -
If a nonexisting user is specified,
Get-VIEvent
returns the events for all existing users. -
Objects returned by
Get-VIEvent
containManagedObjectReference
types that are not compatible with theGet-View
cmdlet.
-
Filtering by type might return incorrect results. For example, if you specify
- Get-VirtualSwitch
When you are connected to a vCloud Director 5.1 or later environment, you cannot use theRelatedObject
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 theRelatedObject
parameter to retrieve a distributed port group from an organization network backed by the port group. - Get-VM
-
If a virtual machine is in the root virtual machine folder within a vApp and you try to retrieve the virtual machine by using the
NoRecoursion
parameter ofGet-VM
and specifying the root folder for theLocation
parameter, the virtual machine is not returned. -
If a virtual machine is in the root virtual machine folder within a vApp and you try to retrieve the virtual machine by using
Get-VM
, the<vm>.Folder
and<vm>.FolderId
properties are returned as$null
. -
During the process of creating a template from a virtual machine,
Get-VM
returns both the virtual machine and template objects.
-
If a virtual machine is in the root virtual machine folder within a vApp and you try to retrieve the virtual machine by using the
- Get-VMHostProfileRequiredInput
On vCenter Server 5.0,Get-VMHostProfileRequiredInput
returns a result even if you pass a hashtable with inapplicable elements. - Get-VsanResyncingComponent
Even if vCenter Server 6.0.x shows there are synchronizing components,Get-VsanResyncingComponent
returns$null
.
Workaround: Upgrade to vCenter Server 6.5 or later. - Import-Module
-
If you try to import the
VMware.ImageBuilder
module in a clean PowerShell session, you receive an error message and the import process fails.
Workaround: Import theVMware.VimAutomation.Core
module before importing theVMware.ImageBuilder
module. -
If you try to import
VMware.PowerCLI
module on PowerShell Core 6.0.1, you receive an error message and the import process fails.
Workaround: Import each module separately.
-
If you try to import the
- Import-vApp
When you try to import a vApp and specify a datastore cluster to theDatastore
parameter, PowerCLI automatically selects datastores from the specified cluster where to store the vApp, and if some of the datastores do not have enough free space, you receive anInvalid datastore format
error message.
Workaround: Ensure that there is enough free space on all datastores in the cluster, or use theDatastore
parameter to specify a datastore that has enough free space. - Install-VMHostPatch
-
Install-VMHostPatch
cannot install patches on diskless ESXi servers. -
Install-VMHostPatch
cannot apply VIB patches.
Workaround: Usemetadata.zip
patches.
-
- Invoke-VMScript
When usingInvoke-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, runSet-CIVAppNetwork
. - New-DrsRule
If you try to create a new DRS rule by specifying multiple clusters from different servers and virtual machines with identical IDs on different servers, you receive an error message and the process fails.
Workaround: Create a new DRS rule for each cluster separately. - 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 theStorageAllocationGB
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. - New-SpbmRule
When you create an SPBM rule, you can specify a value for theCacheReservation
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. - New-VAIOFilter
If you try to install a VAIO filter on a cluster, the VAIO filter might install successfully on some hosts, but fail to install on other hosts.
Workaround: UseGet-VAIOFilter
to check whether the same VAIO filter is already installed on the cluster. If installed, useRemove-VAIOFilter
before trying to install the same VAIO filter again. - New-VM
When you are connected to a server which uses an invalid certificate and you specify theContentLibraryItem
parameter when runningNew-VM
, the process might become non-responsive.
Workaround: RunSet-PowerCLIConfiguration
and set the value of theInvalidCertificateAction
parameter toIgnore
orFail
. - New-VMHostNetworkAdapter
When you runNew-VMHostNetworkAdapter
against vSphere 6.7 and specify theFaultToleranceLoggingEnabled
parameter, you might receive an error message of typeThe VirtualNic capability 'faultToleranceLogging' is not supported on VMHost
.
Workaround:- Create a network adapter without specifying the
FaultToleranceLoggingEnabled
parameter. - Update the network adapter by running
Set-VMHostNetworkAdapter
and specifying theFaultToleranceLoggingEnabled
parameter.
- Create a network adapter without specifying the
- Remove-VMHostNtpServer
Remove-VMHostNtpServer
might not remove NTP servers from the NTP server list depending on the server version. - Set-DRSRule
If you try to update multiple DRS rules from different servers and specify virtual machines with identical IDs on different servers, you receive an error message and the process fails.
Workaround: Update each DRS rule separately. - Set-OrgVdc
TheStorageAllocationGB
parameter is supported only on vCloud Director 1.5.x environments. - Set-OSCustomizationSpec
When you try to set theWorkgroup
parameter ofSet-OSCustomizationSpec
against .NET core on macOS, the cmdlet may fail with а message of typeValue cannot be null
. - Set-ScsiController
Set-ScsiController
cannot set both theType
andBusSharingMode
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-SpbmEntityConfiguration
You cannot disable SPBM on clusters in vSphere 6.0 environments. - 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.
Workaround:- Run
Remove-VMHost
to remove the disconnected host from the vCenter Server system that it is registered with. - Run
Add-VMHost
to attach the host to the vCenter Server system again. - (Optional) Run
Set-VMHost
to restore the initial configuration of the host.
- Run
-
When you update the value of the
VMSwapfileDatastore
parameter and immediately retrieve the host information, the value ofVMSwapfileDatastore
might appear unchanged. If you retrieve the host information after a brief period of time, the change of the property value should be reflected.
-
When an ESX/ESXi host is registered with multiple vCenter Server systems, you cannot change the state of the disconnected host to connected.
- Set-VMHostNetwork
Set-VMHostNetwork
cannot clear the values of theConsoleV6Gateway
andVMKernelV6Gateway
properties of the input object. - Set-VMHostNetworkAdapter
-
If you connect to a vCenter Server 6.5 system and set an IPv6 address to a virtual NIC, the value of the
AutomaticIPv6
property is changed to$true
instead of$false
.
Workaround: When you set the IPv6 address, explicitly specify the value of theAutomaticIPv6
parameter as$false
. -
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
, theVMotionEnabled
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.
-
If you connect to a vCenter Server 6.5 system and set an IPv6 address to a virtual NIC, the value of the
- 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 theTargetPort
parameter. -
Set-VMHostSNMP
fails to enableVMHostSNMP
and to set theReadOnlyCommunityString
when called for the first time.
Workaround: Run the command again.
-
The default value of the
- Set-VsanClusterConfiguration
When you runSet-VsanClusterConfiguration
, theAddSilentHealthCheck
andRemoveSilentHealthCheck
parameters do not update any values.
Workaround: Update to vSAN 6.7. - Inventory Provider
When run within the Inventory Provider,Get-Datacenter
returns the data centers from the default servers instead from theVIServer
folder of the Inventory Provider drive. - Other
-
If you have installed the SAP Crystal Reports runtime engine for .NET Framework and try to start the 64-bit version of PowerCLI, you might receive an error message of type
Could not load file or assembly ‘log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304’ or one of its dependencies. The system cannot find the file specified.
Workaround: Start Windows PowerShell (x86) and import the PowerCLI modules that you want to use. -
When you run a cmdlet and the operation fails on the server side, you might receive a
There is an error in the XML document.
error message. This is not a valid server error and it is returned when PowerShell is unable to read the actual server-side error.
Workaround: Use the vSphere Web Client to check the actual server-side error. -
If you use multiple PowerShell ISE tabs and try to run
Import-Module
, you might receive an error message.
Workaround: Use multiple PowerShell ISE instances instead of using multiple ISE tabs within a single ISE instance. - If you apply a policy created from VASA 1.0 capabilities to a virtual machine created on a Virtual SAN 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 Virtual SAN datastore with a mixed storage policy that has both VASA 1.0 and Virtual SAN 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 Virtual SAN datastore, the virtual machine's
VM Home
andHardDisk
properties are incorrectly displayed as compliant. -
If you apply a storage policy that has Virtual SAN capabilities to a
HardDisk
object, the SPBM compliance status of theHardDisk
object changes tooutOfDate
. -
You can modify the SPBM configuration of
VirtualMachine
andHardDisk
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 onVirtualMachine
andHardDisk
objects, and can also enable or disable SPBM onCluster
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 theGet-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 Virtual SAN capabilities of the type
ValueType
. However, PowerCLI cannot verify whether the value assigned to the capability is within the allowed range of values because theAllowedValue
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 theGet-CIView
cmdlet. -
If you try to run a script or binary code which creates new instances of the
VimClient
class from theVMware.Vim.dll
module, you might receive aMissingMethodException
error message.
Workaround: Create new instances of theVimClientImpl
class instead of theVimClient
class. -
The types labels in the
UpdateViewData
property are case-sensitive. -
All guest OS 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. Gest OS cmdlets are
Invoke-VMScript
andSet-HardDisk
when used for guest disk resizing.
-
If you have installed the SAP Crystal Reports runtime engine for .NET Framework and try to start the 64-bit version of PowerCLI, you might receive an error message of type