Gestionar las actualizaciones de Firefox

Firefox Enterprise Firefox Enterprise Actualitzat per darrera vegada el: 1 week ago
This page does not exist in català. You have been redirected to the Español version instead. If you would like to localize it into català, click here. You can also see the English version of this page.

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

Recomendamos mantener las actualizaciones automáticas habilitadas para todas las implementaciones de Firefox para garantizar que se apliquen los últimos parches de seguridad y que todas las funciones estén disponibles, pero es posible que tu entorno específico impida las actualizaciones automáticas.

Tanto Firefox Rapid Release como Firefox Extended Support Release se pueden utilizar en tus entornos empresariales. Si te preocupan las actualizaciones grandes y frecuentes, te recomendamos que consultes Elegir un canal de actualización de Firefox para obtener más información sobre Firefox Extended Support Release.

Frecuencia de las actualizaciones mayores Alcance de las actualizaciones mayores Frecuencia de las actualizaciones menores Alcance de las actualizaciones menores
ESR Cada año

Ver calendario

Nuevas funciones entregadas y errores corregidos en los últimos 12 meses. Cada 2 semanas o cuando sea necesario Corrección de errores críticos de estabilidad o seguridad
RR Cada dos semanas

Ver calendario

Nuevas funciones entregadas y errores corregidos en las últimas 2 semanas Cuando sea necesario entre las versiones mayores Corrección de errores críticos de estabilidad o seguridad


Deshabilitar las actualizaciones de Firefox

Las actualizaciones automáticas están habilitadas de forma predeterminada, pero puedes deshabilitarlas usando la política DisableAppUpdate.

Cuando las actualizaciones están habilitadas, se pueden instalar silenciosamente sin la aprobación del usuario habilitando la política AppAutoUpdate.

Solución de problemas con 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 esperaba, es posible que las actualizaciones de Firefox estén 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 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 ejecución. 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

Vuelve a comprobar 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 usando el instalador de Firefox:

  1. Descarga el instalador de Firefox que coincida con tu implementación (ESR o versión estándar).
  2. Ejecuta el instalador como Administrador.
  3. Asegúrate de que Instalar el Servicio de Mantenimiento de Mozilla esté seleccionado.

Después de 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 activa 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 usar 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 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á establecido 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á establecido en 0 (opción de seguridad Control de cuentas de usuario: Cambiar al escritorio seguro al solicitar 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: 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 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).

Luego, 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 después de un fallo)
applied-service Actualización aplicada correctamente 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 administradores
      reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 5 /f
    • Rehabilitar 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 aparecerá 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 (comprueba con gpupdate /force) — la solución debe aplicarse entonces a nivel de GPO.
  • Alternativamente, eliminar al usuario del grupo con privilegios (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, firewall 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 se descargaron los archivos de actualización e identificar archivos incompletos o detenidos.

These fine people helped write this article:

Illustration of hands

Volunteer

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

Learn More