Merge pull request #55 from shidouli/master
add 1 property and 1 function for vMotionEncryption
This commit is contained in:
@@ -59,12 +59,17 @@ 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) {
|
||||||
$VM.EncryptionKeyId.ProviderId.Id
|
$VM.EncryptionKeyId.ProviderId.Id
|
||||||
}
|
}
|
||||||
} -BasedOnExtensionProperty 'Config.KeyId' -Force | Out-Null
|
} -BasedOnExtensionProperty 'Config.KeyId' -Force | Out-Null
|
||||||
|
|
||||||
New-VIProperty -Name Encrypted -ObjectType HardDisk -Value {
|
New-VIProperty -Name Encrypted -ObjectType HardDisk -Value {
|
||||||
Param ($hardDisk)
|
Param ($hardDisk)
|
||||||
@@ -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()]
|
||||||
@@ -1094,7 +1159,7 @@ Function Get-VMEncryptionInfo {
|
|||||||
.NOTES
|
.NOTES
|
||||||
If $HardDisk is specified, then only the encryption information of the disks specified in $HardDisk is obtained.
|
If $HardDisk is specified, then only the encryption information of the disks specified in $HardDisk is obtained.
|
||||||
Otherwise, all disks' encryption information of the specified VM is returned.
|
Otherwise, all disks' encryption information of the specified VM is returned.
|
||||||
|
|
||||||
.NOTES
|
.NOTES
|
||||||
Author : Carrie Yang.
|
Author : Carrie Yang.
|
||||||
Author email : yangm@vmware.com
|
Author email : yangm@vmware.com
|
||||||
@@ -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()]
|
||||||
@@ -1194,7 +1258,7 @@ Function Get-EntityByCryptoKey {
|
|||||||
.NOTES
|
.NOTES
|
||||||
At least one of the KeyId and KMSClusterId parameters is required.
|
At least one of the KeyId and KMSClusterId parameters is required.
|
||||||
If the SearchVMHosts, SearchVMs and SearchDisks all not specified, the cmdlet return $null.
|
If the SearchVMHosts, SearchVMs and SearchDisks all not specified, the cmdlet return $null.
|
||||||
|
|
||||||
.NOTES
|
.NOTES
|
||||||
Author : Baoyin Qiao.
|
Author : Baoyin Qiao.
|
||||||
Author email : bqiao@vmware.com
|
Author email : bqiao@vmware.com
|
||||||
@@ -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
|
||||||
@@ -1822,7 +1879,7 @@ Function Set-DefaultKMSCluster {
|
|||||||
C:\PS>Set-DefaultKMSCluster -KMSClusterId 'ClusterIdString'
|
C:\PS>Set-DefaultKMSCluster -KMSClusterId 'ClusterIdString'
|
||||||
|
|
||||||
Sets the KMS cluster whose cluster ID is 'ClusterIdString' as the default KMS cluster.
|
Sets the KMS cluster whose cluster ID is 'ClusterIdString' as the default KMS cluster.
|
||||||
|
|
||||||
.NOTES
|
.NOTES
|
||||||
Author : Baoyin Qiao.
|
Author : Baoyin Qiao.
|
||||||
Author email : bqiao@vmware.com
|
Author email : bqiao@vmware.com
|
||||||
@@ -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()]
|
||||||
|
|||||||
Reference in New Issue
Block a user