We are only two months in to 2018, but it has already been pretty exciting from an automation standpoint. Let’s review some of the big news. Microsoft open-sourced and released PowerShell 6.0. They also made it available on a number of operating systems, from Windows to Linux to Mac OS. Then, PowerCLI hit 2,000,000 downloads from the PowerShell Gallery! Today, we are releasing VMware PowerCLI 10.0.0!

Let’s talk about the version change for a second. If you’ve been a PowerCLI user for a couple years, you have probably noticed quite the transformation here recently. One item of note was when the name was changed from vSphere PowerCLI to VMware PowerCLI. This was due to PowerCLI’s ability to manage more than just vSphere. With this release, we are taking that next step to remove ourselves from being in lockstep with vSphere’s versioning. Why did we go with 10? Well, PowerCLI recently celebrated its 10th birthday so it seemed like the perfect number!

Time to take a look at everything that’s new!

Multi-Platform Support

PowerCLI 10.0.0 adds support for Mac OS and Linux! The only pre-requisite is to have PowerShell Core 6.0 installed. The installation process is also the same:

Install-Module -Name VMware.PowerCLI -Scope CurrentUser 1 Install-Module -Name VMware . PowerCLI -Scope CurrentUser

This release brings support for the following modules:

VMware.VimAutomation.Cis.Core

VMware.VimAutomation.Common

VMware.VimAutomation.Core

VMware.VimAutomation.Nsxt

VMware.VimAutomation.Vds

VMware.VimAutomation.Vmc

VMware.VimAutomation.Sdk

VMware.VimAutomation.Storage

VMware.VimAutomation.StorageUtility

Future releases of PowerCLI will continue to add support for the remaining modules.

Default Certificate Handling

This version changes the way certificates are handled when connecting to a vCenter server or ESXi host with the Connect-VIServer cmdlet. If your connection endpoint is using an invalid certificate (self-signed or otherwise), PowerCLI would previously return back a warning. The handling has been updated to be more secure and now return back an error.

If you are using an invalid certificate, you can correct the error with the ‘Set-PowerCLIConfiguration’ cmdlet. The parameter needing to be configured is ‘InvalidCertificateAction’ and the available settings are Fail, Warn, Ignore, Prompt, and Unset.

The following code will configure the ‘InvalidCertificateAction’ parameter to be Ignore:

Set-PowerCLIConfiguration -InvalidCertificateAction Ignore 1 Set -PowerCLIConfiguration -InvalidCertificateAction Ignore

Deprecated Cmdlets and Property

There are five cmdlets being deprecated. These cmdlets are found in the VMware.VimAutomation.Core module. They are:

Get-VMGuestNetworkInterface

Set-VMGuestNetworkInterface

Get-VMGuestRoute

New-VMGuestRoute

Remove-VMGuestRoute

These cmdlets are replaced with the use of the Invoke-VMScript cmdlet.

Sample code to change the IP Address of a Windows VM:

$ipAddr = "192.168.10.25" $subMask = "255.255.255.0" $gw = "192.168.10.1" $netsh = "c:\windows\system32

etsh.exe interface ip set address ""Local Area Connection"" static $ipAddr $subMask $gw 1" Invoke-VMScript -VM $VM -GuestCredential $creds -ScriptType bat -ScriptText $netsh 1 2 3 4 5 $ipAddr = "192.168.10.25" $subMask = "255.255.255.0" $gw = "192.168.10.1" $netsh = "c:\windows\system32

etsh.exe interface ip set address " "Local Area Connection" " static $ipAddr $subMask $gw 1" Invoke-VMScript -VM $VM -GuestCredential $creds -ScriptType bat -ScriptText $netsh

One other deprecation is to the Client property. If you have any scripts that are making use of the ‘Client’ property, you’ll want to get those updated to use the ServiceInstance managed object. More information can be found at the following: ServiceInstance

Resolved Issues

First, I want to thank the community for this section. There was an overwhelming amount of feedback that came in and I’m quite excited about how many items we were able to get resolved! Let’s check some of them out:

Piping the Get-Datacenter cmdlet output to Get-Cluster now works when more than one datacenter is present

Configuring manual MAC addresses with the New/Set-NetworkAdapter cmdlet now accepts all addresses, not just MAC addresses in the 00:50:56 range

VMs with snapshots can be Storage vMotioned to VMFS6 datastores without hitting a ‘redoLogFormat’ error

Lots of updates to the Get-TagAssignment cmdlet, including when connected to two vCenter Servers and also displays the Tag Category as expected

Summary

Today, we release PowerCLI 10.0.0. This release adds support for PowerShell Core 6 which can be run on Linux and Mac OS systems. There are also a handful of VMGuest related cmdlets which have been removed from the release. Their functionality can be replaced with the usage of Invoke-VMScript. Lastly, there have been several corrections. Many of which are thanks to our amazing community for bringing them to our attention.

Remember, updating your PowerCLI modules is now as easy as:

Update-Module VMware.PowerCLI 1 Update-Module VMware . PowerCLI

For more information on changes made in VMware PowerCLI 10.0.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.0.0 User’s Guide. For more information on specific cmdlets, see the VMware PowerCLI 10.0.0 Cmdlet Reference.