Como gerenciar atualizações do Firefox

Firefox Enterprise Firefox Enterprise Última atualização: há 2 dias

Este artigo é destinado a administradores de TI que queiram configurar o Firefox nos computadores de sua organização.

Recomendamos manter ativadas as atualizações automáticas em todas as instalações do Firefox para garantir que os últimos patches de segurança sejam aplicados e todos os recursos estejam disponíveis, mas seu ambiente específico pode impedir atualizações automáticas.

Tanto o Firefox Rapid Release como o Firefox Extended Support Release podem ser usados em seu ambiente corporativo. Caso esteja preocupado com grandes atualizações frequentes, recomendamos dar uma olhada em Como escolher um canal de atualização do Firefox para saber mais sobre o Firefox Extended Support Release.

Frequência de atualizações maiores Escopo de atualizações maiores Frequência de atualizações menores Escopo de atualizações menores
ESR A cada ano

Cronograma

Novos recursos disponibilizados e bugs corrigidos nos últimos 12 meses. A cada 2 semanas ou quando necessário Correções críticas de estabilidade ou de falhas de segurança
RR A cada duas semanas

Cronograma

Novos recursos disponibilizados e bugs corrigidos nas últimas 2 semanas Quando necessário entre as atualizações maiores Correções críticas de estabilidade ou de falhas de segurança


Desativar atualizações do Firefox

Por padrão as atualizações automáticas ficam ativadas, mas você pode desativar usando a diretiva DisableAppUpdate.

Quando as atualizações estão ativadas, elas podem ser instaladas silenciosamente sem aprovação do usuário, ativando a diretiva AppAutoUpdate.

Solução de problemas de atualização do Firefox

Se uma estação de trabalho não recebe atualizações do Firefox, as seguintes verificações do PowerShell podem ajudar a identificar a causa raiz.

Verificar chaves de registro da Política de Grupo (GPO) local

Execute o seguinte comando:

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

Valores esperados:

Valor de registro Valor esperado
DisableAppUpdate 0
AppAutoUpdate 1

Se estes valores não estiverem definidos como esperado, as atualizações do Firefox podem estar desativadas pela Política de Grupo local ou de domínio.

Verificar a versão instalada do Firefox

Execute o seguinte comando do 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
}

Compare a versão instalada com a versão mais recente do Firefox ESR disponível no site da Mozilla.

Verificar a tarefa agendada

O Firefox depende de uma tarefa agendada em segundo plano para baixar e aplicar atualizações.

Execute o seguinte comando do PowerShell:

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

-> Certifique-se que:

  • A tarefa existe
  • A tarefa está ativada
  • A tarefa é executada com sucesso, sem erros

Verificar o Serviço de Manutenção da Mozilla

No Windows, as atualizações do Firefox podem exigir que o Serviço de Manutenção da Mozilla (Mozilla Maintenance Service) esteja instalado e em execução. Este serviço permite que o Firefox aplique atualizações sem exigir privilégios administrativos.

Verificar se o serviço existe e seu status

Execute o seguinte comando do PowerShell:

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

-> Comportamento esperado:

  • O serviço existe
  • O status é Running (ou Stopped, mas capaz de iniciar)
  • StartType está definido como Automatic ou Manual
  • Se o serviço não existir, o Firefox pode não conseguir aplicar atualizações automaticamente.

Iniciar o serviço manualmente (se necessário)

Se o serviço existir, mas não estiver em execução, tente iniciá-lo. Execute o seguinte comando do PowerShell:

Start-Service -Name MozillaMaintenance

Verifique novamente se o serviço inicia sem erros.

Reinstalar o Serviço de Manutenção da Mozilla

Se o serviço não existir ou estiver corrompido, ele pode ser reinstalado usando o instalador do Firefox:

  1. Baixe o instalador do Firefox que corresponde à sua implantação (ESR ou versão padrão).
  2. Execute o instalador como Administrador.
  3. Certifique-se de que Instalar o Serviço de Manutenção da Mozilla esteja selecionado.

Após a instalação, verifique novamente o status do serviço.

Aviso do UAC pedindo credenciais de administrador durante atualizações

Em algumas estações de trabalho, uma atualização aciona um aviso do UAC com o título Firefox Updater Software pedindo credenciais de administrador, mesmo que o Serviço de Manutenção da Mozilla esteja instalado e funcionando corretamente. Usuários padrão não conseguem concluir a atualização e o aviso reaparece a cada inicialização do Firefox.

Causa

Antes de usar o Serviço de Manutenção, o atualizador do Firefox verifica a configuração do UAC da estação de trabalho (teste IsUnpromptedElevation no código-fonte do atualizador). Se o UAC estiver configurado para elevação silenciosa, o Firefox assume que a elevação ocorrerá sem nenhum aviso — como aconteceria para um administrador — e ignora o Serviço de Manutenção. Mas se o usuário logado não for de fato um administrador, a elevação não é silenciosa e o Windows exibe um aviso de credenciais do UAC.

