How to use VMware vSphere automation with PowerCLI – first steps

The scale of a virtualized environment might vary greatly. As a system administrator, you probably know that it’s critical to set it up consistently and automate as many processes as possible – no matter the actual size. 

If you’re using VMware ESX / ESXi hypervisors with vCenter as your management software, you already have a lot of automated options at your disposal to help you keep your infrastructure running smoothly. In this article, we will talk about VMware vSphere PowerCLI, which is an automation tool for Microsoft’s Windows PowerShell command-line tool.

Install VMware PowerCLI

To start using many automation tools that vSphere PowerCLI provides, first you need to download it. You can do it from the VMware PowerCLI page, where you will find the newest version of the software and documentation. After you have installed PowerCLI, you can access it by the shortcut placed on the desktop. 

Connect PowerCLI to VMware instance

After you’ve installed the PowerCLI modules, you may use them directly from your PowerShell prompt. You also don’t need to explicitly import the modules before using PowerCLI, they’ll be imported and autocompleted in your prompt automatically.

Now you may access your VMware environment. A single ESXi host or a vCenter server can be connected.

To establish a connection, you can simply use the Connect-VIServer cmdlet with the –Server parameter.

If you see a request for login credentials, enter the right credentials and click OK. You will be immediately linked to vCenter if the user you are presently signed in as in Windows has rights on vCenter.

The connection information will be shown, and a PowerCLI connection to the vCenter Server will now be established.

The content of the “$DefaultVIServer” is the vCenter or ESXi object you’re connected to, which will be displayed in the output. Whether you’re connecting to a host or a vCenter server, the approach is the same.

As you invest in your infrastructure, don’t skip the security and backup of the VMware ecosystem.

VMware vSphere automation with PowerCLI

Now that you’ve set up and linked your VMware automation tools, it’s time to see how you can utilize them to automate as much of your VM maintenance as possible. Here you will find a few ways that you can help automate your environment. Have in mind that the few examples provided here are self-contained operations, but from them, you can create powerful combinations. 

One of the best features of PowerShell is the simple ability to build up a collection of commands overtime to do increasingly complicated tasks. As a result, you’ll be able to inspect and properly set up your VMs in a single step.

Review and configure virtual machines

Because the primary purpose of virtual infrastructures is to operate virtual machines, a good example is a Get-VM cmdlet, which can provide a basic inventory of all VMs currently present in VMware vCenter. You may get the specific characteristics that are of interest using the Get-VM cmdlet and the normal PowerShell Select-Object cmdlet, and then use Export-CSV to export the data for further editing and dissemination.

Capacity information

The PowerCLI cmdlets may be used to get a rapid overview of the number of hosts and VMs in the Virtual Center, it’s a good idea to keep track of these numbers on a monthly basis so that the environment’s growth can be followed. Another valuable indicator to keep track of on a regular basis in order to see what consolidation ratios are being reached and plan for future capacity demands is the average number of VMs per host in a cluster, which PowerCLI can help you determine.

Deploy VMs from a template

Creating a basic template and using the Guest Customisation functionality to sysprep a new Windows virtual machine makes deploying new virtual machines a breeze. However, if you’re installing several virtual machines using the GUI, even this approach can rapidly become tedious.

The virtual machines may be quickly installed with PowerCLI by reading in the input data using Import-CSV. Then we cycle through the virtual machines, getting the template, host, datastore, and customization to use for each deployment before ultimately running the New-VM cmdlet and providing it the different parameters to utilize for building each VM.

Rescanning for new storages

Using the vSphere Client GUI to re-scan all hosts in a cluster for new storage after an extra SAN Lun was created used to be one of the most time-consuming jobs for a VMware administrator. This would need picking each host in the cluster separately, scanning it for new storage, and then going on to the next host until all were completed, a  very time-consuming procedure.


Automation is all about improving efficiency and saving time. Automation can substantially assist in particular VMware setups of any size. This article has introduced you to some of the options and how you may use them to improve and maintain the consistency of your systems. Showing you in little examples how powerful is VMware vSphere automation with PowerCLI.