Nós recomendamos que mantenha as atualizações automáticas ativadas para todos os lançamentos do Firefox para se certificar que as últimas correções de segurança são aplicadas e que todas as funcionalidades estão disponíveis, mas o seu ambiente específico pode impedir atualizações automáticas.
O Firefox Rapid Release e o Firefox Extended Support Release, podem ser ambos utilizados nos seus ambientes de 'Empresa'. Se estiver preocupado com as atualizações grandes e frequentes, recomendamos que consulte Escolher um canal de atualização do Firefox para saber mais sobre o Firefox Extended Support Release.
| Frequência de atualização importante | Intenção de atualização importante | Frequência de atualização secundária | Intenção de atualização secundária | |
|---|---|---|---|---|
| ESR | Todos os anos | Novas funcionalidades e erros distribuídos nos últimos 12 meses. | A cada 2 semanas ou quando necessário | Correção de erro de segurança e estabilidade critica |
| RR | A cada duas semanas | Novas funcionalidades e erros distribuídos nas últimas 2 semanas | Quando necessário entre lançamentos importantes | Correção de erro de segurança e estabilidade critica |
Desativar as atualizações do Firefox
As atualizações automáticas estão ativadas por predefinição, mas pode desativá-las utilizando a política "DisableAppUpdate".
Quando as atualizações estão ativadas, estas podem ser instaladas silenciosamente sem a aprovação do utilizador, ativando a política "AppAutoUpdate".
Resolução de problemas de atualização do Firefox
Se uma estação de trabalho não recebe as atualizações do Firefox, as seguintes verificações do PowerShell podem ajudar a identificar a causa principal.
Verificar as chaves de registo 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 do registo | 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 transferir e aplicar as atualizações.
Execute o seguinte comando do PowerShell:
Get-ScheduledTask |
Where-Object { $_.TaskName -like "*Firefox Background Update*" } |
ForEach-Object { Get-ScheduledTaskInfo $_ }
-> Certifique-se de que:
- A tarefa existe
- A tarefa está ativada
- A tarefa é executada com sucesso e sem erros
Verificar o Mozilla Maintenance Service
No Windows, as atualizações do Firefox podem exigir que o Mozilla Maintenance Service esteja instalado e em execução. Este serviço permite que o Firefox aplique atualizações sem necessitar de privilégios administrativos.
Verificar se o serviço existe e o seu estado
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 estado é
Running(ouStopped, mas capaz de iniciar) - O
StartTypeestá definido comoAutomaticouManual - Se o serviço estiver em falta, o Firefox pode não conseguir aplicar as 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 Mozilla Maintenance Service
Se o serviço estiver em falta ou corrompido, pode ser reinstalado utilizando o instalador do Firefox:
- Transfira o instalador do Firefox que corresponde à sua implementação (ESR ou versão normal).
- Execute o instalador como Administrador.
- Certifique-se de que Install Mozilla Maintenance Service está selecionado.
Após a instalação, verifique novamente o estado do serviço.
Pedido UAC a solicitar credenciais de administrador durante as atualizações
Em algumas estações de trabalho, uma atualização aciona um pedido UAC com o título Firefox Updater Software a solicitar credenciais de administrador, mesmo que o Mozilla Maintenance Service esteja instalado e a funcionar corretamente. Os utilizadores padrão não conseguem concluir a atualização e o pedido volta a aparecer a cada arranque do Firefox.
Causa
Antes de utilizar o Maintenance Service, 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 qualquer pedido — como aconteceria para um administrador — e ignora o Maintenance Service. Mas se o utilizador com sessão iniciada não for de facto um administrador, a elevação não é silenciosa e o Windows exibe um pedido de credenciais UAC.
Isto acontece apenas quando todas as três seguintes condições são cumpridas:
-
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\ConsentPromptBehaviorAdminestá definido como0(opção de segurança Controlo de Conta de Utilizador: Comportamento do pedido de elevação para administradores no Modo de Aprovação de Administrador = Elevar sem pedir; o padrão do Windows é5) -
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\PromptOnSecureDesktopestá definido como0(opção de segurança Controlo de Conta de Utilizador: Mudar para o ambiente de trabalho seguro ao pedir elevação = Desativado; o padrão do Windows é1) - O utilizador com sessão iniciada tem um token filtrado UAC: membro de um grupo privilegiado (Administradores, Operadores de Cópia de Segurança, Utilizadores Avançados, etc.), incluindo grupos marcados como deny-only, ou detentor de privilégios sensíveis (como
SeBackupPrivilegeouSeDebugPrivilege) concedidos através da Política de Grupo. Note que a filtragem baseada em privilégios não é visível emwhoami /groups.
Diagnóstico
Verifique o registo 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 utilizador cancelou o pedido UAC). Nota: após uma primeira falha, os registos subsequentes mostram useService=false desde a primeira linha, sem as linhas After checking... (estado residual, ver Solução).
Depois, verifique os valores do UAC e o estado 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 transferida, o Maintenance Service será utilizado (normal) |
pending
| O Firefox desistiu do Maintenance Service para esta atualização (estado residual após uma falha) |
applied-service
| Atualização aplicada com sucesso através do Maintenance Service |
Solução
- Feche o Firefox.
- Execute os seguintes comandos numa PowerShell elevada:
- Restaurar o comportamento padrão do pedido de elevação UAC para administradores
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 5 /f
- Reativar o ambiente de trabalho seguro para pedidos de elevação
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v PromptOnSecureDesktop /t REG_DWORD /d 1 /f
- Limpar o estado residual da atualização (caso contrário, o pedido aparece uma última vez)
Remove-Item "C:\ProgramData\Mozilla-1de4eec8-1241-4177-a864-e594e8d1fb38\updates\*\*" -Recurse -Force
- Restaurar o comportamento padrão do pedido de elevação UAC para administradores
- Inicie o Firefox, vá a Ajuda > Acerca do Firefox e aguarde por Reiniciar para atualizar o Firefox.
- Reinicie o Firefox: a atualização deve ser aplicada sem qualquer pedido UAC.
-> Notas:
- Restaurar qualquer um dos dois valores UAC é suficiente para quebrar a condição defeituosa; restaurar ambos devolve a estação de trabalho aos padrões do Windows.
- Se estes valores 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 ao nível do GPO. - Alternativamente, remover o utilizador do grupo privilegiado (depois terminar a sessão e iniciar 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 a update.status mostra applied-service.
Verificar as transferências BITS (Background Intelligent Transfer Service)
O Firefox utiliza o BITS para transferir 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
- O JobState mostra o estado atual da transferência (a transferir, suspensa, concluída ou com erro).
- O ProgressPercent indica o progresso da transferência.
- O RemoteURL mostra o URL utilizado pelo Firefox para obter a atualização.
-> Se a transferência estiver bloqueada
Se o progresso não avançar ou a tarefa falhar, verifique se o URL mostrado no RemoteURL não está a ser bloqueado pela sua rede, firewall ou proxy.
Para confirmar, copie e cole o URL num navegador e verifique se a transferência começa com sucesso.
Listar ficheiros relacionados com o Firefox em C:\ProgramData
Os ficheiros de atualização do Firefox são transferidos e armazenados na seguinte localização.
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}
}
Isto ajuda a verificar se os ficheiros de atualização foram transferidos e a identificar ficheiros incompletos ou parados.