8
0

77 lines
3.1 KiB
PowerShell
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Update-Firefox
# ----------------------------------------------------------------------------
# This Script installs the current Firefox version
#
# Returns: -
# ----------------------------------------------------------------------------
# Copyright (c) 2024 by Digital Data GmbH
#
# Digital Data GmbH • Ludwig-Rinn-Strasse 16 • D-35452 Heuchelheim
# Tel.: 0641/202360 • E-Mail: info-flow@digitaldata.works
# ----------------------------------------------------------------------------
# Creation Date / Author: 04.11.2024 / MK
# Version Date / Editor: 04.11.2024 / MK
# Version Number: 1.0.0.0
#Requires Version 4.0
Clear-Host
Function Get-CurrentFirefoxVersion {
$CurrentFirefoxVersion = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Mozilla\Mozilla Firefox" -Name "(default)" -ErrorAction SilentlyContinue)."(default)"
Write-Host "Current Firefox Version: $CurrentFirefoxVersion"
Return $CurrentFirefoxVersion
} #end function
Function Get-NewFirefoxVersion {
# Fetch the content of the Firefox release notes page
$response = Invoke-WebRequest -Uri "https://www.mozilla.org/de/firefox/notes/"
$pageContent = $response.Content
# Extract the version number using a regular expression
if ($pageContent -match '<title>Firefox\s+([0-9]+\.[0-9]+),\s+See\s+All\s+New\s+Features,\s+Updates\s+and\s+Fixes<\/title>') {
$NewFirefoxVersion = $matches[1]
Write-Host "Latest Firefox Version: $latestVersion"
Return $NewFirefoxVersion
} else {
Write-Host "Could not find the Firefox version number on the release notes page."
Return $NULL
}
} #end function
Function Update-NewFirefoxVersion {
Param ($NewFirefoxVersion)
# Define the URL for the latest Firefox installer
$NewFirefoxVersionURL = "https://download-installer.cdn.mozilla.net/pub/firefox/releases/$NewFirefoxVersion/win64/de/Firefox%20Setup%20$NewFirefoxVersion.msi"
# Use Invoke-WebRequest to download the installer
Write-Host "Downloading Firefox Version $NewFirefoxVersion..."
Invoke-WebRequest -Uri $NewFirefoxVersionURL -OutFile "$env:TEMP\Firefox$NewFirefoxVersion.msi"
Try {
$FirefoxProcess = Get-Process -Name "firefox" -ErrorAction SilentlyContinue
If ($FirefoxProcess) {Stop-Process -Name "firefox" -Force -ErrorAction Stop}
Write-Host "Installing Firefox Version $NewFirefoxVersion, please wait..."
$ArgumentList = "/i $env:TEMP\Firefox$NewFirefoxVersion.msi INSTALL_DIRECTORY_PATH=""D:\ProgramFiles\Mozilla Firefox"" /quiet"
Start-Process -FilePath "msiexec.exe" -ArgumentList $ArgumentList -Wait
} Catch {
Write-Host "ERROR!"
Write-Host $Error[0].ToString()
} Finally {
Write-Host "Cleaning Up!"
Remove-Item "$env:TEMP\Firefox$NewFirefoxVersion.msi" -Force
} #end try/catch/finally
} #end function
$CurrentFirefoxVersion = Get-CurrentFirefoxVersion
$NewFirefoxVersion = Get-NewFirefoxVersion
If ($NewFirefoxVersion -gt $CurrentFirefoxVersion) {
Write-Host "Install or Update is neccessary!"
Update-NewFirefoxVersion -NewFirefoxVersion $NewFirefoxVersion
Write-Host "Install or Update is completed!"
} Else {
Write-Host "No Install or Update is neccessary!"
} #end if/else