Pokud zařízení se systémem Windows nepřijímá nebo nepoužívá aktualizace Firefoxu podle očekávání, použijte následující kontroly, které vám pomohou zjistit příčinu. Než začnete, ujistěte se, že jsou zásady aktualizace Firefoxu ve vaší organizaci nakonfigurovány tak, jak bylo zamýšleno.
Obecné informace o správě aktualizací naleznete v článku Správa aktualizací Firefoxu.
Obsah
- 1 Kontrola klíčů registru místních zásad skupiny (GPO)
- 2 Kontrola nainstalované verze Firefoxu
- 3 Kontrola naplánované úlohy
- 4 Kontrola služby Mozilla Maintenance Service
- 5 Výzva Řízení uživatelských účtů (UAC) žádající o přihlašovací údaje správce během aktualizací
- 6 Kontrola přenosů BITS (Služba inteligentního přenosu na pozadí)
- 7 Výpis souborů souvisejících s Firefoxem v C:\ProgramData
- 8 Související články
Pokud pracovní stanice nepřijímá aktualizace Firefoxu, následující kontroly v PowerShellu mohou pomoci identifikovat hlavní příčinu.
Kontrola klíčů registru místních zásad skupiny (GPO)
Spusťte následující příkaz:
Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Mozilla\Firefox" |
Select-Object DisableAppUpdate, AppAutoUpdate
Očekávané hodnoty:
| Hodnota registru | Očekávaná hodnota |
|---|---|
DisableAppUpdate
| 0 |
AppAutoUpdate
| 1 |
Pokud tyto hodnoty nejsou nastaveny podle očekávání, mohou být aktualizace Firefoxu zakázány místními nebo doménovými zásadami skupiny.
Kontrola nainstalované verze Firefoxu
Spusťte následující příkaz v PowerShellu:
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
}
Porovnejte nainstalovanou verzi s nejnovější verzí Firefox ESR dostupnou na webových stránkách Mozilly.
Kontrola naplánované úlohy
Firefox se při stahování a instalaci aktualizací spoléhá na naplánovanou úlohu na pozadí.
Spusťte následující příkaz v PowerShellu:
Get-ScheduledTask |
Where-Object { $_.TaskName -like "*Firefox Background Update*" } |
ForEach-Object { Get-ScheduledTaskInfo $_ }
-> Ujistěte se, že:
- Úloha existuje
- Úloha je povolena
- Úloha se spouští úspěšně a bez chyb
Kontrola služby Mozilla Maintenance Service
V systému Windows mohou aktualizace Firefoxu vyžadovat, aby byla nainstalována a spuštěna služba Mozilla Maintenance Service. Tato služba umožňuje Firefoxu instalovat aktualizace bez nutnosti oprávnění správce.
Kontrola existence a stavu služby
Spusťte následující příkaz v PowerShellu:
Get-Service -Name MozillaMaintenance -ErrorAction SilentlyContinue |
Select-Object Name, DisplayName, Status, StartType
-> Očekávané chování:
- Služba existuje
- Stav je
Running(Spuštěno) (neboStopped(Zastaveno), ale lze ji spustit) -
StartType(Typ spouštění) je nastaven naAutomatic(Automaticky) neboManual(Ručně) - Pokud služba chybí, Firefox nemusí být schopen automaticky instalovat aktualizace.
Ruční spuštění služby (v případě potřeby)
Pokud služba existuje, ale není spuštěna, zkuste ji spustit. Spusťte následující příkaz v PowerShellu:
Start-Service -Name MozillaMaintenance
Znovu zkontrolujte, zda se služba spouští bez chyb.
Přeinstalace služby Mozilla Maintenance Service
Pokud služba chybí nebo je poškozena, lze ji přeinstalovat pomocí instalačního programu Firefoxu:
- Stáhněte si instalační program Firefoxu odpovídající vašemu nasazení (ESR nebo standardní vydání).
- Spusťte instalační program jako správce.
- Ujistěte se, že je zaškrtnuta volba Nainstalovat službu Mozilla Maintenance Service.
Po instalaci znovu zkontrolujte stav služby.
Výzva Řízení uživatelských účtů (UAC) žádající o přihlašovací údaje správce během aktualizací
Na některých pracovních stanicích se při aktualizaci zobrazí výzva Řízení uživatelských účtů (UAC) s názvem Firefox Updater Software žádající o přihlašovací údaje správce, a to i v případě, že je služba Mozilla Maintenance Service nainstalována a funkční. Běžní uživatelé nemohou aktualizaci dokončit a výzva se znovu objeví při každém spuštění Firefoxu.
Příčina
Před použitím služby Maintenance Service zkontroluje aktualizátor Firefoxu konfiguraci Řízení uživatelských účtů (UAC) pracovní stanice (test IsUnpromptedElevation ve zdrojovém kódu aktualizátoru). Pokud je UAC nakonfigurováno pro tiché zvýšení oprávnění, Firefox předpokládá, že ke zvýšení oprávnění dojde bez jakékoli výzvy – jako by tomu bylo u správce – a službu Maintenance Service přeskočí. Pokud ale přihlášený uživatel ve skutečnosti není správcem, zvýšení oprávnění není tiché a systém Windows místo toho zobrazí výzvu k zadání přihlašovacích údajů UAC.
K tomu dochází pouze tehdy, jsou-li splněny všechny tři následující podmínky:
-
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\ConsentPromptBehaviorAdminje nastaveno na0(bezpečnostní volba Řízení uživatelských účtů: Chování výzvy ke zvýšení oprávnění pro správce v režimu schválení správcem = Zvýšit oprávnění bez výzvy; výchozí hodnota ve Windows je5) -
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\PromptOnSecureDesktopje nastaveno na0(bezpečnostní volba Řízení uživatelských účtů: Přepnout na zabezpečenou plochu při výzvě ke zvýšení oprávnění = Zakázáno; výchozí hodnota ve Windows je1) - Přihlášený uživatel má filtrovaný token UAC: je členem privilegované skupiny (Administrators, Backup Operators, Power Users atd.), včetně skupin označených jako deny-only, nebo je držitelem citlivých oprávnění (jako je
SeBackupPrivilegeneboSeDebugPrivilege) udělených prostřednictvím zásad skupiny. Upozorňujeme, že filtrování na základě oprávnění není viditelné v příkazuwhoami /groups.
Diagnostika
Zkontrolujte v protokolu aktualizátoru následující signaturu:
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
...
Řádek useService=false za kontrolou IsUnpromptedElevation potvrzuje tuto příčinu (chyba 9 znamená, že uživatel zrušil výzvu UAC). Poznámka: po prvním selhání se v následujících protokolech zobrazí useService=false od prvního řádku, bez řádků After checking... (zbytkový stav, viz Řešení).
Poté zkontrolujte hodnoty UAC a stav čekající aktualizace:
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"
Možné hodnoty souboru update.status:
| Hodnota | Význam |
|---|---|
pending-service
| Aktualizace stažena, bude použita služba Maintenance Service (normální stav) |
pending
| Firefox se pro tuto aktualizaci vzdal služby Maintenance Service (zbytkový stav po selhání) |
applied-service
| Aktualizace úspěšně nainstalována prostřednictvím služby Maintenance Service |
Řešení
- Ukončete Firefox.
- Spusťte následující příkazy v PowerShellu se zvýšenými oprávněními:
- Obnovení výchozího chování výzvy UAC ke zvýšení oprávnění pro správce
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 5 /f
- Opětovné povolení zabezpečené plochy pro výzvy ke zvýšení oprávnění
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v PromptOnSecureDesktop /t REG_DWORD /d 1 /f
- Vymazání zbytkového stavu aktualizace (jinak se výzva zobrazí naposledy)
Remove-Item "C:\ProgramData\Mozilla-1de4eec8-1241-4177-a864-e594e8d1fb38\updates\*\*" -Recurse -Force
- Obnovení výchozího chování výzvy UAC ke zvýšení oprávnění pro správce
- Spusťte Firefox, přejděte do nabídky Nápověda > O aplikaci Firefox a počkejte na zobrazení Restartovat a aktualizovat Firefox.
- Restartujte Firefox: aktualizace se musí nainstalovat bez jakékoli výzvy UAC.
-> Poznámky:
- Obnovení jedné z těchto dvou hodnot UAC stačí k odstranění chybného stavu; obnovení obou vrátí pracovní stanici do výchozího nastavení systému Windows.
- Pokud jsou tyto hodnoty UAC vynuceny zásadami skupiny domény, budou při příští aktualizaci zásad resetovány (zkontrolujte pomocí
gpupdate /force) – oprava pak musí být provedena na úrovni GPO. - Alternativně lze problém vyřešit také odebráním uživatele z privilegované skupiny (a následným odhlášením a opětovným přihlášením).
Ověření
Po aktualizaci nový soubor update.log obsahuje After checking IsUnpromptedElevation, useService=true a soubor update.status ukazuje applied-service.
Kontrola přenosů BITS (Služba inteligentního přenosu na pozadí)
Firefox používá ke stahování aktualizací na pozadí službu BITS.
Spusťte následující příkaz v PowerShellu:
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
}
}
}
-> Co zkontrolovat
- JobState (Stav úlohy) ukazuje aktuální stav přenosu (přenáší se, pozastaveno, dokončeno nebo chyba).
- ProgressPercent (Průběh v procentech) udává průběh stahování.
- RemoteURL (Vzdálená adresa URL) ukazuje adresu URL, kterou Firefox používá k načtení aktualizace.
-> Pokud je stahování zablokováno
Pokud stahování nepokračuje nebo úloha selže, ověřte, že adresa URL uvedená v RemoteURL není blokována vaší sítí, firewallem nebo proxy serverem.
Pro potvrzení zkopírujte a vložte adresu URL do prohlížeče a zkontrolujte, zda se stahování úspěšně spustí.
Výpis souborů souvisejících s Firefoxem v C:\ProgramData
Soubory aktualizací Firefoxu se stahují a ukládají do následujícího umístění.
Spusťte následující příkaz v PowerShellu:
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}
}
To pomáhá ověřit, zda byly soubory aktualizací staženy, a identifikovat neúplné nebo pozastavené soubory.