Gestione degli aggiornamenti di Firefox per le aziende

Firefox Enterprise Firefox Enterprise Ultima modifica: 1 settimana fa

Questo articolo è destinato agli amministratori di sistema che desiderano configurare Firefox sui computer della propria azienda.

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

vedere il calendario

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

vedere il calendario

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) (o Stopped (Arrestato), ma in grado di avviarsi)
  • StartType (Tipo di avvio) è impostato su Automatic (Automatico) o Manual (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:

  1. Scaricare il programma di installazione di Firefox corrispondente alla propria distribuzione (ESR o versione standard).
  2. Eseguire il programma di installazione come amministratore.
  3. 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:

  1. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\ConsentPromptBehaviorAdmin è impostato su 0 (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)
  2. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\PromptOnSecureDesktop è impostato su 0 (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)
  3. 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 SeBackupPrivilege o SeDebugPrivilege) concessi tramite Criteri di gruppo. Notare che il filtro basato sui privilegi non è visibile in whoami /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

  1. Chiudere Firefox.
  2. 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
  3. Avviare Firefox, andare su Aiuto > Informazioni su Firefox e attendere la comparsa del pulsante Riavvia per aggiornare Firefox.
  4. 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.

Questi bravi collaboratori hanno contribuito alla scrittura di questo articolo:

Illustration of hands

Collabora

Impara e condividi la tua esperienza con gli altri. Rispondi alle domande e migliora la nostra Knowledge Base.

Ulteriori informazioni