排查 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 服务器无法对计算机 <名称>执行指定的操作。 信号灯超时期限已过期。

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

可能的解决方案

在发现期间,指定既具有域管理员权限又是 Operations Manager 管理员组成员的帐户。

此外,如果 LDAP 查询超时或无法解析 Active Directory 中的潜在代理,可以通过 Operations Manager 命令 Shell 执行发现。

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

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

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

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

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

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

  • 错误说明:未知错误0xC000296E

  • 错误说明:未知错误0xC0002976

  • 错误代码:80070643
    错误说明:安装过程中出现严重错误。

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

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

可能的解决方案

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

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

  • 如果使用域帐户从管理服务器推送代理时代理安装失败,请使用 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
  • SMB over IP 端口号:445 协议:TCP
  • MOM 通道端口号:5723 协议:TCP/UDP

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

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

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

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

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

通过 Operations Manager 外壳 排查代理部署问题

由于大型或复杂的 Active Directory 环境,自动发现潜在代理可能会超时。 其他情况可能要求使用 LDAP 查询运行自动发现,该查询的限制比 UI 中提供的功能更有限。 在这些情况下,可以通过Operations Manager 外壳自动发现计算机和远程安装 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 配置管理服务不会将手动安装的计算机指定为可远程管理,并且不会在操作控制台中显示升级这些计算机的选项。

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

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