Rozwiązywanie problemów z aktualizacjami programu Firefox w systemie Windows

Firefox Enterprise Firefox Enterprise Utworzony:
To jest wygenerowane maszynowo tłumaczenie artykułu w języku angielskim. Nie zostało sprawdzone przez człowieka i może zawierać błędy. Jeśli chcesz poprawić tę treść, możesz zacząć tutaj.

Ten artykuł jest adresowany do administratorów IT, którzy chcą skonfigurować przeglądarkę Firefox na komputerach w swojej organizacji.

Jeśli urządzenie z systemem Windows nie otrzymuje lub nie stosuje aktualizacji programu Firefox zgodnie z oczekiwaniami, użyj poniższych kontroli, aby pomóc w zidentyfikowaniu przyczyny. Przed rozpoczęciem upewnij się, że zasady aktualizacji programu Firefox w twojej organizacji są skonfigurowane zgodnie z zamierzeniami.

Ogólne informacje na temat zarządzania aktualizacjami można znaleźć na stronie Zarządzanie aktualizacjami przeglądarki Firefox.

Jeśli stacja robocza nie otrzymuje aktualizacji programu Firefox, poniższe kontrole PowerShell mogą pomóc w zidentyfikowaniu głównej przyczyny.

Sprawdź lokalne klucze rejestru Zasad grupy (GPO)

Uruchom następujące polecenie:

Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Mozilla\Firefox" | 
Select-Object DisableAppUpdate, AppAutoUpdate

Oczekiwane wartości:

Wartość rejestru Oczekiwana wartość
DisableAppUpdate 0
AppAutoUpdate 1

Jeśli wartości te nie są ustawione zgodnie z oczekiwaniami, aktualizacje programu Firefox mogą być wyłączone przez lokalne lub domenowe Zasady grupy.

Sprawdź zainstalowaną wersję programu Firefox

Uruchom następujące polecenie PowerShell:

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
}

Porównaj zainstalowaną wersję z najnowszą wersją Firefox ESR dostępną na stronie internetowej Mozilli.

Sprawdź zaplanowane zadanie

Firefox polega na działającym w tle zaplanowanym zadaniu, aby pobierać i stosować aktualizacje.

Uruchom następujące polecenie PowerShell:

Get-ScheduledTask | 
Where-Object { $_.TaskName -like "*Firefox Background Update*" } | 
ForEach-Object { Get-ScheduledTaskInfo $_ }

-> Upewnij się, że:

  • Zadanie istnieje
  • Zadanie jest włączone
  • Zadanie uruchamia się pomyślnie bez błędów

Sprawdź usługę Mozilla Maintenance

W systemie Windows aktualizacje programu Firefox mogą wymagać zainstalowania i uruchomienia usługi Mozilla Maintenance. Usługa ta pozwala programowi Firefox na stosowanie aktualizacji bez konieczności posiadania uprawnień administratora.

Sprawdź, czy usługa istnieje i jaki jest jej status

Uruchom następujące polecenie PowerShell:

Get-Service -Name MozillaMaintenance -ErrorAction SilentlyContinue |
Select-Object Name, DisplayName, Status, StartType

-> Oczekiwane zachowanie:

  • Usługa istnieje
  • Status to Running (lub Stopped, ale można ją uruchomić)
  • StartType jest ustawiony na Automatic lub Manual
  • Jeśli brakuje usługi, Firefox może nie być w stanie automatycznie stosować aktualizacji.

Ręczne uruchomienie usługi (jeśli jest to wymagane)

Jeśli usługa istnieje, ale nie jest uruchomiona, spróbuj ją uruchomić. Uruchom następujące polecenie PowerShell:

Start-Service -Name MozillaMaintenance

Sprawdź ponownie, czy usługa uruchamia się bez błędów.

Ponowna instalacja usługi Mozilla Maintenance

Jeśli usługa jest brakująca lub uszkodzona, można ją ponownie zainstalować za pomocą instalatora programu Firefox:

  1. Pobierz instalator programu Firefox pasujący do twojego wdrożenia (ESR lub wydanie standardowe).
  2. Uruchom instalator jako Administrator.
  3. Upewnij się, że opcja Zainstaluj usługę Mozilla Maintenance jest zaznaczona.

Po instalacji ponownie sprawdź status usługi.

Monit UAC o poświadczenia administratora podczas aktualizacji

Na niektórych stacjach roboczych aktualizacja wywołuje monit UAC o tytule Firefox Updater Software z prośbą o poświadczenia administratora, mimo że usługa Mozilla Maintenance jest zainstalowana i działa prawidłowo. Standardowi użytkownicy nie mogą ukończyć aktualizacji, a monit pojawia się ponownie przy każdym uruchomieniu programu Firefox.

Przyczyna

Przed użyciem usługi Maintenance, aktualizator programu Firefox sprawdza konfigurację UAC stacji roboczej (test IsUnpromptedElevation w kodzie źródłowym aktualizatora). Jeśli UAC jest skonfigurowane do cichego podniesienia uprawnień, Firefox zakłada, że podniesienie uprawnień nastąpi bez żadnego monitu — tak jak w przypadku administratora — i pomija usługę Maintenance. Ale jeśli zalogowany użytkownik w rzeczywistości nie jest administratorem, podniesienie uprawnień nie jest ciche, a system Windows wyświetla monit UAC o poświadczenia.

