Src/Private/Get-RequiredModule.ps1
function Get-RequiredModule { <# .SYNOPSIS Function to check if the required version of VMware PowerCLI is installed .DESCRIPTION Function to check if the required version of VMware PowerCLI is installed .PARAMETER Name The name of the required PowerShell module .PARAMETER Version The version of the required PowerShell module #> [CmdletBinding()] Param ( [Parameter(Mandatory = $true, ValueFromPipeline = $false)] [ValidateNotNullOrEmpty()] [String]$Name, [Parameter(Mandatory = $true, ValueFromPipeline = $false)] [ValidateNotNullOrEmpty()] [String]$Version ) # Check if the required version of VMware PowerCLI is installed $RequiredModule = Get-Module -ListAvailable -Name $Name | Sort-Object -Property Version -Descending | Select-Object -First 1 $ModuleVersion = "$($RequiredModule.Version.Major)" + "." + "$($RequiredModule.Version.Minor)" if ($ModuleVersion -eq ".") { throw "VMware PowerCLI $Version or higher is required to run the VMware ESXi As Built Report. Run 'Install-Module -Name $Name -MinimumVersion $Version' to install the required modules." } if ($ModuleVersion -lt $Version) { throw "VMware PowerCLI $Version or higher is required to run the VMware ESXi As Built Report. Run 'Update-Module -Name $Name -MinimumVersion $Version' to update the required modules." } } |