Merge pull request #6422 from DanHam/fix-gh-vmsecureboot
Hyper-V: Use Get-Command over Get-Help to check for SecureBootTemplate parameter
This commit is contained in:
commit
e5a63a674e
|
@ -267,7 +267,7 @@ if ($harddrivePath){
|
|||
func DisableAutomaticCheckpoints(vmName string) error {
|
||||
var script = `
|
||||
param([string]$vmName)
|
||||
if ((Get-Command Hyper-V\Set-Vm).Parameters["AutomaticCheckpointsEnabled"]) {
|
||||
if ((Get-Command Hyper-V\Set-Vm).Parameters["AutomaticCheckpointsEnabled"]) {
|
||||
Hyper-V\Set-Vm -Name $vmName -AutomaticCheckpointsEnabled $false }
|
||||
`
|
||||
var ps powershell.PowerShellCmd
|
||||
|
@ -279,7 +279,7 @@ func ExportVmxcVirtualMachine(exportPath string, vmName string, snapshotName str
|
|||
var script = `
|
||||
param([string]$exportPath, [string]$vmName, [string]$snapshotName, [string]$allSnapshotsString)
|
||||
|
||||
$WorkingPath = Join-Path $exportPath $vmName
|
||||
$WorkingPath = Join-Path $exportPath $vmName
|
||||
|
||||
if (Test-Path $WorkingPath) {
|
||||
throw "Export path working directory: $WorkingPath already exists!"
|
||||
|
@ -297,7 +297,7 @@ if ($snapshotName) {
|
|||
} else {
|
||||
$snapshot = $null
|
||||
}
|
||||
|
||||
|
||||
if (!$snapshot) {
|
||||
#No snapshot clone
|
||||
Hyper-V\Export-VM -Name $vmName -Path $exportPath -ErrorAction Stop
|
||||
|
@ -328,7 +328,7 @@ param([string]$exportPath, [string]$cloneFromVmxcPath)
|
|||
if (!(Test-Path $cloneFromVmxcPath)){
|
||||
throw "Clone from vmxc directory: $cloneFromVmxcPath does not exist!"
|
||||
}
|
||||
|
||||
|
||||
if (!(Test-Path $exportPath)){
|
||||
New-Item -ItemType Directory -Force -Path $exportPath
|
||||
}
|
||||
|
@ -390,12 +390,12 @@ if ($vhdPath){
|
|||
$existingFirstHarddrive | Hyper-V\Set-VMHardDiskDrive -Path $vhdPath
|
||||
} else {
|
||||
Hyper-V\Add-VMHardDiskDrive -VM $compatibilityReport.VM -Path $vhdPath
|
||||
}
|
||||
}
|
||||
}
|
||||
Hyper-V\Set-VMMemory -VM $compatibilityReport.VM -StartupBytes $memoryStartupBytes
|
||||
$networkAdaptor = $compatibilityReport.VM.NetworkAdapters | Select -First 1
|
||||
Hyper-V\Disconnect-VMNetworkAdapter -VMNetworkAdapter $networkAdaptor
|
||||
Hyper-V\Connect-VMNetworkAdapter -VMNetworkAdapter $networkAdaptor -SwitchName $switchName
|
||||
Hyper-V\Connect-VMNetworkAdapter -VMNetworkAdapter $networkAdaptor -SwitchName $switchName
|
||||
$vm = Hyper-V\Import-VM -CompatibilityReport $compatibilityReport
|
||||
|
||||
if ($vm) {
|
||||
|
@ -519,8 +519,9 @@ Hyper-V\Set-VMNetworkAdapter -VMName $vmName -MacAddressSpoofing $enableMacSpoof
|
|||
func SetVirtualMachineSecureBoot(vmName string, enableSecureBoot bool, templateName string) error {
|
||||
var script = `
|
||||
param([string]$vmName, [string]$enableSecureBootString, [string]$templateName)
|
||||
$cmdletParameterExists = Get-Help SetVMFirmware -Parameter SecureBootTemplate -ErrorAction SilentlyContinue
|
||||
if ($cmdletParameterExists) {
|
||||
$cmdlet = Get-Command Hyper-V\Set-VMFirmware
|
||||
# The SecureBootTemplate parameter is only available in later versions
|
||||
if ($cmdlet.Parameters.SecureBootTemplate) {
|
||||
Hyper-V\Set-VMFirmware -VMName $vmName -EnableSecureBoot $enableSecureBootString -SecureBootTemplate $templateName
|
||||
} else {
|
||||
Hyper-V\Set-VMFirmware -VMName $vmName -EnableSecureBoot $enableSecureBootString
|
||||
|
|
Loading…
Reference in New Issue