Blog

How to Patch / Upgrade VMware vCenter Appliance with Embedded and External Platform Services Controller

Disclaimer: The upgrade process described in this article is tested on vCenter versions 6.5 and 6.7. It should work exactly the same on version 7.0. However, it is always recommended to read the official VMware documentation if there is any doubt. Patching or upgrading a vCenter appliance is a relatively easy task, yet it still […]

Parallel Execution with PSJobs and PowerCLI: Deploying New VMs

PowerShell, as most command line and scripting environments, execute commands sequentially. In other words, instructions run synchronously. This means that PowerShell waits for a command to finish execution before running the next one. While this allows to have more control over each command and its output, it also reduces efficiency because only one action or […]

Replicating VMware NSX-T Services with REST API and PowerShell

Introduction to NSX NSX is a network virtualization VMware product. Originally, VMware came up with NSX-V, which worked exclusively with vSphere. Then, they released NSX-T which supports third-party cloud solutions like AWS. There is an unofficial PowerShell module for NSX-V, PowerNSX, an open-source project created by VMware employees. On the other hand, PowerCLI comes with […]

Getting Detailed Task Information With PowerCLI (Function)

If you are reading this there is a good chance that you have some experience with VMware PowerCLI. If that is the case, you are probably aware that PowerCLI is a solid, mature product. However, as any other software tool, it has some improvement opportunities. One of the most notable examples of its few shortcomings […]

Organize Your PowerShell Code With Regions and Multiline Comments

Introduction When learning any scripting or programming language, we are always told that comments are extremely important, they are essential for code readability and maintainability. Well, PowerShell is no exception to the rule and fortunately there are "tricks" that make it easy to add comments to source code. In this post we will go over […]

Getting CPU Ready Time Stats With VMware PowerCLI

Introduction For those of us involved in the virtualization world, specially with VMware technologies, CPU Ready Time is one of those metrics that are extremely important but also hard to understand for administrators. CPU Ready Time is the percentage of time during which a virtual CPU has to wait to access the physical CPU during […]

PowerShell: Practical Use of PipelineVariable Common Parameter

Introduction The PipelineVariable Common Parameter is one of those PowerShell's "hidden gems" that are often overlooked, and not widely used. When specified, the PipelineVariable parameter stores the objects from the pipeline in a variable named after the assigned parameter value. For instance: Here we assign the value 'Process' to the PipelineVariable parameter, so as long as […]

Function: Search Files in Datastores with PowerCLI vimdatastore PSProvider

From a very simplistic point of view, in vSphere datastores are like "hard drives" where VM files are stored. Normally, there is very little direct interaction between users or administrators with datastore files, they are managed via API by vCenter, ESXi and ultimately by the users who log into the vSphere Web Client. However, there […]

Getting VMKernel Adapter Details in vCenter with PowerCLI

ESXi hosts use VMKernel ports (vmk ports) to send and receive network traffic. Just as a regular, physical NIC, these virtual adapters have several properties that at some point we may need to know or gather for troubleshooting, design or configuration purposes. While it is perfectly possible to look for the vmk details using the […]