Als een Windows-apparaat Firefox-updates niet zoals verwacht ontvangt of toepast, gebruik dan de volgende controles om de oorzaak te achterhalen. Zorg er voordat u begint voor dat het updatebeleid voor Firefox van uw organisatie is geconfigureerd zoals bedoeld.
Zie Firefox-updates beheren voor algemene informatie over het beheren van updates.
Inhoudsopgave
- 1 Lokale registersleutels voor Groepsbeleid (GPO) controleren
- 2 Geïnstalleerde Firefox-versie controleren
- 3 Geplande taak controleren
- 4 Mozilla Maintenance Service controleren
- 5 UAC-prompt die tijdens updates om beheerdersaanmeldgegevens vraagt
- 6 BITS-overdrachten controleren (Background Intelligent Transfer Service)
- 7 Firefox-gerelateerde bestanden in C:\ProgramData weergeven
- 8 Gerelateerde artikelen
Als een werkstation geen Firefox-updates ontvangt, kunnen de volgende PowerShell-controles helpen de hoofdoorzaak te achterhalen.
Lokale registersleutels voor Groepsbeleid (GPO) controleren
Voer de volgende opdracht uit:
Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Mozilla\Firefox" |
Select-Object DisableAppUpdate, AppAutoUpdate
Verwachte waarden:
| Registerwaarde | Verwachte waarde |
|---|---|
DisableAppUpdate
| 0 |
AppAutoUpdate
| 1 |
Als deze waarden niet zijn ingesteld zoals verwacht, zijn Firefox-updates mogelijk uitgeschakeld door lokaal of domein-Groepsbeleid.
Geïnstalleerde Firefox-versie controleren
Voer de volgende PowerShell-opdracht uit:
Get-ChildItem -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" |
Where-Object { $_.PSChildName -like "Mozilla Firefox*" } |
ForEach-Object {
Get-ItemProperty $_.PsPath |
Select-Object DisplayName, DisplayVersion, Publisher, InstallDate
}
Vergelijk de geïnstalleerde versie met de nieuwste Firefox ESR-versie die beschikbaar is op de website van Mozilla.
Geplande taak controleren
Firefox is afhankelijk van een op de achtergrond geplande taak om updates te downloaden en toe te passen.
Voer de volgende PowerShell-opdracht uit:
Get-ScheduledTask |
Where-Object { $_.TaskName -like "*Firefox Background Update*" } |
ForEach-Object { Get-ScheduledTaskInfo $_ }
-> Zorg ervoor dat:
- De taak bestaat
- De taak is ingeschakeld
- De taak succesvol en zonder fouten wordt uitgevoerd
Mozilla Maintenance Service controleren
Op Windows kan voor Firefox-updates de Mozilla Maintenance Service vereist zijn, die geïnstalleerd en actief moet zijn. Met deze service kan Firefox updates toepassen zonder dat beheerdersrechten nodig zijn.
Controleren of de service bestaat en wat de status ervan is
Voer de volgende PowerShell-opdracht uit:
Get-Service -Name MozillaMaintenance -ErrorAction SilentlyContinue |
Select-Object Name, DisplayName, Status, StartType
-> Verwacht gedrag:
- De service bestaat
- De status is
Wordt uitgevoerd(ofGestopt, maar kan worden gestart) -
StartTypeis ingesteld opAutomatischofHandmatig - Als de service ontbreekt, kan Firefox updates mogelijk niet automatisch toepassen.
De service handmatig starten (indien nodig)
Als de service bestaat maar niet wordt uitgevoerd, probeer deze dan te starten. Voer de volgende PowerShell-opdracht uit:
Start-Service -Name MozillaMaintenance
Controleer opnieuw of de service zonder fouten start.
De Mozilla Maintenance Service opnieuw installeren
Als de service ontbreekt of beschadigd is, kan deze opnieuw worden geïnstalleerd met het Firefox-installatieprogramma:
- Download het Firefox-installatieprogramma dat overeenkomt met uw implementatie (ESR of standaarduitgave).
- Voer het installatieprogramma uit als beheerder.
- Zorg ervoor dat Mozilla Maintenance Service installeren is geselecteerd.
Controleer na de installatie de status van de service opnieuw.
UAC-prompt die tijdens updates om beheerdersaanmeldgegevens vraagt
Op sommige werkstations activeert een update een UAC-prompt met de titel Firefox Updater Software die om beheerdersaanmeldgegevens vraagt, ook al is de Mozilla Maintenance Service geïnstalleerd en in orde. Standaardgebruikers kunnen de update niet voltooien en de prompt verschijnt opnieuw bij elke start van Firefox.
Oorzaak
Voordat de Maintenance Service wordt gebruikt, controleert de Firefox-updater de UAC-configuratie van het werkstation (IsUnpromptedElevation-test in de broncode van de updater). Als UAC is geconfigureerd voor stille verhoging, gaat Firefox ervan uit dat de verhoging zonder prompt zal plaatsvinden – zoals bij een beheerder – en slaat het de Maintenance Service over. Maar als de aangemelde gebruiker niet daadwerkelijk een beheerder is, is de verhoging niet stil en toont Windows in plaats daarvan een UAC-aanmeldprompt.
Dit gebeurt alleen als aan alle drie de volgende voorwaarden wordt voldaan:
-
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\ConsentPromptBehaviorAdminis ingesteld op0(beveiligingsoptie Gebruikersaccountbeheer: gedrag van de prompt voor verhoging voor beheerders in de modus voor beheerdersgoedkeuring = Verhogen zonder vragen; Windows-standaard is5) -
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\PromptOnSecureDesktopis ingesteld op0(beveiligingsoptie Gebruikersaccountbeheer: overschakelen naar het beveiligde bureaublad wanneer om verhoging wordt gevraagd = Uitgeschakeld; Windows-standaard is1) - De aangemelde gebruiker heeft een UAC-gefilterd token: lid van een groep met privileges (Administrators, Backup Operators, Power Users, etc.), inclusief groepen die zijn gemarkeerd als deny-only, of houder van gevoelige privileges (zoals
SeBackupPrivilegeofSeDebugPrivilege) die zijn verleend via Groepsbeleid. Merk op dat op privileges gebaseerde filtering niet zichtbaar is inwhoami /groups.
Diagnose
Controleer het updater-logboek op de volgende signatuur:
Get-Content "C:\ProgramData\Mozilla-1de4eec8-1241-4177-a864-e594e8d1fb38\updates\*\updates\0\update.log"
...
After checking IsUnpromptedElevation, useService=false
Elevating via a UAC prompt
Writing status to file: failed: 9
...
De regel useService=false na de IsUnpromptedElevation-controle bevestigt deze oorzaak (fout 9 betekent dat de gebruiker de UAC-prompt heeft geannuleerd). Noot: na een eerste mislukte poging tonen volgende logboekvermeldingen useService=false vanaf de eerste regel, zonder de After checking...-regels (resterende status, zie Oplossing).
Controleer vervolgens de UAC-waarden en de status van de wachtende update:
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v ConsentPromptBehaviorAdmin
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v PromptOnSecureDesktop
Get-Content "C:\ProgramData\Mozilla-1de4eec8-1241-4177-a864-e594e8d1fb38\updates\*\updates\0\update.status"
Mogelijke update.status-waarden:
| Waarde | Betekenis |
|---|---|
pending-service
| Update gedownload, de Maintenance Service zal worden gebruikt (normaal) |
pending
| Firefox heeft de Maintenance Service voor deze update opgegeven (resterende status na een mislukking) |
applied-service
| Update succesvol toegepast via de Maintenance Service |
Oplossing
- Sluit Firefox.
- Voer de volgende opdrachten uit in een PowerShell met verhoogde rechten:
- Het standaardgedrag van de UAC-verhogingsprompt voor beheerders herstellen
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 5 /f
- Het beveiligde bureaublad voor verhogingsprompts opnieuw inschakelen
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v PromptOnSecureDesktop /t REG_DWORD /d 1 /f
- De resterende updatestatus wissen (anders verschijnt de prompt nog een laatste keer)
Remove-Item "C:\ProgramData\Mozilla-1de4eec8-1241-4177-a864-e594e8d1fb38\updates\*\*" -Recurse -Force
- Het standaardgedrag van de UAC-verhogingsprompt voor beheerders herstellen
- Start Firefox, ga naar Help > Over Firefox en wacht op Herstarten om Firefox bij te werken.
- Herstart Firefox: de update moet worden toegepast zonder UAC-prompt.
-> Opmerkingen:
- Het herstellen van een van de twee UAC-waarden is voldoende om de foutieve toestand te doorbreken; het herstellen van beide brengt het werkstation terug naar de Windows-standaardinstellingen.
- Als deze UAC-waarden worden afgedwongen door een domein-Groepsbeleid, worden ze geherinitialiseerd bij de volgende beleidsvernieuwing (controleer met
gpupdate /force) — de oplossing moet dan op GPO-niveau worden toegepast. - Als alternatief lost het verwijderen van de gebruiker uit de groep met privileges (en vervolgens afmelden en weer aanmelden) het probleem ook op.
Verificatie
Na de update bevat het nieuwe update.log After checking IsUnpromptedElevation, useService=true en toont het update.status applied-service.
BITS-overdrachten controleren (Background Intelligent Transfer Service)
Firefox gebruikt BITS om updates op de achtergrond te downloaden.
Voer de volgende PowerShell-opdracht uit:
Get-BitsTransfer |
Where-Object { $_.DisplayName -match 'mozilla' -or $_.RemoteName -match 'mozilla' } |
ForEach-Object {
$job = $_
foreach ($file in $job.FileList) {
[PSCustomObject]@{
DisplayName = $job.DisplayName
JobState = $job.JobState
BytesTransferredMB = [math]::Round($file.BytesTransferred / 1MB, 2)
BytesRemainingMB = [math]::Round(($file.BytesTotal - $file.BytesTransferred) / 1MB, 2)
ProgressPercent = if ($file.BytesTotal -gt 0) {
[math]::Round(($file.BytesTransferred / $file.BytesTotal * 100), 2)
} else { 0 }
RemoteURL = $file.RemoteName
LocalPath = $file.LocalName
}
}
}
-> Wat te controleren
- JobState toont de huidige overdrachtsstatus (overdragen, onderbroken, voltooid of fout).
- ProgressPercent geeft de downloadvoortgang aan.
- RemoteURL toont de URL die door Firefox wordt gebruikt om de update op te halen.
-> Als de download is geblokkeerd
Als de voortgang niet vordert of de taak mislukt, controleer dan of de URL die wordt getoond in RemoteURL niet wordt geblokkeerd door uw netwerk, firewall of proxy.
Kopieer en plak ter bevestiging de URL in een browser en controleer of de download succesvol start.
Firefox-gerelateerde bestanden in C:\ProgramData weergeven
Firefox-updatebestanden worden gedownload en opgeslagen op de volgende locatie.
Voer de volgende PowerShell-opdracht uit:
Get-ChildItem -Path "C:\ProgramData\Mozilla-*" -Recurse |
Select-Object @{ Name="Path"; Expression={$_.FullName} },
@{ Name="Type"; Expression={ if ($_.PSIsContainer) { "Directory" } else { "File" } } },
@{ Name="Size"; Expression={$_.Length} },
@{ Name="LastModified"; Expression={$_.LastWriteTime}
}
Dit helpt te controleren of updatebestanden zijn gedownload en om onvolledige of vastgelopen bestanden te identificeren.