The VMware vSphere PowerCLI is a command-line tool that helps you manage vSphere virtual machines (VMs), networking, storage and guest operating systems.
This Windows PowerShell snap-in allows you to automate VMware management and avoid manual, human errors. VSphere PowerCLI uses PowerShell to communicate with the vSphere application programming interface (API), making management tasks faster and easier to schedule.
Other hypervisors depend on the command line, and with the move to ESXi approaching, VMware admins will vSphere PowerCLI scripts and commands more than ever. The answers to these frequently asked questions about the VMware vSphere PowerCLI provide some basic commands, troubleshooting tips and advanced uses for the command utility.
What are the basic vSphere PowerCLI functions?
The VMware vSphere PowerCLI offers the same administrative capabilities as those in the ESX console, but you must have PowerShell installed on your system. Whether you’re a veteran VMware admin or a Windows admin new to vSphere, you can use the vSphere PowerCLI to add objects in vCenter, build clusters, create resource pools and add ESX hosts. When creating clusters, VMware PowerCLI cmdlets also support features such as VMware High Availability and Distributed Resource Scheduler.
What are some must-have vSphere PowerCLI scripts?
The VMware vSphere PowerCLI offers cmdlets, executables, scripts and instantiating .NET classes for VMware management. The VSphere PowerCLI scripts are especially useful because you can schedule them at any time, which frees up time for other tasks. One reporting script, for instance, emails you a daily summary of your virtual infrastructure’s activities. Another can detect who created a VM and when, which helps control VM sprawl. Other vSphere PowerCLI scripts check the number of ports on virtual switches and can export reports to Microsoft Word.
How can I create virtual machine reports with PowerCLI?
The Get-VM cmdlet is one of the most common and important vSphere PowerCLI commands. First, connect to your ESX or vCenter server with the Connect-VIServer cmdlet. Then, running the Get-VM cmdlet provides a report with every VM’s name, power state, number of CPUs, amount of memory and more. Properties such as the Guest Property field will link to other computer objects where you can learn more about advanced VMware management features.
What are some common roadblocks with the vSphere PowerCLI?
You may find there’s information that the vSphere PowerCLI just can’t provide. Instead of logging into the console OS, you can use an external PowerShell process for some VMware management tasks, because the VMware vSphere PowerCLI is built on PowerShell. The Get-View cmdlet is another great workaround for PowerCLI roadblocks, especially when feature disparity between the vSphere PowerCLI and the vSphere API gets in your way.
Does the vSphere PowerCLI manage hosts?
Yes, you can use the VMware vSphere PowerCLI with VMware’s host profiles feature to provision new hosts and check existing hosts’ compliance. With host profiles, you select a reference host that has your desired configuration, so all other created hosts will have the same settings. VSphere PowerCLI cmdlets can attach new hosts to the host profile, and later, check the compliance of hosts or an entire cluster against the profile settings.
How does the VMware vSphere PowerCLI carry out bulk tasks?
The VMware vSphere PowerCLI can quickly carry out bulk administration tasks that would take the graphical client much longer. If you need to create virtual LANs on multiple ESX hosts, for example, you can use the vSphere PowerCLI to apply the configuration to every host with the for-each code. To apply the port changes to only certain hosts in a cluster, use PowerCLI filter mechanisms to ensure that other hosts aren’t reconfigured during the process. But if you want to write vSphere PowerCLI scripts that can change network settings for every host in the data center, be sure to test them first.
Can I use the vSphere PowerCLI for virtual desktop management too?
You can use vSphere PowerCLI cmdlets and scripts to create virtual desktops with VMware View. Once you create virtual desktops, you can build several types of desktop pools. With a few VMware View PowerCLI cmdlets, you can also create linked-clone desktop pools and retrieve information about vCenter connections. VMware View has many possible settings, so it can be tricky deciding which subparameters to add to the vSphere PowerCLI cmdlets.
This was first published in May 2011