Merge pull request #55 from shidouli/master

add 1 property and 1 function for vMotionEncryption
This commit is contained in:
Kyle Ruddy
2016-12-22 10:57:50 -05:00
committed by GitHub

View File

@@ -59,6 +59,11 @@ New-VIProperty -Name Locked -ObjectType VirtualMachine -Value {
($vm.extensiondata.Runtime.ConnectionState -eq "invalid") -and ($vm.extensiondata.Config.KeyId) ($vm.extensiondata.Runtime.ConnectionState -eq "invalid") -and ($vm.extensiondata.Config.KeyId)
} -BasedOnExtensionProperty 'Runtime.ConnectionState','Config.KeyId' -Force | Out-Null } -BasedOnExtensionProperty 'Runtime.ConnectionState','Config.KeyId' -Force | Out-Null
New-VIProperty -Name vMotionEncryption -ObjectType VirtualMachine -Value {
Param ($VM)
$VM.ExtensionData.Config.MigrateEncryption
} -BasedOnExtensionProperty 'Config.MigrateEncryption' -Force | Out-Null
New-VIProperty -Name KMSserver -ObjectType VirtualMachine -Value { New-VIProperty -Name KMSserver -ObjectType VirtualMachine -Value {
Param ($VM) Param ($VM)
if ($VM.Encrypted) { if ($VM.Encrypted) {
@@ -108,7 +113,6 @@ Function Enable-VMHostCryptoSafe {
VMware vCenter Server Version : 6.5 VMware vCenter Server Version : 6.5
PowerCLI Version : PowerCLI 6.5 PowerCLI Version : PowerCLI 6.5
PowerShell Version : 3.0 PowerShell Version : 3.0
#> #>
[CmdLetBinding()] [CmdLetBinding()]
@@ -177,7 +181,6 @@ Function Set-VMHostCryptoKey {
VMware vCenter Server Version : 6.5 VMware vCenter Server Version : 6.5
PowerCLI Version : PowerCLI 6.5 PowerCLI Version : PowerCLI 6.5
PowerShell Version : 3.0 PowerShell Version : 3.0
#> #>
[CmdLetBinding()] [CmdLetBinding()]
@@ -231,6 +234,74 @@ Function Set-VMHostCryptoKey {
} }
} }
Function Set-vMotionEncryptionConfig {
<#
.SYNOPSIS
This cmdlet sets the vMotionEncryption property of a VM.
.DESCRIPTION
Use this function to set the vMotionEncryption settings for a VM.
The 'Encryption' parameter is set up with Tab-Complete for the available
options.
.PARAMETER VM
Specifies the VM you want to set the vMotionEncryption property.
.PARAMETER Encryption
Specifies the value you want to set to the vMotionEncryption property.
The Encryption options are: disabled, opportunistic, and required.
.EXAMPLE
PS C:\> Get-VM | Set-vMotionEncryptionConfig -Encryption opportunistic
Sets the vMotionEncryption of all the VMs
.NOTES
Author : Brian Graf, Carrie Yang.
Author email : grafb@vmware.com, yangm@vmware.com
Version : 1.0
==========Tested Against Environment==========
VMware vSphere Hypervisor(ESXi) Version : 6.5
VMware vCenter Server Version : 6.5
PowerCLI Version : PowerCLI 6.5
PowerShell Version : 3.0
#>
[CmdLetBinding()]
param (
[Parameter(Mandatory=$True,ValueFromPipeline=$True,ValueFromPipelinebyPropertyName=$True)]
[VMware.VimAutomation.ViCore.Types.V1.Inventory.VirtualMachine]$VM,
[Parameter(Mandatory=$True]
[ValidateSet("disabled", "opportunistic", "required")]
[String]$Encryption
)
process{
if ($VM.vMotionEncryption -eq $Encryption) {
Write-Warning "The encrypted vMotion state is already $Encrypted, no need to change it."
return
}
if ($VM.Encrypted) {
Write-Error "Cannot change encrypted vMotion state for an encrypted VM."
return
}
$VMView = $VM | get-view
$Config = New-Object VMware.Vim.VirtualMachineConfigSpec
$Config.MigrateEncryption = New-Object VMware.Vim.VirtualMachineConfigSpecEncryptedVMotionModes
$Config.MigrateEncryption = $Encryption
$VMView.ReconfigVM($config)
$VM.ExtensionData.UpdateViewData()
$VM.vMotionEncryption
}
}
Function Enable-VMEncryption { Function Enable-VMEncryption {
<# <#
.SYNOPSIS .SYNOPSIS
@@ -277,7 +348,6 @@ Function Enable-VMEncryption {
VMware vCenter Server Version : 6.5 VMware vCenter Server Version : 6.5
PowerCLI Version : PowerCLI 6.5 PowerCLI Version : PowerCLI 6.5
PowerShell Version : 3.0 PowerShell Version : 3.0
#> #>
[CmdLetBinding()] [CmdLetBinding()]
@@ -438,7 +508,6 @@ Function Enable-VMDiskEncryption {
VMware vCenter Server Version : 6.5 VMware vCenter Server Version : 6.5
PowerCLI Version : PowerCLI 6.5 PowerCLI Version : PowerCLI 6.5
PowerShell Version : 3.0 PowerShell Version : 3.0
#> #>
[CmdLetBinding()] [CmdLetBinding()]
@@ -591,7 +660,6 @@ Function Disable-VMEncryption {
VMware vCenter Server Version : 6.5 VMware vCenter Server Version : 6.5
PowerCLI Version : PowerCLI 6.5 PowerCLI Version : PowerCLI 6.5
PowerShell Version : 3.0 PowerShell Version : 3.0
#> #>
[CmdLetBinding()] [CmdLetBinding()]
@@ -688,7 +756,6 @@ Function Disable-VMDiskEncryption {
VMware vCenter Server Version : 6.5 VMware vCenter Server Version : 6.5
PowerCLI Version : PowerCLI 6.5 PowerCLI Version : PowerCLI 6.5
PowerShell Version : 3.0 PowerShell Version : 3.0
#> #>
[CmdLetBinding()] [CmdLetBinding()]
@@ -824,7 +891,6 @@ Function Set-VMEncryptionKey {
VMware vCenter Server Version : 6.5 VMware vCenter Server Version : 6.5
PowerCLI Version : PowerCLI 6.5 PowerCLI Version : PowerCLI 6.5
PowerShell Version : 3.0 PowerShell Version : 3.0
#> #>
[CmdLetBinding()] [CmdLetBinding()]
@@ -981,7 +1047,6 @@ Function Set-VMDiskEncryptionKey {
VMware vCenter Server Version : 6.5 VMware vCenter Server Version : 6.5
PowerCLI Version : PowerCLI 6.5 PowerCLI Version : PowerCLI 6.5
PowerShell Version : 3.0 PowerShell Version : 3.0
#> #>
[CmdLetBinding()] [CmdLetBinding()]
@@ -1105,7 +1170,6 @@ Function Get-VMEncryptionInfo {
VMware vCenter Server Version : 6.5 VMware vCenter Server Version : 6.5
PowerCLI Version : PowerCLI 6.5 PowerCLI Version : PowerCLI 6.5
PowerShell Version : 3.0 PowerShell Version : 3.0
#> #>
[CmdLetBinding()] [CmdLetBinding()]
@@ -1205,7 +1269,6 @@ Function Get-EntityByCryptoKey {
VMware vCenter Server Version : 6.5 VMware vCenter Server Version : 6.5
PowerCLI Version : PowerCLI 6.5 PowerCLI Version : PowerCLI 6.5
PowerShell Version : 3.0 PowerShell Version : 3.0
#> #>
[CmdLetBinding()] [CmdLetBinding()]
@@ -1331,7 +1394,6 @@ Function New-KMServer {
VMware vCenter Server Version : 6.5 VMware vCenter Server Version : 6.5
PowerCLI Version : PowerCLI 6.5 PowerCLI Version : PowerCLI 6.5
PowerShell Version : 3.0 PowerShell Version : 3.0
#> #>
[CmdLetBinding()] [CmdLetBinding()]
@@ -1491,7 +1553,6 @@ Function Remove-KMServer {
VMware vCenter Server Version : 6.5 VMware vCenter Server Version : 6.5
PowerCLI Version : PowerCLI 6.5 PowerCLI Version : PowerCLI 6.5
PowerShell Version : 3.0 PowerShell Version : 3.0
#> #>
[CmdLetBinding()] [CmdLetBinding()]
@@ -1569,7 +1630,6 @@ Function Get-KMSCluster {
VMware vCenter Server Version : 6.5 VMware vCenter Server Version : 6.5
PowerCLI Version : PowerCLI 6.5 PowerCLI Version : PowerCLI 6.5
PowerShell Version : 3.0 PowerShell Version : 3.0
#> #>
# Confirm the connected VIServer is vCenter Server # Confirm the connected VIServer is vCenter Server
@@ -1661,7 +1721,6 @@ Function Get-KMServerInfo {
VMware vCenter Server Version : 6.5 VMware vCenter Server Version : 6.5
PowerCLI Version : PowerCLI 6.5 PowerCLI Version : PowerCLI 6.5
PowerShell Version : 3.0 PowerShell Version : 3.0
#> #>
[CmdLetBinding()] [CmdLetBinding()]
@@ -1723,7 +1782,6 @@ Function Get-KMServerStatus {
VMware vCenter Server Version : 6.5 VMware vCenter Server Version : 6.5
PowerCLI Version : PowerCLI 6.5 PowerCLI Version : PowerCLI 6.5
PowerShell Version : 3.0 PowerShell Version : 3.0
#> #>
[CmdLetBinding()] [CmdLetBinding()]
@@ -1795,7 +1853,6 @@ Function Get-DefaultKMSCluster {
VMware vCenter Server Version : 6.5 VMware vCenter Server Version : 6.5
PowerCLI Version : PowerCLI 6.5 PowerCLI Version : PowerCLI 6.5
PowerShell Version : 3.0 PowerShell Version : 3.0
#> #>
# Confirm the connected VIServer is vCenter Server # Confirm the connected VIServer is vCenter Server
@@ -1833,7 +1890,6 @@ Function Set-DefaultKMSCluster {
VMware vCenter Server Version : 6.5 VMware vCenter Server Version : 6.5
PowerCLI Version : PowerCLI 6.5 PowerCLI Version : PowerCLI 6.5
PowerShell Version : 3.0 PowerShell Version : 3.0
#> #>
[CmdLetBinding()] [CmdLetBinding()]
@@ -1889,7 +1945,6 @@ Function ConfirmHardDiskIsValid {
.PARAMETER HardDisk .PARAMETER HardDisk
Specifies the hard disks which you want to use to validate. Specifies the hard disks which you want to use to validate.
#> #>
[CmdLetBinding()] [CmdLetBinding()]