Dzieje się tak tylko wtedy, gdy spełnione są wszystkie trzy z poniższych warunków:

  1. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\ConsentPromptBehaviorAdmin jest ustawiony na 0 (opcja zabezpieczeń Kontrola konta użytkownika: Zachowanie monitu o podniesienie uprawnień dla administratorów w trybie zatwierdzania przez administratora = Podnieś poziom uprawnień bez monitowania; domyślna wartość w systemie Windows to 5)
  2. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\PromptOnSecureDesktop jest ustawiony na 0 (opcja zabezpieczeń Kontrola konta użytkownika: Przełącz na bezpieczny pulpit podczas monitowania o podniesienie uprawnień = Wyłączone; domyślna wartość w systemie Windows to 1)
  3. Zalogowany użytkownik ma filtrowany token UAC: jest członkiem grupy uprzywilejowanej (Administratorzy, Operatorzy kopii zapasowych, Użytkownicy zaawansowani itp.), w tym grup oznaczonych jako tylko do odmowy, lub posiadaczem wrażliwych uprawnień (takich jak SeBackupPrivilege lub SeDebugPrivilege) przyznanych przez Zasady grupy. Należy pamiętać, że filtrowanie oparte na uprawnieniach nie jest widoczne w whoami /groups.

Diagnoza

Sprawdź log aktualizatora pod kątem następującej sygnatury:

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
...

Linia useService=false po sprawdzeniu IsUnpromptedElevation potwierdza tę przyczynę (błąd 9 oznacza, że użytkownik anulował monit UAC). Uwaga: po pierwszej awarii kolejne logi pokazują useService=false od pierwszej linii, bez linii After checking... (stan resztkowy, patrz Rozwiązanie).

Następnie sprawdź wartości UAC i status oczekującej aktualizacji:

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żliwe wartości update.status:

Wartość Znaczenie
pending-service Aktualizacja pobrana, zostanie użyta usługa Maintenance (normalne)
pending Firefox zrezygnował z usługi Maintenance dla tej aktualizacji (stan resztkowy po awarii)
applied-service Aktualizacja pomyślnie zastosowana przez usługę Maintenance

Rozwiązanie

  1. Zamknij program Firefox.
  2. Uruchom następujące polecenia w PowerShell z podniesionymi uprawnieniami:
    • Przywróć domyślne zachowanie monitu o podniesienie uprawnień UAC dla administratorów
      reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 5 /f
    • Włącz ponownie bezpieczny pulpit dla monitów o podniesienie uprawnień
      reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v PromptOnSecureDesktop /t REG_DWORD /d 1 /f
    • Wyczyść resztkowy stan aktualizacji (w przeciwnym razie monit pojawi się po raz ostatni)
      Remove-Item "C:\ProgramData\Mozilla-1de4eec8-1241-4177-a864-e594e8d1fb38\updates\*\*" -Recurse -Force
  3. Uruchom program Firefox, przejdź do Pomoc > O programie Firefox i poczekaj na Uruchom ponownie, by zaktualizować program Firefox.
  4. Uruchom ponownie program Firefox: aktualizacja musi zostać zastosowana bez żadnego monitu UAC.

-> Uwagi:

  • Przywrócenie jednej z dwóch wartości UAC jest wystarczające, aby przerwać błędny warunek; przywrócenie obu przywraca stację roboczą do domyślnych ustawień systemu Windows.
  • Jeśli te wartości UAC są wymuszane przez domenowe Zasady grupy, zostaną one zresetowane przy następnym odświeżeniu zasad (sprawdź za pomocą gpupdate /force) — poprawka musi być wtedy zastosowana na poziomie GPO.
  • Alternatywnie, usunięcie użytkownika z grupy uprzywilejowanej (a następnie wylogowanie i ponowne zalogowanie) również rozwiązuje problem.

Weryfikacja

Po aktualizacji nowy plik update.log zawiera After checking IsUnpromptedElevation, useService=true, a update.status pokazuje applied-service.

Sprawdź transfery BITS (Usługa inteligentnego transferu w tle)

Firefox używa usługi BITS do pobierania aktualizacji w tle.

Uruchom następujące polecenie PowerShell:

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 należy sprawdzić

  • JobState pokazuje aktualny stan transferu (przesyłanie, wstrzymanie, ukończenie lub błąd).
  • ProgressPercent wskazuje postęp pobierania.
  • RemoteURL pokazuje adres URL używany przez program Firefox do pobrania aktualizacji.

-> Jeśli pobieranie jest zablokowane

Jeśli postęp nie następuje lub zadanie kończy się niepowodzeniem, sprawdź, czy adres URL pokazany w RemoteURL nie jest blokowany przez twoją sieć, zaporę sieciową lub serwer proxy.

Aby to potwierdzić, skopiuj i wklej adres URL do przeglądarki i sprawdź, czy pobieranie rozpocznie się pomyślnie.

Wyświetl listę plików związanych z programem Firefox w C:\ProgramData

Pliki aktualizacji programu Firefox są pobierane i przechowywane w następującej lokalizacji.

Uruchom następujące polecenie PowerShell:

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} 
}

Pomaga to zweryfikować, czy pliki aktualizacji zostały pobrane i zidentyfikować niekompletne lub zatrzymane pliki.

Powiązane artykuły

Osoby, które pomogły w tworzeniu tego artykułu:

Illustration of hands

Pomóż nam

Zdobywaj wiedzę i dziel się nią z innymi. Odpowiadaj na pytania i ulepsz naszą bazę wiedzy.

Więcej informacji