Řešení problémů s aktualizacemi Firefoxu ve Windows

Firefox Enterprise Firefox Enterprise Vytvořeno: před 3 týdny
Toto je strojový překlad anglického článku. Nebyl zkontrolován člověkem a může obsahovat chyby. Pokud chcete tento obsah upravit, můžete začít zde.

Tento článek je určen pro správce IT, kteří chtějí nastavit Firefox na počítačích v jejich organizaci.

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.

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) (nebo Stopped (Zastaveno), ale lze ji spustit)
  • StartType (Typ spouštění) je nastaven na Automatic (Automaticky) nebo Manual (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:

  1. Stáhněte si instalační program Firefoxu odpovídající vašemu nasazení (ESR nebo standardní vydání).
  2. Spusťte instalační program jako správce.
  3. 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:

  1. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\ConsentPromptBehaviorAdmin je nastaveno na 0 (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 je 5)
  2. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\PromptOnSecureDesktop je nastaveno na 0 (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 je 1)
  3. 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 SeBackupPrivilege nebo SeDebugPrivilege) udělených prostřednictvím zásad skupiny. Upozorňujeme, že filtrování na základě oprávnění není viditelné v příkazu whoami /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í

  1. Ukončete Firefox.
  2. 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
  3. Spusťte Firefox, přejděte do nabídky Nápověda > O aplikaci Firefox a počkejte na zobrazení Restartovat a aktualizovat Firefox.
  4. 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.

Související články

S napsáním tohoto článku pomohli tihle úžasní lidé:

Illustration of hands

Zapojte se

Rozvíjejte a sdílejte své znalosti s ostatními. Odpovídejte na dotazy a vylepšujte naše články nápovědy.

Zjistit více