VMware PowerCLI – Setup

Release date: September 10th 2021

Welcome to my VMware PowerCLI section. In this section I will detail how I set up PowerCLI mainly to be used with VMware Horizon, both online and offline. The easiest way to do this is to download PowerCLI on an internet connected Windows VM. Using the command below will download the PowerCLI modules to the a local folder, “C:\tmp\PSModules”, the folder has to exist upfront.

Save-Module -Name VMware.PowerCLI -Path C:\tmp\PSModules

Although, running the command above, unfortunately returned the errors below

The reason for these errors, as I understand it, is that PowerShell by default uses TLS 1.0 for web requests, which causes these errors. To work around this, I ran the following command before i retried the initial download command above.

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

I could now download the modules to “C:\tmp\PSModules”

Next, I copy the content of “C:\tmp\PSmodules” to “C:\Program Files\WindowsPowerShell\Modules”, which requires administrative privileges in Windows. Once done, I import the modules into Powershell

Set-ExecutionPolicy RemoteSigned
Get-Module -ListAvailable VMware* | Import-Module

I can now list and verify the version of the PowerCLI modules by running the following command

Get-Module -ListAvailable VMware*

As I mentioned to begin with, I will mainly be using PowerCLI with VMware Horizon. To do this, I will need the module Vmware.Hv.Helper. Therefore I download this as described here: Automating VMware Horizon 7 with VMware PowerCLI As with the other modules above, I copy this to the “C:\Program Files\WindowsPowerShell\Modules” folder. I run the command below to unblock the advanced features of the Vmware.Hv.Helper module

dir 'C:\Program Files\WindowsPowerShell\Modules\VMware.Hv.Helper\' | Unblock-File

Having done all this, I thought I was ready to start creating and running scripts to automate my VMware Horizon operations. NOT! As I discovered, there is a bug in the Vmware.Hv.Helper module, that will result in errors like the one shown below.

The reason for this is the PowerCLI 12.x.x versions. To work around this, I will first need to download PowerCLI v.12.0.0. Next, I will uninstall the 12.x.x versions I downloaded above, using the following command:

Get-Module VMware.* -ListAvailable | Uninstall-Module -Force

Then I delete all VMware.* folders under “C:\Program Files\WindowsPowerShell\Modules” except the VMware.Hv.Helper folder. I extract the downloaded PowerCLI 12 zip file and copy all files and folders to PowerShell’s module directory and run the following command to unblock the modules

Get-ChildItem -Path 'C:\Program Files\WindowsPowerShell\Modules\' -Recurse | Unblock-File

Finally, I verify the PowerCLI modules versions using the command below

Get-Module -ListAvailable VMware*

And that concludes the “online” setup of PowerCLI, to facilitate Automation of different VMware Horizon operations. As I quite often run into environments which have management servers without internet connectivity, I often have to make offline setups. T do this, I extract the PowerCLI 12.0.0 zip file I downloaded above to a temporary folder and add the VMware.Hv.Helper folder to this.

I then transfer this folder to the offline system and copy them to “C:\Program Files\WindowsPowerShell\Modules”. I import the modules and unblock, same as above.

Set-ExecutionPolicy RemoteSigned
Get-Module -ListAvailable VMware* | Import-Module
Get-ChildItem -Path 'C:\Program Files\WindowsPowerShell\Modules\' -Recurse | Unblock-File

At the same time I make the following adjustmenst to CEIP and Ignore SSL Cert warnings

Set-PowerCLIConfiguration -Scope AllUsers -ParticipateInCeip $false -confirm:$false

Set-PowerCLIConfiguration -Scope AllUsers -InvalidCertificateAction Ignore -confirm:$false

Finally, I’m good to go. I can now start scripting automation for VMware Horizon operations, which I have covered here:

Big thanks to the guys mentioned below for helping me in the right direction:

MICHAEL SCHROEDER’s post: PowerCLI offline installation

Graeme Gordon’s post: Automating VMware Horizon 7 with VMware PowerCLI

Eric Monjoin’s post: PowerCLI and VMware Horizon.. error BaseImageVM_List

Disclaimer: Every tips/tricks/posting I have published here, is tried and tested in different it-solutions. It is not guaranteed to work everywhere, but is meant as a tip for other users out there. Remember, Google is your friend and don’t be afraid to steal with pride! Feel free to comment below as needed.

%d bloggers like this: