PowerCLI 10.0.0 was released just a few weeks ago and one of the key updates was the added support for MacOS and Linux operating systems. It’s still amazing to think about! PowerShell and PowerCLI available to users on OSes other than just Windows. Wow!
Let’s put this to action and get PowerCLI installed on a MacOS system.
Prerequisite: Installing PowerShell Core – Package
The minimally required version for MacOS is PowerShell Core 6.0.1. There’s a couple different ways to install PowerShell onto a MacOS system. This first method is downloading the PowerShell package and installing it through GUI installer.
We can start by browsing to the PowerShell GitHub repository, and clicking on the ‘Releases’ button. Alternatively, here’s a direct link: PowerShell Releases page
On the PowerShell Releases page, we will want to download the latest MacOS package to our local system. Now, we will want to run through the installer. Accepting all of the defaults worked in my environment.
Prerequisite: Installing PowerShell – Homebrew
The other main way of installing PowerShell is through Homebrew. Homebrew is a package manager. It will easily allow us to install, update, and remove packages, like PowerShell, directly from the command line!
If you don’t already have Homebew installed, it too can be installed from the command line with the following within Terminal:
1 |
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" |
Next, we’ll need to install Homebrew-Cask. Homebrew-Cask is extension of Homebrew to allow for the downloading of additional, pre-compiled, applications. We will perform the install with the following command within Terminal:
1 |
brew tap caskroom/cask |
Now, we’re ready to install PowerShell onto our MacOS system! This can be done with the following command within Terminal:
1 |
brew cask install powershell |
Installing PowerCLI
We have our prerequisite of PowerShell installed on our MacOS system. We’re now ready to install PowerCLI!
Start by opening Terminal and starting our PowerShell session by entering:
1 |
pwsh |
At this point, we’re in PowerShell so we install PowerCLI just like we have for the past couple versions!
Example:
1 |
Install-Module -Name VMware.PowerCLI -Scope CurrentUser |
At this point, we’re all set! We can start using PowerCLI just like we normally have on Windows systems for years!
Couple Things to Keep in Mind
There are still a couple things to keep in mind as you move forward in the excitement of having PowerCLI on a non-Windows system. PowerShell Core, as well as the underlying .NET Core, are not feature complete to their non-Core counterparts. Make sure to test your scripts thoroughly prior to using them. A recent example that was brought up within the PowerCLI channel in the VMware Code Slack group: ConvertFrom-SecureString doesn’t currently work, as per Issue 1654. Therefore, if you have any scripts containing secure string objects, PowerShell Core will not be able to decrypt them.
The PowerCLI 10.0.0 release starts with support for the following modules, and the rest of the modules will be added over time:
- 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
Some cmdlets, even though they may be in the above list, also still may not function properly. Examples:
- Get-VICredentialStoreItem
- New-VICredentialStoreItem
- Remove-VICredentialStoreItem
- Get-VMHostHardware
- Open-VMConsoleWindow
Wrap-Up
The PowerCLI 10.0.0 release added the much requested support for MacOS and Linux systems! In this blog, we walked through two different methods to make PowerShell Core available on MacOS and how to install PowerCLI.
Let us know what you’re most excited about now that PowerCLI works on multiple OSes!
Any idea on when PowerCLI VMware.ImageBuilder will support PowerShell Core? Currently it just says that it doesn’t support it when I try to Get-DeployRule.
This is pretty much the only piece I actually NEED to use PowerCLI for.
hi Kyle,
Many thanks for that !
i’ve installed it and it work like a charm.
juste one question : what is the correct syntax for PATH in PowerCLI for Mac OS X ?
for example when a try to backup : Get-VMHostFirmware -vmhost xxx.xxx.xxx.xxx -BackupConfiguration -DestinationPath /Downloads is not an acceptable path…
thanks.
would expect it to have a “`” at beginning to work with current user account (instead of root of os drive): Get-VMHostFirmware -vmhost xxx.xxx.xxx.xxx -BackupConfiguration -DestinationPath ~/Downloads
Hi,
after installation I tried to connect to vcenter server but got this error, is there something I have to configure before connection ( on SSL ) ?
Connect-VIServer : 11/28/2019 19:12:06 Connect-VIServer The SSL connection could not be established, see inner exception.
At line:1 char:1
+ Connect-VIServer -Server vcenter.ag.local -User administrator@ag4.loc …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Connect-VIServer], ViError
+ FullyQualifiedErrorId : Client20_ConnectivityServiceImpl_Reconnect_SoapException,VMware.VimAutomation.ViCore.Cmdlets.Commands.ConnectVIServer
PowerShell and Vcenter server are not at the same network ( connect thorough IPsec VPN ) client IP range: 192.168.99.x/24, server range: 10.0.x.x/16 ?
Thanks
Pavel