66 lines
2.1 KiB
PowerShell
Executable File
66 lines
2.1 KiB
PowerShell
Executable File
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
|
|
}
|