Update App Install or Upgrade Scripts/App - Firefox - Install or Upgrade.ps1

This commit is contained in:
2025-08-07 18:06:20 +00:00
parent 0d9ba814c0
commit a650502381
@@ -1,63 +1,63 @@
<# <#
Author: Gabe Kerntke Author: Gabe Kerntke
Date: 08-19-2024 Date: 08-19-2024
.Synopsis .Synopsis
Script to install Firefox on machines that do not already have it or upgrade to the newest version if behind Script to install Firefox on machines that do not already have it or upgrade to the newest version if behind
.Modified .Modified
2024-08-19 (GabeK) - Original script created 2024-08-19 (GabeK) - Original script created
2025-05-02 (GabeK) - Rebuilt to use functions script 2025-05-02 (GabeK) - Rebuilt to use functions script
#> #>
[CmdletBinding()] [CmdletBinding()]
Param( Param(
[Parameter(Mandatory = $false)] [Parameter(Mandatory = $false)]
$App_Name = "Firefox", $App_Name = "Firefox",
[Parameter(Mandatory = $false)] [Parameter(Mandatory = $false)]
$File_Name_Prefix = "Firefox-x64", $File_Name_Prefix = "Firefox-x64",
[Parameter(Mandatory = $false)] [Parameter(Mandatory = $false)]
$File_Name_Extension = "exe", $File_Name_Extension = "exe",
[Parameter(Mandatory = $false)] [Parameter(Mandatory = $false)]
$Install_Parameters = "/S", $Install_Parameters = "/S",
[Parameter(Mandatory = $false)] [Parameter(Mandatory = $false)]
$EPCache_Folder = "3rd Party Patches\$App_Name", $EPCache_Folder = "3rd Party Patches\$App_Name",
[Parameter(Mandatory = $false)] [Parameter(Mandatory = $false)]
$Version_URL = '(Invoke-WebRequest -UseBasicParsing "https://product-details.mozilla.org/1.0/firefox_versions.json").Content | ConvertFrom-Json', $Version_URL = '(Invoke-WebRequest -UseBasicParsing "https://product-details.mozilla.org/1.0/firefox_versions.json").Content | ConvertFrom-Json',
[Parameter(Mandatory = $false)] [Parameter(Mandatory = $false)]
$Online_Version = $Version_URL.LATEST_FIREFOX_VERSION, $Online_Version = $Version_URL.LATEST_FIREFOX_VERSION,
[Parameter(Mandatory = $false)] [Parameter(Mandatory = $false)]
$FirefoxURL = (Invoke-WebRequest -UseBasicParsing "https://download-installer.cdn.mozilla.net/pub/firefox/releases/$Online_Version/win64/en-US/").Links.href -like "*exe*", $FirefoxURL = (Invoke-WebRequest -UseBasicParsing "https://download-installer.cdn.mozilla.net/pub/firefox/releases/$Online_Version/win64/en-US/").Links.href -like "*exe*",
[Parameter(Mandatory = $false)] [Parameter(Mandatory = $false)]
$DownloadURL = "https://download-installer.cdn.mozilla.net$FirefoxURL", $DownloadURL = "https://download-installer.cdn.mozilla.net$FirefoxURL",
[Parameter(Mandatory = $false)] [Parameter(Mandatory = $false)]
$File_Name = "$File_Name_Prefix-$Online_Version.$File_Name_Extension" $File_Name = "$File_Name_Prefix-$Online_Version.$File_Name_Extension"
) )
#Region Script Start #Region Script Start
If ((Test-Path "C:\Temp\Script Cache") -eq $False) { New-Item -ItemType directory -Path "C:\Temp\Script Cache" } If ((Test-Path "C:\Temp\Script Cache") -eq $False) { New-Item -ItemType directory -Path "C:\Temp\Script Cache" }
Invoke-WebRequest -UseBasicParsing "https://scripts.gabesville.com/Gabesville/Powershell-Scripts/raw/branch/main/Functions%20Scripts/Functions.ps1" -outfile "C:\Temp\Script Cache\Functions.ps1" Invoke-WebRequest -UseBasicParsing "https://scripts.gabesville.com/Gabesville/Powershell-Scripts/raw/branch/main/Functions%20Scripts/Functions.ps1" -outfile "C:\Temp\Script Cache\Functions.ps1"
. "C:\Temp\Script Cache\Functions.ps1" . "C:\Temp\Script Cache\Functions.ps1"
#Check to see if program is installed #Check to see if program is installed
$Applist = Get-Software | Sort-Object -Descending $Applist = Get-Software | Sort-Object -Descending
If ($Applist.DisplayName -like "*$App_Name*") { If ($Applist.DisplayName -like "*$App_Name*") {
#Get currently installed version #Get currently installed version
$Local_Version = Get-Software | Where-Object { $_.DisplayName -like "*$App_Name*" } | Select-Object -ExpandProperty DisplayVersion $Local_Version = Get-Software | Where-Object { $_.DisplayName -like "*$App_Name*" } | Select-Object -ExpandProperty DisplayVersion
#Comparing version already installed to what is online #Comparing version already installed to what is online
If ($Local_Version -lt $Online_Version) { If ([version]$Local_Version -lt [version]$Online_Version) {
Test-Probe_Online Test-Probe_Online
Close-App Close-App
Install-App Install-App
} }
Else { Write-Host "$App_Name already on latest version (Installed version: $Local_Version)" } Else { Write-Host "$App_Name already on latest version (Installed version: $Local_Version)" }
} }
Else { Else {
Test-Probe_Online Test-Probe_Online
Install-App Install-App
} }
#Region Script End #Region Script End