Create an ‘Internal’ vSwitch with PowerCLI
I was looking for the correct syntax to create a vSwitch with PowerCLI which has no vmnics attached (aka: Internal vSwitch).
I tried to run the following cmdlet. The pNIC’s are specified with the –Nic parameter.
Get-VirtualSwitch -VMHost "ServerName" -Name "vSwitchName" | Set-VirtualSwitch -Nic "" -Confirm:$false
But this resulted in a nice error 🙂
How to use Try – Catch in PowerCLI the easy way
Sometimes you need to check if something exists. For example, let’s check if a specific user exists on our ESX host (you need to connect directly to the ESX host for this example to work).
We do this by running:
Get-VMHostAccount -Id UserName
Add license to a vSphere host
This is a rather short PowerCLI post.
Licensing is not directly available in PowerCLI cmd-lets, so we’ll have to reach out to the SDK, which is easily accessible from PowerShell. We’ll have to fetch a LicenseAssignmentManager to set the license, so this mean using quite some Get-View cmdlets. These could all be combined into a single line of code but makes it hard to read.
$strVMHostName is the name of your ESX(i) server to license
$strLicense is your licensekey. All zero’s like in the example sets the host to evaluation mode.
Enjoy!
$strVMHostName = "HostName.domain.com"
$strLicense = "00000-00000-00000-00000-00000"
$objServiceInstance = Get-View -Id ServiceInstance -Property Content.LicenseManager
$objLicenseManager = Get-View -Id $objServiceInstance.Content.LicenseManager -Property LicenseAssignmentManager
$objLicenseAssignmentManager = Get-View -Id $objLicenseManager.LicenseAssignmentManager
$objVMHost = Get-View -ViewType "HostSystem" -Filter @{Name=$strVMHostName} -Property Config.Host
$objLicenseAssignmentManager.UpdateAssignedLicense($objVMHost.Config.Host.Value, $strLicense, $null)
Load Balance your Exchange Mailboxes across Databases on one or multiple servers.
A while ago i wrote a script to distribute Exchange mailboxes evenly across different mailbox databases on one server.
Recently, that customer installed an additional mailbox server. So the script needed an update to distribute the mailboxes evenly across multiple servers.
Here is the explanation of the script: