PowerShell
PowerCLI: New cmdlets for Update Manager
Mar 3rd
VMware have this morning / last night released some PowerCLI cmdlets for VMware Update Manager (VUM). A short description can be found of them below:
| Cmdlet Name | Cmdlet Description |
| Attach-Baseline | Attaches baselines to the specified Template, VirtualMachine, VMHost, Cluster, Datacenter, Folder, and VApp objects.
Attaching a baseline to a container object such as a folder or datacenter transitively attaches the baseline to all objects in the container. |
| Detach-Baseline | Detaches baselines from the specified inventory objects. |
| Download-Patch | Downloads new patches into the Update Manager patch repository from the enabled patch download sources. |
| Get-Baseline | Retrieves the baselines specified by the provided cmdlet
parameters. |
| Get-Compliance | Retrieve baseline compliance data for the specified object of type Template, VirtualMachine, VMHost, Cluster, Datacenter, Folder, and VApp. |
| Get-Patch | Retrieves all available patches or those specified by the provided cmdlet parameters. |
| Get-PatchBaseline | Retrieves all patch baselines or those specified by the provided cmdlet parameters. |
| New-PatchBaseline | Creates a new patch baseline. Patch baselines can be applied to either hosts or virtual machines. Depending on the patch criteria you select, patch baselines can be either dynamic or static (fixed). |
| Remediate-Inventory | Remediates an inventory object against the specified baselines. |
| Remove-Baseline | Deletes the specified baselines from their servers. Before the
removal, the baselines are detached from all entities they have been attached to. |
| Scan-Inventory | Scans inventory objects for baselines attached to them. |
| Set-PatchBaseline | Modifies the properties of a patch baseline. You can specify explicitly the patches you want to include in the baseline through the IncludePatch parameter. |
| Stage-Patch | Initializes staging of patches. Staging allows you to download
patches from the Update Manager server to the ESX/ESXi hosts, without applying the patches immediately. |
The cmdlets can be downloaded from VMware’s website as a PowerShell Snapin and require PowerCLI 4.0 U1.
I look forward to seeing a few scripts pop out in the next few days that make use of these.
Basics: Open PowerCLI using different credentials
Feb 19th
Everytime I use a different PC or laptop I always forget to do this after installing PowerCLI. I happily open PowerCLI up and try to connect to a vCenter server and get prompted for my login information. This is how I feel:

Every time in that session that “Connect-VIServer” is used I’ll get it because my normal domain account doesn’t have any privileges in vCenter. The point of this post isn’t to teach anyone to suck eggs but maybe it’ll help me remember in future to make one tiny change after installing PowerCLI.
Right click on the PowerCLI shortcut and open the shortcut’s properties.

Click the “Advanced” button.

Tick the box “Run with different credentials”. OK everything.
The next time the the shortcut is used the option to specify different credentials is shown:

Entering a different account here saves having to do it each time “Connect-VIServer” is used. There are other things that can be done of course. Maybe I’ll save those for another day.
PowerShell 2.0 Installation Error
Feb 11th
I was trying to install PowerShell 2.0 and kept getting an error part way through that simply told me that access was denied while installing the Windows Management Framework Core. The installation was then rolled back. I tried a few times, with local and domain administrator accounts but to no avail. The following event was logged each time in the system event log:

After some poking around I found that the local Administrators group did not not have Full Control of the registry key HKLM\Software\Microsoft\Windows NT\CurrentVersion\Svchost to which it was trying to write.

Just thought I’d share this in case anyone else encountered it.
PowerCLI: Adding New PortGroups
Jan 6th
I’m sure that someone somewhere has written a script exactly like this in the past but I wanted to write my own for a number of reasons. While I’ll probably never be a PowerCLI hero, it really doesn’t hurt to keep in practice and hone your skills.
Let’s start with what I want to accomplish. I’m working with an ESX 3.5 web hosting environment and there’s a new project in the pipelines. A brace of new servers are required and they’ll be on a new VLAN. The VLAN has been created and configured on the various switches that the ESX hosts connect to but now of course a corresponding PortGroup is required. (Actually two are needed – complex project.) Now we’re not talking about a huge number of hosts here. It would probably only take 10 minutes to do it by hand using the VI client. It’ll take me longer to write this post! However, it is something that happens relatively often in this environment so it’s worth taking the time to write a script. More >

