Adding several vSphere 6.5 API examples
This commit is contained in:
65
Scripts/SecureBoot.ps1
Executable file
65
Scripts/SecureBoot.ps1
Executable file
@@ -0,0 +1,65 @@
|
||||
Function Get-SecureBoot {
|
||||
<#
|
||||
.SYNOPSIS Query Seure Boot setting for a VM in vSphere 6.5
|
||||
.NOTES Author: William Lam
|
||||
.NOTES Site: www.virtuallyghetto.com
|
||||
.PARAMETER Vm
|
||||
VM to query Secure Boot setting
|
||||
.EXAMPLE
|
||||
Get-VM -Name Windows10 | Get-SecureBoot
|
||||
#>
|
||||
param(
|
||||
[Parameter(
|
||||
Mandatory=$true,
|
||||
ValueFromPipeline=$true,
|
||||
ValueFromPipelineByPropertyName=$true)
|
||||
]
|
||||
[VMware.VimAutomation.ViCore.Impl.V1.Inventory.InventoryItemImpl]$Vm
|
||||
)
|
||||
|
||||
$secureBootSetting = if ($vm.ExtensionData.Config.BootOptions.EfiSecureBootEnabled) { "enabled" } else { "disabled" }
|
||||
Write-Host "Secure Boot is" $secureBootSetting
|
||||
}
|
||||
|
||||
Function Set-SecureBoot {
|
||||
<#
|
||||
.SYNOPSIS Enable/Disable Seure Boot setting for a VM in vSphere 6.5
|
||||
.NOTES Author: William Lam
|
||||
.NOTES Site: www.virtuallyghetto.com
|
||||
.PARAMETER Vm
|
||||
VM to enable/disable Secure Boot
|
||||
.EXAMPLE
|
||||
Get-VM -Name Windows10 | Set-SecureBoot -Enabled
|
||||
.EXAMPLE
|
||||
Get-VM -Name Windows10 | Set-SecureBoot -Disabled
|
||||
#>
|
||||
param(
|
||||
[Parameter(
|
||||
Mandatory=$true,
|
||||
ValueFromPipeline=$true,
|
||||
ValueFromPipelineByPropertyName=$true)
|
||||
]
|
||||
[VMware.VimAutomation.ViCore.Impl.V1.Inventory.InventoryItemImpl]$Vm,
|
||||
[Switch]$Enabled,
|
||||
[Switch]$Disabled
|
||||
)
|
||||
|
||||
if($Enabled) {
|
||||
$secureBootSetting = $true
|
||||
$reconfigMessage = "Enabling Secure Boot for $Vm"
|
||||
}
|
||||
if($Disabled) {
|
||||
$secureBootSetting = $false
|
||||
$reconfigMessage = "Disabling Secure Boot for $Vm"
|
||||
}
|
||||
|
||||
$spec = New-Object VMware.Vim.VirtualMachineConfigSpec
|
||||
$bootOptions = New-Object VMware.Vim.VirtualMachineBootOptions
|
||||
$bootOptions.EfiSecureBootEnabled = $secureBootSetting
|
||||
$spec.BootOptions = $bootOptions
|
||||
|
||||
Write-Host "`n$reconfigMessage ..."
|
||||
$task = $vm.ExtensionData.ReconfigVM_Task($spec)
|
||||
$task1 = Get-Task -Id ("Task-$($task.value)")
|
||||
$task1 | Wait-Task | Out-Null
|
||||
}
|
||||
Reference in New Issue
Block a user