77 lines
3.1 KiB
PowerShell
77 lines
3.1 KiB
PowerShell
# 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 |