Operations Manager 中的客户端代理安装问题疑难解答

本指南可帮助你解决无法安装 System Center 2012 Operations Manager (OpsMgr 2012 和 OpsMgr 2012 R2) 的客户端代理的问题。

原始产品版本:   System Center 2012 Operations Manager,System Center 2012 R2 Operations Manager
原始 KB 编号:   10147

第一步是验证潜在客户端计算机是否满足受支持的硬件和软件配置。 以下文章列出了 System Center 2012 Operations Manager 客户端的要求:

系统要求 -System Center 2012 - Operations Manager

如果目标客户端是 Unix/Linux 计算机,请验证分发和版本是否受支持。 以下文章列出了受支持的 Unix/Linux 版本:

支持的 UNIX 和 Linux 操作系统版本

通过发现向导解决代理部署问题

如果通过 Operations Manager 控制台中的发现部署代理,则代理将安装在发现向导中指定的管理服务器或网关服务器中,以管理代理。 操作控制台打开时连接到的服务器不是该服务器。 因此,应从运行向导时指定的管理服务器或网关执行任何测试。 或者,应在向导期间指定不同的管理服务器或网关,以查看是否发生了相同的错误。

该向导不显示要安装的潜在代理的列表

在这种情况下,最可能原因是帐户访问 Active Directory 时遇到问题。 在初始发现期间向导中指定的凭据必须有权搜索 Active Directory 中的潜在代理。

典型错误包括:

  • 错误代码:800706BA
    错误描述:RPC 服务器不可用。

  • 错误代码:80070079
    MOM Server 无法在计算机上执行指定的操作 <name> 。 信号灯超时时段已过期。

  • 错误代码:800706433
    远程计算机的代理管理操作代理安装失败 <name>

可能的解决方法

在发现过程中,指定同时具有域管理员权限且是 Operations Manager Admins 组的成员的帐户。

此外,如果 LDAP 查询时间过长或无法解析 Active Directory 中的潜在代理,则可通过 Operations Manager 命令行管理程序 执行发现

初始发现运行后,目标计算机不在潜在代理列表中

在这种情况下,计算机可能已经在数据库中标识为管理组的一部分。 或者,计算机列在操作控制台 中的" 挂起操作"下。

如果目标计算机在操作控制台中的"管理挂起操作"下列出,则必须先批准或拒绝现有操作,然后才能执行 > 新操作。 如果现有安装设置足够,请从控制台批准挂起的安装。 否则,请拒绝挂起的操作,然后重新运行发现向导。

尝试安装代理时发现向导遇到错误

下面列出了最常见的错误:

  • 操作:代理安装
    错误代码:800706D9

  • 错误描述:未知0xC000296E

  • 错误描述:未知0xC0002976

  • 错误代码:80070643
    错误描述:安装过程中出现致命错误。

这些错误可能是由以下原因之一导致的:

  • 以前指定在发现向导中执行代理安装的帐户没有连接到目标计算机和安装 Windows 服务的权限。 这需要本地管理员权限,因为需要写入注册表。
  • 对管理服务器计算机帐户或用于代理推送的帐户的组策略限制阻止成功安装。 例如,组策略对象阻止帐户访问目标计算机上 Windows 文件夹、注册表、WMI 或管理共享。
  • Windows 防火墙阻止管理服务器和目标计算机之间的端口。
  • 目标计算机上所需的服务未运行。

可能的解决方法

  • 如果向导中指定的凭据没有本地管理员权限,则将此帐户添加到目标计算机上本地 Administrators 安全组中。 或使用已经是该组成员的帐户。

  • 阻止目标计算机或执行安装的用户帐户的组策略继承。

  • 如果使用域帐户从管理服务器推送代理时代理安装失败,请使用 Windows 管理工具来确定潜在问题。

    使用有关凭据登录到管理服务器,并尝试以下任务。 如果帐户没有登录到管理服务器的权限,可以在从命令提示符测试的凭据下运行工具。

    • 执行 runas /user:<UserAccountName> "compmgmt.msc" 命令。 选择 " > 操作连接到另一台计算机"。 连接后,尝试打开事件查看器并浏览任何事件日志。

    • 执行 runas /user:<UserAccountName> "services.msc" 命令。 选择 " > 操作连接到另一台计算机"。 连接后,尝试在目标计算机上启动或停止打印 后台 处理程序或其他任何服务。

    • 执行 runas /user:<UserAccountName> "regedt32.exe" 命令。 选择 " > 文件连接网络注册表"。 连接后,尝试在远程计算机上打开 HKLM。

    • 执行 runas /user:<UserAccountName> "Explorer.exe" 命令。 在 \\admin$ 地址栏中键入。

如果其中任一任务失败,请使用在目标计算机上具有域管理员或本地管理员权限 (帐户) 帐户。 此外,尝试从成员服务器或工作站执行相同的任务,以查看任务是否从多台计算机失败。

备注

无法连接到共享 admin$ 可能会阻止管理服务器将安装程序文件复制到目标。 无法连接到目标计算机的 Windows 注册表可能会导致运行状况服务未正确安装。 无法连接到服务控制管理器可能会阻止安装程序启动服务。

