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.
Spis treści
- 1 Sprawdź lokalne klucze rejestru Zasad grupy (GPO)
- 2 Sprawdź zainstalowaną wersję programu Firefox
- 3 Sprawdź zaplanowane zadanie
- 4 Sprawdź usługę Mozilla Maintenance
- 5 Monit UAC o poświadczenia administratora podczas aktualizacji
- 6 Sprawdź transfery BITS (Usługa inteligentnego transferu w tle)
- 7 Wyświetl listę plików związanych z programem Firefox w C:\ProgramData
- 8 Powiązane artykuły
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(lubStopped, ale można ją uruchomić) -
StartTypejest ustawiony naAutomaticlubManual - 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:
- Pobierz instalator programu Firefox pasujący do twojego wdrożenia (ESR lub wydanie standardowe).
- Uruchom instalator jako Administrator.
- 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:
-
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\ConsentPromptBehaviorAdminjest ustawiony na0(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 to5) -
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\PromptOnSecureDesktopjest ustawiony na0(opcja zabezpieczeń Kontrola konta użytkownika: Przełącz na bezpieczny pulpit podczas monitowania o podniesienie uprawnień = Wyłączone; domyślna wartość w systemie Windows to1) - 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
SeBackupPrivilegelubSeDebugPrivilege) przyznanych przez Zasady grupy. Należy pamiętać, że filtrowanie oparte na uprawnieniach nie jest widoczne wwhoami /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
- Zamknij program Firefox.
- 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
- Przywróć domyślne zachowanie monitu o podniesienie uprawnień UAC dla administratorów
- Uruchom program Firefox, przejdź do Pomoc > O programie Firefox i poczekaj na Uruchom ponownie, by zaktualizować program Firefox.
- 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.