-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathSetVsanClusterLicense.ps1
57 lines (42 loc) · 1.96 KB
/
SetVsanClusterLicense.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Function Set-VsanClusterLicense {
<#
.SYNOPSIS
Set the assigned license for a vSAN Cluster
.DESCRIPTION
Set the assigned license for a vSAN Cluster
.PARAMETER License
The vSAN license to apply to the cluster
.PARAMETER Cluster
The Type of Controller to change to
.EXAMPLE
PS C:\> Set-VsanClusterLicense -License "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" -Cluster "ClusterName"
.NOTES
Author : Jase McCarty
Version : 0.1
Requires : PowerCLI Desktop 6.5 or higher
#>
# Set Parameters
[CmdletBinding()]Param(
[Parameter(Mandatory=$true)][String]$License,
[Parameter(Mandatory=$true)][String]$Cluster)
# Get the License Manager View and assign it to the LicenseManager variable
$LicenseManager = Get-View $global:DefaultVIServer.ExtensionData.Content.LicenseManager
# Get the LicenseAssignmentManager so a license can be assigned
$LicenseAssignmentManager= Get-View $LicenseManager.LicenseAssignmentManager
# Get the Managed Object Reference for the vSAN Cluster so the license can be applied to it.
$ClusterComputeResource = (Get-Cluster -Name $Cluster | Get-View)
# Retrieve a list of the current vSAN licenses added to vCenter
$CurrentVsanLicenses = $LicenseManager.Licenses | Where-Object {$_.EditionKey -like "vsan.*"}
# Determine whether the license is already present or not in vCenter
if ($License -in $CurrentVsanLicenses.LicenseKey) {
# Already present, so good
Write-Host "$License License Already Present in vCenter"
} else {
# Not present, so we need to add it to vCenter
Write-Host "$License being added to vCenter"
$LicenseManager.AddLicense($License,$null)
}
# Assign the license to the vSAN Cluster
$LicenseAssignmentManager.UpdateAssignedLicense($ClusterComputeResource.Moref.value,$License,"vSAN")
}
Set-VsanClusterLicense -License "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" -Cluster "ClusterName"