From 737972ed6dc10830c6ae5edf623e0254968a29ed Mon Sep 17 00:00:00 2001 From: Azhaheswaran Subramaniyan Date: Tue, 26 Oct 2021 22:03:23 +0530 Subject: [PATCH 1/2] [BUG-fix] Cannot Start-VMX with error Vmware version not match #23 --- vmxtoolkit/vmxtoolkit.psm1 | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/vmxtoolkit/vmxtoolkit.psm1 b/vmxtoolkit/vmxtoolkit.psm1 index 2a3e4af..4d6c0df 100644 --- a/vmxtoolkit/vmxtoolkit.psm1 +++ b/vmxtoolkit/vmxtoolkit.psm1 @@ -3342,7 +3342,7 @@ function Start-VMX if (($vmx) -and ($vmx.state -ne "running")) { [int]$vmxhwversion = (Get-VMXHWVersion -config $vmx.config).hwversion - if ($vmxHWversion -le $vmwareversion.major) + if ($vmxHWversion -eq (Get-MatchingHWVersion -VMwareMajorVersion $($vmwareversion.Major))) { Write-Verbose "Checking State for $vmxname : $($vmx.vmxname) : $($vmx.state)" Write-Verbose "creating Backup of $($vmx.config)" @@ -3400,9 +3400,9 @@ function Start-VMX Write-Warning "There was an error starting the VM: $cmdresult" } } - else { Write-Error "Vmware version does not match, need version $vmxhwversion " } + else { Write-Error "Vmware version does not match, update vmx hardware version to $(Get-MatchingHWVersion -VMwareMajorVersion $($vmwareversion.Major)) " } } - elseif ($vmx.state -eq "running") { Write-Verbose "VM $VMXname already running" } # end elseif + elseif ($vmx.state -eq "running") { Write-Host "VM $VMXname already running" } # end elseif else { Write-Verbose "VM $VMXname not found" } # end if-vmx } @@ -6442,3 +6442,26 @@ Write-Host -ForegroundColor Green "[success]" $Object | Add-Member -MemberType NoteProperty -Name LoggedIn -Value $true Write-Output $Object } + +function Get-MatchingHWVersion{ +[CmdletBinding(HelpUri = "https://github.com/bottkars/vmxtoolkit/wiki")] +param ( +[Parameter(Mandatory = $true, ValueFromPipeline = $true)][int]$VMwareMajorVersion) +begin{ +} +process{ + +Write-Verbose "VM ware major version: $VMwareMajorVersion" + +switch ($VMwareMajorVersion) +{ + 16 { return 18 } + 15 { return 16 } + Default { + return $VMwareMajorVersion + } +} +} +end { } + +} \ No newline at end of file From f0d7671f7ad146ba07aeafbe3b3c348cac63a99d Mon Sep 17 00:00:00 2001 From: Azhaheswaran Subramaniyan Date: Fri, 17 Dec 2021 16:59:45 +0530 Subject: [PATCH 2/2] Fix isssue in matching version --- vmxtoolkit/vmxtoolkit.psm1 | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/vmxtoolkit/vmxtoolkit.psm1 b/vmxtoolkit/vmxtoolkit.psm1 index 4d6c0df..34880ef 100644 --- a/vmxtoolkit/vmxtoolkit.psm1 +++ b/vmxtoolkit/vmxtoolkit.psm1 @@ -3342,7 +3342,7 @@ function Start-VMX if (($vmx) -and ($vmx.state -ne "running")) { [int]$vmxhwversion = (Get-VMXHWVersion -config $vmx.config).hwversion - if ($vmxHWversion -eq (Get-MatchingHWVersion -VMwareMajorVersion $($vmwareversion.Major))) + if (Is-MatchingHWVersion -VMwareMajorVersion $($vmwareversion.Major) -VMXHWversion $vmxHWversion) { Write-Verbose "Checking State for $vmxname : $($vmx.vmxname) : $($vmx.state)" Write-Verbose "creating Backup of $($vmx.config)" @@ -3400,7 +3400,7 @@ function Start-VMX Write-Warning "There was an error starting the VM: $cmdresult" } } - else { Write-Error "Vmware version does not match, update vmx hardware version to $(Get-MatchingHWVersion -VMwareMajorVersion $($vmwareversion.Major)) " } + else { Write-Error "Vmware version does not match, update vmx hardware version as per https://kb.vmware.com/s/article/1003746 " } } elseif ($vmx.state -eq "running") { Write-Host "VM $VMXname already running" } # end elseif @@ -6443,24 +6443,28 @@ Write-Host -ForegroundColor Green "[success]" Write-Output $Object } -function Get-MatchingHWVersion{ +function Is-MatchingHWVersion{ [CmdletBinding(HelpUri = "https://github.com/bottkars/vmxtoolkit/wiki")] param ( -[Parameter(Mandatory = $true, ValueFromPipeline = $true)][int]$VMwareMajorVersion) +[Parameter(Mandatory = $true, ValueFromPipeline = $true)][int]$VMwareMajorVersion, +[Parameter(Mandatory = $true, ValueFromPipeline = $true)][int]$VMXHWversion +) begin{ } process{ Write-Verbose "VM ware major version: $VMwareMajorVersion" +Write-Verbose "VMX HW version: $VMXHWversion" switch ($VMwareMajorVersion) { - 16 { return 18 } - 15 { return 16 } + 16 { if(($VMXHWversion -eq 18) -or ($VMXHWversion -eq 19)){ return $true } } + 15 { if(($VMXHWversion -eq 16) -or ($VMXHWversion -eq 16)){ return $true } } Default { - return $VMwareMajorVersion - } + if($VMXHWversion -eq $VMwareMajorVersion){ return $true } + } } +return $false } end { }