Si un dispositivo Windows no recibe o aplica las actualizaciones de Firefox como se espera, utiliza las siguientes comprobaciones para ayudar a identificar la causa. Antes de empezar, asegúrate de que las políticas de actualización de Firefox de tu organización están configuradas como es debido.
Para obtener información general sobre la gestión de actualizaciones, consulta Gestionar las actualizaciones de Firefox.
Tabla de contenidos
- 1 Comprobar las claves de registro de la Directiva de grupo local (GPO)
- 2 Comprobar la versión de Firefox instalada
- 3 Comprobar la tarea programada
- 4 Comprobar el Servicio de Mantenimiento de Mozilla
- 5 Aviso de UAC que solicita credenciales de administrador durante las actualizaciones
- 6 Comprobar las transferencias BITS (Servicio de transferencia inteligente en segundo plano)
- 7 Listar archivos relacionados con Firefox en C:\ProgramData
- 8 Artículos relacionados
Si una estación de trabajo no recibe las actualizaciones de Firefox, las siguientes comprobaciones de PowerShell pueden ayudar a identificar la causa raíz.
Comprobar las claves de registro de la Directiva de grupo local (GPO)
Ejecuta el siguiente comando:
Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Mozilla\Firefox" |
Select-Object DisableAppUpdate, AppAutoUpdate
Valores esperados:
| Valor del registro | Valor esperado |
|---|---|
DisableAppUpdate
| 0 |
AppAutoUpdate
| 1 |
Si estos valores no están configurados como se espera, las actualizaciones de Firefox pueden estar deshabilitadas por la Directiva de grupo local o de dominio.
Comprobar la versión de Firefox instalada
Ejecuta el siguiente comando de 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
}
Compara la versión instalada con la última versión de Firefox ESR disponible en el sitio web de Mozilla.
Comprobar la tarea programada
Firefox depende de una tarea programada en segundo plano para descargar y aplicar las actualizaciones.
Ejecuta el siguiente comando de PowerShell:
Get-ScheduledTask |
Where-Object { $_.TaskName -like "*Firefox Background Update*" } |
ForEach-Object { Get-ScheduledTaskInfo $_ }
-> Asegúrate de que:
- La tarea existe
- La tarea está habilitada
- La tarea se ejecuta correctamente sin errores
Comprobar el Servicio de Mantenimiento de Mozilla
En Windows, las actualizaciones de Firefox pueden requerir que el Servicio de Mantenimiento de Mozilla esté instalado y en funcionamiento. Este servicio permite a Firefox aplicar actualizaciones sin necesidad de privilegios administrativos.
Comprobar si el servicio existe y su estado
Ejecuta el siguiente comando de PowerShell:
Get-Service -Name MozillaMaintenance -ErrorAction SilentlyContinue |
Select-Object Name, DisplayName, Status, StartType
-> Comportamiento esperado:
- El servicio existe
- El estado es
Running(oStopped, pero puede iniciarse) -
StartTypeestá configurado comoAutomaticoManual - Si falta el servicio, es posible que Firefox no pueda aplicar las actualizaciones automáticamente.
Iniciar el servicio manualmente (si es necesario)
Si el servicio existe pero no se está ejecutando, intenta iniciarlo. Ejecuta el siguiente comando de PowerShell:
Start-Service -Name MozillaMaintenance
Comprueba de nuevo que el servicio se inicia sin errores.
Reinstalar el Servicio de Mantenimiento de Mozilla
Si el servicio falta o está dañado, se puede reinstalar utilizando el instalador de Firefox:
- Descarga el instalador de Firefox que coincida con tu despliegue (ESR o versión estándar).
- Ejecuta el instalador como Administrador.
- Asegúrate de que la opción Instalar el Servicio de Mantenimiento de Mozilla está seleccionada.
Tras la instalación, vuelve a comprobar el estado del servicio.
Aviso de UAC que solicita credenciales de administrador durante las actualizaciones
En algunas estaciones de trabajo, una actualización desencadena un aviso de UAC titulado Firefox Updater Software que solicita credenciales de administrador, aunque el Servicio de Mantenimiento de Mozilla esté instalado y funcione correctamente. Los usuarios estándar no pueden completar la actualización y el aviso vuelve a aparecer cada vez que se inicia Firefox.
Causa
Antes de utilizar el Servicio de Mantenimiento, el actualizador de Firefox comprueba la configuración de UAC de la estación de trabajo (prueba `IsUnpromptedElevation` en el código fuente del actualizador). Si el UAC está configurado para la elevación silenciosa, Firefox asume que la elevación se producirá sin ningún aviso —como lo haría para un administrador— y omite el Servicio de Mantenimiento. Pero si el usuario que ha iniciado sesión no es realmente un administrador, la elevación no es silenciosa y Windows muestra en su lugar un aviso de credenciales de UAC.
Esto ocurre solo cuando se cumplen las tres condiciones siguientes:
-
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\ConsentPromptBehaviorAdminestá configurado en0(opción de seguridad Control de cuentas de usuario: Comportamiento del aviso de elevación para administradores en modo de aprobación de administrador = Elevar sin preguntar; el valor predeterminado de Windows es5) -
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\PromptOnSecureDesktopestá configurado en0(opción de seguridad Control de cuentas de usuario: Cambiar al escritorio seguro cuando se pida la elevación = Deshabilitado; el valor predeterminado de Windows es1) - El usuario que ha iniciado sesión tiene un token filtrado de UAC: es miembro de un grupo con privilegios (Administradores, Operadores de copia de seguridad, Usuarios avanzados, etc.), incluidos los grupos marcados como solo denegar, o titular de privilegios sensibles (como `SeBackupPrivilege` o `SeDebugPrivilege`) concedidos a través de la Directiva de grupo. Ten en cuenta que el filtrado basado en privilegios no es visible en
whoami /groups.
Diagnóstico
Comprueba el registro del actualizador para ver la siguiente 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 línea `useService=false` después de la comprobación `IsUnpromptedElevation` confirma esta causa (el error `9` significa que el usuario canceló el aviso de UAC). Nota: después de un primer fallo, los registros posteriores muestran `useService=false` desde la primera línea, sin las líneas `After checking...` (estado residual, ver Solución).
A continuación, comprueba los valores de UAC y el estado de la actualización pendiente:
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"
Posibles valores de `update.status`:
| Valor | Significado |
|---|---|
pending-service
| Actualización descargada, se utilizará el Servicio de Mantenimiento (normal) |
pending
| Firefox ha renunciado al Servicio de Mantenimiento para esta actualización (estado residual tras un fallo) |
applied-service
| Actualización aplicada con éxito a través del Servicio de Mantenimiento |
Solución
- Cierra Firefox.
- Ejecuta los siguientes comandos en un PowerShell con privilegios elevados:
- Restaurar el comportamiento predeterminado del aviso de elevación de UAC para los administradores
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 5 /f
- Reactivar el escritorio seguro para los avisos de elevación
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v PromptOnSecureDesktop /t REG_DWORD /d 1 /f
- Limpiar el estado de actualización residual (de lo contrario, el aviso aparece una última vez)
Remove-Item "C:\ProgramData\Mozilla-1de4eec8-1241-4177-a864-e594e8d1fb38\updates\*\*" -Recurse -Force
- Restaurar el comportamiento predeterminado del aviso de elevación de UAC para los administradores
- Inicia Firefox, ve a Ayuda > Acerca de Firefox y espera a que aparezca Reiniciar para actualizar Firefox.
- Reinicia Firefox: la actualización debe aplicarse sin ningún aviso de UAC.
-> Notas:
- Restaurar cualquiera de los dos valores de UAC es suficiente para romper la condición defectuosa; restaurar ambos devuelve la estación de trabajo a los valores predeterminados de Windows.
- Si estos valores de UAC son aplicados por una Directiva de grupo de dominio, se restablecerán en la siguiente actualización de la directiva (compruébalo con `gpupdate /force`) — la solución debe entonces aplicarse a nivel de GPO.
- Alternativamente, eliminar al usuario del grupo privilegiado (y luego cerrar y volver a iniciar sesión) también resuelve el problema.
Verificación
Después de la actualización, el nuevo `update.log` contiene `After checking IsUnpromptedElevation, useService=true` y `update.status` muestra `applied-service`.
Comprobar las transferencias BITS (Servicio de transferencia inteligente en segundo plano)
Firefox utiliza BITS para descargar actualizaciones en segundo plano.
Ejecuta el siguiente comando de 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
}
}
}
-> Qué comprobar
- JobState muestra el estado actual de la transferencia (transfiriendo, suspendido, completado o error).
- ProgressPercent indica el progreso de la descarga.
- RemoteURL muestra la URL utilizada por Firefox para recuperar la actualización.
-> Si la descarga está bloqueada
Si el progreso no avanza o el trabajo falla, verifica que la URL que se muestra en RemoteURL no esté bloqueada por tu red, cortafuegos o proxy.
Para confirmarlo, copia y pega la URL en un navegador y comprueba si la descarga se inicia correctamente.
Listar archivos relacionados con Firefox en C:\ProgramData
Los archivos de actualización de Firefox se descargan y almacenan en la siguiente ubicación.
Ejecuta el siguiente comando de 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}
}
Esto ayuda a verificar si los archivos de actualización se descargaron y a identificar archivos incompletos o atascados.