我们建议长期启用所有 Firefox 部署的自动更新来确保已安装了最新安全补丁且所有功能正常工作,但您的特定环境可能会阻止自动更新。
Firefox Rapid Release 和 Firefox Extended Support Release 均可用于您的企业环境。如果您担心频繁的大型更新,我们建议您查看 如何选择Firefox升级渠道 来了解有关 Firefox Extended Support Release 的更多信息。
| 重大更新频率 | 重大更新范围 | 小型更新频率 | 小型更新范围 | |
|---|---|---|---|---|
| ESR | 每年 | 增加新功能并修复12个月之内的问题 | 每四周或必要时 | 重要的稳定性改进及安全问题修复 |
| RR | 每四周 | 增加新功能并修复4周内的问题 | 在重大更新之间不定期发布 | 重要的稳定性改进及安全问题修复 |
禁用 Firefox 更新
自动更新是默认启用的,但您可以通过 DisableAppUpdate(禁用应用更新)策略 手动禁用。
启用更新后,可以通过启用 AppAutoUpdate 策略 来静默安装更新,无需用户批准。
排查 Firefox 更新问题
如果工作站没有收到 Firefox 更新,以下 PowerShell 检查可以帮助确定根本原因。
检查本地组策略 (GPO) 注册表项
运行以下命令:
Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Mozilla\Firefox" |
Select-Object DisableAppUpdate, AppAutoUpdate
预期值:
| 注册表值 | 预期值 |
|---|---|
DisableAppUpdate
| 0 |
AppAutoUpdate
| 1 |
如果这些值未按预期设置,则 Firefox 更新可能已被本地或域组策略禁用。
检查已安装的 Firefox 版本
运行以下 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
}
将安装的版本与 Mozilla 网站上提供的最新 Firefox ESR 版本进行比较。
检查计划任务
Firefox 依赖后台计划任务来下载和应用更新。
运行以下 PowerShell 命令:
Get-ScheduledTask |
Where-Object { $_.TaskName -like "*Firefox Background Update*" } |
ForEach-Object { Get-ScheduledTaskInfo $_ }
-> 确保:
- 任务存在
- 任务已启用
- 任务成功运行且无错误
检查 Mozilla Maintenance Service
在 Windows 上,Firefox 更新可能需要安装并运行 Mozilla Maintenance Service。该服务允许 Firefox 在不需要管理员权限的情况下应用更新。
检查服务是否存在及其状态
运行以下 PowerShell 命令:
Get-Service -Name MozillaMaintenance -ErrorAction SilentlyContinue |
Select-Object Name, DisplayName, Status, StartType
-> 预期行为:
- 服务存在
- 状态为
Running(或Stopped,但能够启动) -
StartType设置为Automatic或Manual - 如果该服务缺失,Firefox 可能无法自动应用更新。
手动启动服务(如果需要)
如果服务存在但未运行,请尝试启动它。运行以下 PowerShell 命令:
Start-Service -Name MozillaMaintenance
再次检查服务是否无错误地启动。
重新安装 Mozilla Maintenance Service
如果服务缺失或损坏,可以使用 Firefox 安装程序重新安装:
- 下载与您的部署相匹配的 Firefox 安装程序(ESR 或标准版)。
- 以管理员身份运行安装程序。
- 确保选中 Install Mozilla Maintenance Service。
安装后,重新检查服务状态。
检查 BITS 传输(后台智能传输服务)
Firefox 使用 BITS 在后台下载更新。
运行以下 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
}
}
}
-> 检查内容
- JobState 显示当前传输状态(传输中、已暂停、已完成或错误)。
- ProgressPercent 表示下载进度。
- RemoteURL 显示 Firefox 用于检索更新的 URL。
-> 如果下载被阻止
如果进度没有推进或作业失败,请验证 RemoteURL 中显示的 URL 没有被您的网络、防火墙或代理阻止。
要进行确认,请将 URL 复制并粘贴到浏览器中,检查下载是否成功开始。
列出 C:\ProgramData 中与 Firefox 相关的文件
Firefox 更新文件会下载并存储在以下位置。
运行以下 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}
}
这有助于验证更新文件是否已下载,并识别不完整或停滞的文件。