Functions/Update-PSVersionData.ps1
function Update-PSVersionData { <# .SYNOPSIS Updates mapping table used by Get-PSVersion .DESCRIPTION Updates mapping table used by Get-PSVersion, a function to map information from $PSVersionTable in order to retrieve friendly names for Windows PowerShell build numbers .PARAMETER Uri The Uri to download PowerShell version information from. .EXAMPLE Update-PSVersionData .EXAMPLE Update-PSVersionData -Verbose .EXAMPLE Update-PSVersionData -Uri 'https://www.domain.com/PSVersionMappingTable.json' .INPUTS String .OUTPUTS None .NOTES Author: Jan Egil Ring Twitter: @JanEgilRing #> [CmdletBinding()] param ( [Parameter(Mandatory = $false, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)] [string]$Uri = 'https://raw.githubusercontent.com/janegilring/PSVersion/master/PSVersionMappingTable.json' ) if ($IsLinux) { $DestinationFile = Join-Path -Path "$($home)/.config" -ChildPath 'PSVersionMappingTable.json' } else { $DestinationFile = Join-Path -Path $env:LOCALAPPDATA\Microsoft\Windows\PowerShell -ChildPath 'PSVersionMappingTable.json' } try { Write-Verbose -Message "Trying to download $Uri using Invoke-WebRequest..." Invoke-WebRequest -Uri $Uri -OutFile $DestinationFile -ErrorAction Stop Write-Verbose -Message "$Uri successfully downloaded to $DestinationFile" Write-Verbose -Message "PSVersionData was updated successfully" } catch { throw "An error occured while trying to download $Uri to $DestinationFile, exception: $($_.Exception)" } } |