Files
PowerCLI-Example-Scripts/Scripts/Set-ClusterDpm.ps1
Doug Taliaferro 1b7ea80342 Create Set-ClusterDpm.ps1
Configures Distributed Power Managment (DPM)
2019-10-11 09:30:38 -04:00

64 lines
1.8 KiB
PowerShell

<#
.NOTES
Script name: Set-ClusterDpm.ps1
Created on: 10/10/2019
Author: Doug Taliaferro, @virtually_doug
Description: Configures Distributed Power Management (DPM) on a cluster.
Dependencies: None known
===Tested Against Environment====
vSphere Version: 6.7
PowerCLI Version: 11.3.0
PowerShell Version: 5.1
OS Version: Windows 7, 10
Keyword: Cluster, DPM
.SYNOPSIS
Configures Distributed Power Management (DPM).
.DESCRIPTION
Enables/disables Distributed Power Management (DPM) for one or more clusters and optionally sets the automation level.
.PARAMETER Clusters
Specifies the name of the cluster(s) you want to configure.
.PARAMETER DpmEnabled
Indicates whether Distributed Power Management (DPM) should be enabled/disabled.
.PARAMETER DpmAutomationLevel
Specifies the Distributed Power Management (DPM) automation level. The valid values are 'automated' and 'manual'.
.EXAMPLE
Set-ClusterDpm -Cluster 'Cluster01' -DpmEnabled:$true
.EXAMPLE
Get-Cluster | Set-ClusterDpm -DpmEnabled:$true -DpmAutomationLevel 'automated'
#>
[CmdletBinding()]
param (
[Parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)]
[Alias('Name')]
[string[]]$Clusters,
[Parameter(Mandatory=$true)]
[bool]$DpmEnabled,
[Parameter(Mandatory = $false)]
[ValidateSet('automated','manual')]
[string]$DpmAutomationLevel
)
Begin {
# Create a configuration spec
$spec = New-Object VMware.Vim.ClusterConfigSpecEx
$spec.dpmConfig = New-Object VMware.Vim.ClusterDpmConfigInfo
$spec.dpmConfig.enabled = $DpmEnabled
if ($DpmAutomationLevel) {
$spec.dpmConfig.defaultDpmBehavior = $DpmAutomationLevel
}
}
Process {
ForEach ($cluster in $Clusters) {
# Configure the cluster
(Get-Cluster $cluster).ExtensionData.ReconfigureComputeResource_Task($spec, $true)
}
}