Files
management-scripts/Install-PSAteraModule.ps1
T

37 lines
1.4 KiB
PowerShell

## Define settings for PSAtera module
$PSAteraMinimumModuleVersion = '1.5.7'
## Get the PSAtera module if it's installed
$module = (Get-Module -ListAvailable PSAtera)
## Install only if we're an admin
If ( IsAdmin ) {
## If the module is installed, check to make sure it's updated
If ( $module ) {
[version]$current = $module.Version
[version]$minimum = (Get-Version $Global:PSAteraMinimumModuleVersion)
If ( $current -lt $minimum ) {
LogMsg "Updating Powershell module PSAtera"
Try { Update-Module -Name PSAtera -Force }
Catch { LogErr $_.Exception.Message }
}
}
## If it's not already installed, install it
Else {
Try { [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityPotocol -bor 3072 }
Catch { LogErr $_.Exception.Message }
LogMsg "Installing NuGet package manager"
Try { Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force}
Catch { LogErr $_.Exception.Message }
LogMsg "Installing Powershell module PSAtera"
Try { Install-Module -Name PSAtera -MinimumVersion $(Get-Version $PSAteraMinimumModuleVersion) -Force}
Catch { LogErr $_.Exception.Message }
}
}
ElseIf ( ($Global:InstallPSAteraModule) -and (-not ($module)) ) {
LogMsg "The PSAtera module needs to be installed, but the current security context is not sufficient to install it"
}