Solucionar problemas con las actualizaciones de Firefox en Windows

Firefox Enterprise Firefox Enterprise Creada:
This is a machine-generated translation of the English article. It has not been reviewed by a human, and may contain errors. If you would like to revise this content, you can start here.

Este artículo está destinado a administradores IT que desean configurar Firefox en los equipos de su organización.

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.

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 (o Stopped, pero puede iniciarse)
  • StartType está configurado como Automatic o Manual
  • 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:

  1. Descarga el instalador de Firefox que coincida con tu despliegue (ESR o versión estándar).
  2. Ejecuta el instalador como Administrador.
  3. 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:

  1. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\ConsentPromptBehaviorAdmin está configurado en 0 (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 es 5)
  2. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\PromptOnSecureDesktop está configurado en 0 (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 es 1)
  3. 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

  1. Cierra Firefox.
  2. 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
  3. Inicia Firefox, ve a Ayuda > Acerca de Firefox y espera a que aparezca Reiniciar para actualizar Firefox.
  4. 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.

Artículos relacionados

These fine people helped write this article:

Illustration of hands

Voluntario

Grow and share your expertise with others. Answer questions and improve our knowledge base.

Learn More