以下端口必须在管理服务器和目标计算机之间打开:

  • RPC 终结点映射器端口号:135 协议:TCP/UDP
  • NetBIOS 名称服务端口号:137 协议:TCP/UDP
  • NetBIOS 会话服务端口号:139 协议:TCP/UDP
  • 通过 IP 端口号的 SMB:445 协议:TCP
  • MOM 通道端口号:5723 协议:TCP/UDP

目标计算机上必须启用并运行以下服务:

  • Netlogon
  • 远程注册表
  • Windows Installer
  • 自动更新

以下文章提供有关使用管理服务器中的发现部署 Operations Manager 代理的更多背景知识:

错误代码 800706BA - RPC 服务器不可用

若要修复此错误,请参阅"检查网络问题"。

通过 Operations Manager Shell 解决代理部署问题

自动发现潜在代理可能会由于大型或复杂的 Active Directory 环境而到期。 其他情况可能需要使用比 UI 中可用查询更有限的 LDAP 查询运行自动发现。 在这些情况下,可通过 Operations Manager Shell 自动发现计算机和远程安装 Operations Manager 代理。

例如,以下命令定义 LDAP 查询并传递它, New-WindowsDiscoveryConfiguration 从而创建基于 LDAP 的 WindowsDiscoveryConfiguration:

$query = New-LdapQueryDiscoveryCriteria -LdapQuery: "(sAMAccountType=805306369)(name=srv1.contoso.com*)" -Domain:"contoso.com"$discoConfig = New-WindowsDiscoveryConfiguration -LdapQueryDiscoveryCriteria:$query

另一个示例是,以下命令定义将发现特定计算机或计算机的基于名称的 WindowsDiscoveryConfiguration:

$discoConfig = New-WindowsDiscoveryConfiguration -ComputerName: "srv1.contoso.com", "srv2.contoso.com"

以下命令指示发现模块使用特定凭据、验证每个发现的 Windows 计算机,以及将发现的对象的类型限制到 Windows 服务器。 参数 ComputerType 可以是工作站、服务器或两者。 PerformVerification该开关用于指示发现以验证是否仅返回可用计算机。

# Prompt for credentials used to perform the discovery
$creds = Get-Credential

# Define a WindowsDiscoveryConfiguration
$discoConfig = New-WindowsDiscoveryConfiguration –ComputerName: "srv3.contoso.com", "srv4.contoso.com" –PerformVerification: $true –ActionAccount:$creds -ComputerType: "Server"

# Select the management server used to run the discovery
$managementServer = Get-ManagementServer –Root: $true

# Start the discovery process
$discoResult = Start-Discovery –ManagementServer: $managementServer –WindowsDiscoveryConfiguration: $discoConfig

# Check if the discovery process discovered the specified computers
$discoResult.CustomMonitoringObjects

# Last but not least, install agents on the discovered computers
Install-SCOMAgent –ManagementServer: $managementServer –AgentManagedComputer: $discoResult.CustomMonitoringObjects

通过详细 Windows Installer 日志记录解决代理部署问题

如果远程计算机上代理安装失败,可以在以下默认位置的管理服务器上创建详细的 Windows Installer 日志:

C:\Program Files\System Center Operations Manager\AgentManagement\AgentLogs

日志可用于确定是否遇到特定错误,并可用于进一步解决目标计算机上 Operations Manager 代理的安装问题。

在日志中查找字符串为"返回值 3" 的第一个条目。 前面的几行通常指示 Windows Installer 遇到的错误。 格式通常采用函数、错误描述或错误返回代码的形式,并可以指示权限问题、缺少的文件或其他需要更改的设置。

示例:

  • 错误消息:ConvertStringSecurityDescriptorToSecurityDescriptor 失败:87

    可能的原因:安装帐户对目标计算机上的安全日志没有权限。

  • 错误消息:ModifyEventLogAccessForNetworkService () :无法授予对 SecurityLog 的读取访问权限:0x00000057

    可能的原因:安装帐户对目标计算机上的安全日志没有权限。

  • 错误消息:无法打开数据库文件。 系统错误 -2147024629

    可能的原因:安装帐户对系统 TEMP 文件夹没有权限。

代理的手动安装疑难解答

当 Operations Manager 客户端代理无法通过发现向导部署到远程计算机时,需要手动安装代理。 这可以通过命令行使用MomAgent.msi 文件执行

以下参考介绍了可用于执行手动安装的各种开关和配置选项:

如果通过手动安装部署代理,则需要手动部署将来的 Service Pack 更新或累积更新。 System Center Configuration Management Service 不会将手动安装的计算机指定为可远程管理,并且升级这些计算机的选项不会在操作控制台中显示。

手动安装代理期间的其他关键注意事项:

  • 如果安装由域或本地用户执行,则该帐户必须是 Windows Vista 或更高版本中本地 Administrators 安全组的成员。
  • 如果通过 Configuration Manager 部署代理,则默认情况下,Configuration Manager 代理服务帐户需要作为 LocalSystem (运行) 或在本地管理员的上下文中运行。