From 297f6b85ec59ef3f64b206d28923e7d57f47adc7 Mon Sep 17 00:00:00 2001 From: DanHam Date: Mon, 25 Jun 2018 23:51:27 +0100 Subject: [PATCH] Use Get-Command over Get-Help to check for SecureBootTemplate parameter --- common/powershell/hyperv/hyperv.go | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/common/powershell/hyperv/hyperv.go b/common/powershell/hyperv/hyperv.go index 5b6501abe..343e02776 100644 --- a/common/powershell/hyperv/hyperv.go +++ b/common/powershell/hyperv/hyperv.go @@ -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