Isso acontece somente quando todas as três condições a seguir são atendidas:

  1. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\ConsentPromptBehaviorAdmin está definido como 0 (opção de segurança Controle de Conta de Usuário: comportamento do aviso de elevação para administradores no Modo de Aprovação de Administrador = Elevar sem aviso; o padrão do Windows é 5)
  2. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\PromptOnSecureDesktop está definido como 0 (opção de segurança Controle de Conta de Usuário: alternar para a área de trabalho segura ao solicitar elevação = Desativado; o padrão do Windows é 1)
  3. O usuário logado tem um token filtrado do UAC: membro de um grupo privilegiado (Administradores, Operadores de Backup, Usuários Avançados, etc.), incluindo grupos marcados como somente negação, ou detentor de privilégios sensíveis (como SeBackupPrivilege ou SeDebugPrivilege) concedidos através da Política de Grupo. Note que a filtragem baseada em privilégios não é visível em whoami /groups.

Diagnóstico

Verifique o log do atualizador para a seguinte assinatura:

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

A linha useService=false após a verificação IsUnpromptedElevation confirma esta causa (erro 9 significa que o usuário cancelou o aviso do UAC). Observação: após uma primeira falha, os logs subsequentes mostram useService=false desde a primeira linha, sem as linhas After checking... (estado residual, consulte a Solução).

Em seguida, verifique os valores do UAC e o status da atualização pendente:

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"

Valores possíveis de update.status:

Valor Significado
pending-service Atualização baixada, o Serviço de Manutenção será usado (normal)
pending O Firefox desistiu do Serviço de Manutenção para esta atualização (estado residual após uma falha)
applied-service Atualização aplicada com sucesso através do Serviço de Manutenção

Solução

  1. Feche o Firefox.
  2. Execute os seguintes comandos em um PowerShell elevado:
    • Restaura o comportamento padrão do aviso de elevação do UAC para administradores
      reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 5 /f
    • Reativa a área de trabalho segura para avisos de elevação
      reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v PromptOnSecureDesktop /t REG_DWORD /d 1 /f
    • Limpa o estado residual da atualização (caso contrário, o aviso aparece uma última vez)
      Remove-Item "C:\ProgramData\Mozilla-1de4eec8-1241-4177-a864-e594e8d1fb38\updates\*\*" -Recurse -Force
  3. Inicie o Firefox, vá em Ajuda > Sobre o Firefox e aguarde por Reiniciar para atualizar o Firefox.
  4. Reinicie o Firefox: a atualização deve ser aplicada sem nenhum aviso do UAC.

-> Observações:

  • Restaurar qualquer um dos dois valores do UAC é suficiente para quebrar a condição defeituosa; restaurar ambos traz a estação de trabalho de volta aos padrões do Windows.
  • Se esses valores do UAC forem impostos por uma Política de Grupo de domínio, eles serão redefinidos na próxima atualização da política (verifique com gpupdate /force) — a correção deve então ser aplicada no nível do GPO.
  • Alternativamente, remover o usuário do grupo privilegiado (e depois fazer logoff e logon novamente) também resolve o problema.

Verificação

Após a atualização, o novo update.log contém After checking IsUnpromptedElevation, useService=true e update.status mostra applied-service.

Verificar transferências do BITS (Serviço de Transferência Inteligente em Segundo Plano)

O Firefox usa o BITS para baixar atualizações em segundo plano.

Execute o seguinte comando do 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
        }
    }
}

-> O que verificar

  • JobState mostra o estado atual da transferência (transferindo, suspensa, concluída ou erro).
  • ProgressPercent indica o progresso do download.
  • RemoteURL mostra a URL usada pelo Firefox para obter a atualização.

-> Se o download estiver bloqueado

Se o progresso não avançar ou a tarefa falhar, verifique se a URL mostrada em RemoteURL não está bloqueada por sua rede, firewall ou proxy.

Para confirmar, copie e cole a URL em um navegador e verifique se o download inicia com sucesso.

Listar arquivos relacionados ao Firefox em C:\ProgramData

Os arquivos de atualização do Firefox são baixados e armazenados no seguinte local.

Execute o seguinte comando do 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} 
}

Isso ajuda a verificar se os arquivos de atualização foram baixados e a identificar arquivos incompletos ou parados.

Essas pessoas ajudaram a escrever este artigo:

Illustration of hands

Torne-se um voluntário

Desenvolva e compartilhe sua especialidade com outras pessoas. Responda perguntas e aprimore nossa base de conhecimento.

Saiba mais