Private/Install-Requirements.ps1
|
# Private: Install Microsoft.Graph.Authentication (PS 5.1 vs 7+ version logic) function Install-Requirements { [CmdletBinding()] param([switch]$DebugMode) $PsVersion = $PSVersionTable.PSVersion.Major $requiredModules = @('Microsoft.Graph.Authentication') foreach ($module in $requiredModules) { if ($PsVersion -ge 7) { $moduleInstalled = Get-Module -ListAvailable -Name $module if (-not $moduleInstalled) { if ($DebugMode) { Write-Host "Installing latest version of module: $module" -ForegroundColor Cyan } Install-Module -Name $module -Scope CurrentUser -Force -AllowClobber -SkipPublisherCheck } } else { $moduleVersion = '2.25.0' $moduleInstalled = Get-Module -ListAvailable -Name $module | Where-Object { $_.Version -eq $moduleVersion } if (-not $moduleInstalled) { if ($DebugMode) { Write-Host "Installing module: $module version $moduleVersion" -ForegroundColor Cyan } Install-Module -Name $module -Scope CurrentUser -Force -AllowClobber -RequiredVersion $moduleVersion -SkipPublisherCheck } } } foreach ($module in $requiredModules) { if (-not (Get-Module -Name $module)) { if ($PsVersion -ge 7) { Import-Module -Name $module -Force -ErrorAction Stop } else { Import-Module -Name $module -RequiredVersion '2.25.0' -Force -ErrorAction Stop } } } } |