You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复Windows服务器上Facter无法获取'os'等Fact的报错?

Facter执行报错的原因与修复方案

问题描述

在Windows服务器上执行facter命令时突发以下报错,两周前该命令运行正常,目前已导致部分Ruby脚本执行失败:

报错信息

[stdout][0;36mDebug: Loading facts from C:/ProgramData/.../facter/windows_version.rb[0m
[stderr]Could not retrieve fact='os', resolution='<anonymous>': failed to parse display name of moniker `winmgmts:{impersonationLevel=impersonate}!//./root/cimv2'
[stderr] HRESULT error code:0x80010114
[stderr] The requested object does not exist.
[stderr]Could not retrieve fact='os', resolution='<anonymous>': failed to parse display name of moniker `winmgmts:{impersonationLevel=impersonate}!//./root/cimv2'
[stderr] HRESULT error code:0x80010114
[stderr] The requested object does not exist.
[stderr]Could not retrieve fact='os', resolution='<anonymous>': failed to parse display name of moniker `winmgmts:{impersonationLevel=impersonate}!//./root/cimv2'
[stderr] HRESULT error code:0x80010114
[stderr] The requested object does not exist.
[stderr]Could not retrieve fact='virtual', resolution='<anonymous>': failed to parse display name of moniker `winmgmts:{impersonationLevel=impersonate}!//./root/cimv2'
[stderr] HRESULT error code:0x80010108

原因分析

  • WMI服务异常或损坏:Facter依赖WMI(Windows Management Instrumentation)获取系统信息,报错中的winmgmts是WMI的访问标识,HRESULT 0x80010114和0x80010108均指向WMI服务故障,可能是服务停止、WMI存储库损坏,或是系统更新、第三方软件修改了WMI配置。
  • 权限问题:执行facter的用户缺少访问WMI命名空间root/cimv2的权限,可能是近期权限策略变更导致。
  • Facter组件损坏:Facter的Windows相关fact脚本(如windows_version.rb)损坏,或Facter本身的依赖库出现问题。

修复步骤

1. 重启WMI相关服务

  • 打开服务(运行services.msc),找到以下服务:
    • Windows Management Instrumentation
    • WMI Performance Adapter
    • Remote Procedure Call (RPC)
  • 依次停止这些服务,再重新启动。

2. 重建WMI存储库

  • 以管理员身份打开命令提示符(CMD),执行以下命令:
    net stop winmgmt
    cd %systemroot%\system32\wbem
    ren repository repository.old
    net start winmgmt
    winmgmt /resetrepository
    
  • 执行完成后重启服务器,再测试facter命令。

3. 检查并修复WMI权限

  • 打开WMI控制(运行wmimgmt.msc),右键点击WMI控制(本地) → 属性。
  • 切换到安全选项卡,展开Root → cimv2,点击安全按钮。
  • 确保执行facter的用户拥有读取权限,若没有则添加并设置对应权限。

4. 重新安装或修复Facter

  • 若使用安装包部署的Facter,卸载当前版本后从官方渠道下载对应版本重新安装。
  • 若使用Ruby gem安装的Facter,执行以下命令重新安装:
    gem uninstall facter
    gem install facter
    

5. 排查系统更新与第三方软件

  • 查看近期是否安装了Windows更新或第三方管理软件,若有则尝试卸载更新或软件,验证问题是否解决。

内容的提问来源于stack exchange,提问作者Siddhesh Kulkarni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 01:40:34