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!