Mozilla consiglia di mantenere gli aggiornamenti automatici attivati per tutte le distribuzioni di Firefox in modo da garantire che vengano applicate le ultime patch di sicurezza e che tutte le funzionalità siano disponibili, tuttavia l'ambiente specifico potrebbe impedire gli aggiornamenti automatici.
Nel proprio ambiente aziendale possono essere utilizzate entrambe le versioni di Firefox, sia quelle normali a rilascio rapido (Firefox Rapid Release o RR) sia quelle a supporto esteso (Extended Support Release o ESR). Se si è preoccupati riguardo alla gestione degli aggiornamenti frequenti di grandi dimensioni, si consiglia di consultare l'articolo Differenze tra i canali di aggiornamento di Firefox per ulteriori informazioni sul rilascio delle versioni ESR di Firefox (Extended Support Release).
| Frequenza degli aggiornamenti principali | Finalità degli aggiornamenti principali | Frequenza degli aggiornamenti minori | Finalità degli aggiornamenti minori | |
|---|---|---|---|---|
| ESR | Annuali | Distribuzione di nuove funzionalità e correzioni di bug negli ultimi 12 mesi. | Ogni 2 settimane o se necessario | Correzioni fondamentali di stabilità o di bug di sicurezza |
| RR | Ogni due settimane | Distribuzione di nuove funzionalità e correzioni di bug nelle ultime 2 settimane | Se necessario tra le versioni principali | Correzioni fondamentali di stabilità o di bug di sicurezza |
Disattivare gli aggiornamenti di Firefox
Gli aggiornamenti automatici sono attivati per impostazione predefinita, ma è possibile disattivarli utilizzando il criterio DisableAppUpdate.
Quando gli aggiornamenti sono attivati, possono essere installati in modo silente senza l'approvazione dell'utente attivando il criterio AppAutoUpdate.
Risoluzione dei problemi di aggiornamento di Firefox
Se una postazione di lavoro non riceve gli aggiornamenti di Firefox, i seguenti controlli PowerShell possono aiutare a identificare la causa principale.
Controllare le chiavi di registro dei Criteri di gruppo locali (GPO)
Eseguire il seguente comando:
Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Mozilla\Firefox" |
Select-Object DisableAppUpdate, AppAutoUpdate
Valori previsti:
| Valore del registro | Valore previsto |
|---|---|
DisableAppUpdate
| 0 |
AppAutoUpdate
| 1 |
Se questi valori non sono impostati come previsto, gli aggiornamenti di Firefox potrebbero essere disattivati dai Criteri di gruppo locali o di dominio.
Controllare la versione di Firefox installata
Eseguire il seguente comando 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
}
Confrontare la versione installata con l'ultima versione di Firefox ESR disponibile sul sito web di Mozilla.
Controllare l'operazione pianificata
Firefox si affida a un'operazione pianificata in background per scaricare e applicare gli aggiornamenti.
Eseguire il seguente comando PowerShell:
Get-ScheduledTask |
Where-Object { $_.TaskName -like "*Firefox Background Update*" } |
ForEach-Object { Get-ScheduledTaskInfo $_ }
-> Assicurarsi che:
- L'operazione esista
- L'operazione sia attivata
- L'operazione venga eseguita correttamente senza errori
Controllare il Servizio di manutenzione Mozilla
Su Windows, gli aggiornamenti di Firefox potrebbero richiedere che il Servizio di manutenzione Mozilla (Mozilla Maintenance Service) sia installato e in esecuzione. Questo servizio consente a Firefox di applicare gli aggiornamenti senza richiedere i privilegi di amministratore.
Controllare se il servizio esiste e il suo stato
Eseguire il seguente comando PowerShell:
Get-Service -Name MozillaMaintenance -ErrorAction SilentlyContinue |
Select-Object Name, DisplayName, Status, StartType
-> Comportamento previsto:
- Il servizio esiste
- Lo stato è
Running(In esecuzione) (oStopped(Arrestato), ma in grado di avviarsi) -
StartType(Tipo di avvio) è impostato suAutomatic(Automatico) oManual(Manuale) - Se il servizio è mancante, Firefox potrebbe non essere in grado di applicare gli aggiornamenti automaticamente.
Avviare il servizio manualmente (se necessario)
Se il servizio esiste ma non è in esecuzione, provare ad avviarlo. Eseguire il seguente comando PowerShell:
Start-Service -Name MozillaMaintenance
Controllare di nuovo che il servizio si avvii senza errori.
Reinstallare il Servizio di manutenzione Mozilla
Se il servizio è mancante o danneggiato, può essere reinstallato utilizzando il programma di installazione di Firefox:
- Scaricare il programma di installazione di Firefox corrispondente alla propria distribuzione (ESR o versione standard).
- Eseguire il programma di installazione come amministratore.
- Assicurarsi che l'opzione Install Mozilla Maintenance Service (Installa Servizio di manutenzione Mozilla) sia selezionata.
Dopo l'installazione, ricontrollare lo stato del servizio.
Richiesta UAC delle credenziali di amministratore durante gli aggiornamenti
Su alcune postazioni di lavoro, un aggiornamento attiva una richiesta UAC (Controllo dell'account utente) dal titolo Firefox Updater Software che chiede le credenziali di amministratore, anche se il Servizio di manutenzione Mozilla è installato e funzionante. Gli utenti standard non possono completare l'aggiornamento e la richiesta riappare a ogni avvio di Firefox.
Causa
Prima di utilizzare il Servizio di manutenzione, il programma di aggiornamento di Firefox controlla la configurazione UAC della postazione di lavoro (test IsUnpromptedElevation nel codice sorgente del programma di aggiornamento). Se UAC è configurato per l'elevazione dei privilegi silente, Firefox presuppone che l'elevazione avverrà senza alcuna richiesta, come accadrebbe per un amministratore, e salta il Servizio di manutenzione. Ma se l'utente che ha effettuato l'accesso non è in realtà un amministratore, l'elevazione non è silente e Windows visualizza invece una richiesta di credenziali UAC.
Questo accade solo quando vengono soddisfatte tutte e tre le seguenti condizioni:
-
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\ConsentPromptBehaviorAdminè impostato su0(opzione di sicurezza Controllo dell'account utente: comportamento della richiesta di elevazione dei privilegi per gli amministratori in modalità di approvazione amministratore = Eleva privilegi senza chiedere conferma; il valore predefinito di Windows è5) -
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\PromptOnSecureDesktopè impostato su0(opzione di sicurezza Controllo dell'account utente: passa al desktop sicuro quando viene richiesta l'elevazione dei privilegi = Disattivato; il valore predefinito di Windows è1) - L'utente che ha effettuato l'accesso ha un token filtrato UAC: membro di un gruppo con privilegi (Administrators, Backup Operators, Power Users, ecc.), inclusi i gruppi contrassegnati come deny-only, o detentore di privilegi sensibili (come
SeBackupPrivilegeoSeDebugPrivilege) concessi tramite Criteri di gruppo. Notare che il filtro basato sui privilegi non è visibile inwhoami /groups.
Diagnosi
Controllare il registro del programma di aggiornamento per la seguente firma:
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
...
La riga useService=false dopo il controllo IsUnpromptedElevation conferma questa causa (l'errore 9 significa che l'utente ha annullato la richiesta UAC). Nota: dopo un primo errore, i registri successivi mostrano useService=false dalla prima riga, senza le righe After checking... (stato residuo, vedere la sezione Soluzione).
Quindi controllare i valori UAC e lo stato dell'aggiornamento in sospeso:
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"
Valori possibili per update.status:
| Valore | Significato |
|---|---|
pending-service
| Aggiornamento scaricato, verrà utilizzato il Servizio di manutenzione (normale) |
pending
| Firefox ha rinunciato al Servizio di manutenzione per questo aggiornamento (stato residuo dopo un errore) |
applied-service
| Aggiornamento applicato correttamente tramite il Servizio di manutenzione |
Soluzione
- Chiudere Firefox.
- Eseguire i seguenti comandi in una finestra di PowerShell con privilegi elevati:
- Ripristina il comportamento predefinito della richiesta di elevazione UAC per gli amministratori
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 5 /f
- Riattiva il desktop sicuro per le richieste di elevazione
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v PromptOnSecureDesktop /t REG_DWORD /d 1 /f
- Cancella lo stato residuo dell'aggiornamento (altrimenti la richiesta appare un'ultima volta)
Remove-Item "C:\ProgramData\Mozilla-1de4eec8-1241-4177-a864-e594e8d1fb38\updates\*\*" -Recurse -Force
- Ripristina il comportamento predefinito della richiesta di elevazione UAC per gli amministratori
- Avviare Firefox, andare su Aiuto > Informazioni su Firefox e attendere la comparsa del pulsante Riavvia per aggiornare Firefox.
- Riavviare Firefox: l'aggiornamento deve essere applicato senza alcuna richiesta UAC.
-> Note:
- Il ripristino di uno dei due valori UAC è sufficiente per interrompere la condizione di errore; il ripristino di entrambi riporta la postazione di lavoro ai valori predefiniti di Windows.
- Se questi valori UAC sono imposti da un Criterio di gruppo di dominio, verranno reimpostati al successivo aggiornamento dei criteri (verificare con
gpupdate /force) — la correzione deve quindi essere applicata a livello di GPO. - In alternativa, anche la rimozione dell'utente dal gruppo con privilegi (quindi disconnessione e nuovo accesso) risolve il problema.
Verifica
Dopo l'aggiornamento, il nuovo file update.log contiene After checking IsUnpromptedElevation, useService=true e update.status mostra applied-service.
Controllare i trasferimenti BITS (Servizio trasferimento intelligente in background)
Firefox utilizza BITS per scaricare gli aggiornamenti in background.
Eseguire il seguente comando 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
}
}
}
-> Che cosa controllare
- JobState mostra lo stato corrente del trasferimento (in trasferimento, sospeso, completato o errore).
- ProgressPercent indica l'avanzamento del download.
- RemoteURL mostra l'URL utilizzato da Firefox per recuperare l'aggiornamento.
-> Se il download è bloccato
Se l'avanzamento non prosegue o il processo fallisce, verificare che l'URL mostrato in RemoteURL non sia bloccato dalla rete, dal firewall o dal proxy.
Per conferma, copiare e incollare l'URL in un browser e verificare se il download si avvia correttamente.
Elencare i file relativi a Firefox in C:\ProgramData
I file di aggiornamento di Firefox vengono scaricati e archiviati nella seguente posizione.
Eseguire il seguente comando 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}
}
Questo aiuta a verificare se i file di aggiornamento sono stati scaricati e a identificare i file incompleti o bloccati.