ImportModuleByEdition.ps1


function Import-ModuleByEdition() {
    [CmdletBinding()]
    param (
        [string]$ModuleName
    )

    Get-Module -Name $ModuleName -ListAvailable -PSEdition $PSVersionTable.PSEdition | Sort-Object Version -Descending | Select-Object -First 1 | Import-Module
}

function Import-CommandModuleByEdition() {
    [CmdletBinding()]
    param (
        [string]$Command
    )

    $moduleMatches = Get-Module -ListAvailable -PSEdition $PSVersionTable.PSEdition | Where-Object { $_.ExportedCommands.ContainsKey($Command) -or $_.ExportedCmdlets.ContainsKey($Command) -or $_.ExportedFunctions.ContainsKey($Command) } 
    $moduleMatches | Sort-Object Version -Descending | Select-Object -First 1 | Import-Module -Force
}