解决 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 服务器无法在计算机上执行指定操作 <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
  • 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部署问题

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

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

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

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

示例:

  • 错误消息:ConvertStringSecurityDescriptorToSecurityDescriptor 失败:87

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

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

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

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

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

代理手动安装疑难解答

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

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

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

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

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