本文介绍如何对新的或现有的 SMS 管理员控制台进行故障排除,以确定它为何无法连接到站点服务器。
原始 KB 数: 317872
总结
如果使用短信并尝试连接到站点服务器,可能会收到“连接失败”消息。 或者,连接后可能不会显示节点。 此外,类似于以下内容的错误可能会记录在服务器上的AdminUI.log文件中:
错误:可能的 UI 连接错误代码为 -2147023174 [0x800706ba]
错误:可能的 UI 连接错误代码为 -2146959355 [0x80080005]
错误:可能的 UI 连接错误代码为 -2147217394
错误:可能的 UI 连接错误代码为 -2147217389[0x80041013] 未能执行 GetProviderVersion 方法! 函数 GetProviderVersion 返回 ProviderVersion 的空字符串。 Wbem 调用失败:T_WbemSyncEnumToContainer_Core,返回代码:-2147217389 我们无法获取 ProviderVersion。 SiteCode - SiteServerName,提供程序版本:未能设置连接。 错误代码:-2147217389
错误(ConnectServer):可能的 UI 连接错误代码为 -2147024891
错误:可能的 UI 连接错误代码为 -2147024891 [0x80070005]
[994][<日期><时间>]: 错误(CheckForDisconnect2): 服务指针无效。 WMI 连接已删除。 :-2147024891 [0x80070005]
详细信息
如何授予对 SMS 管理员控制台的访问权限
若要访问本地或远程 SMS 管理员控制台,用户必须是 SMS 管理员本地组的成员。 SMS 管理员组在 Root\SMS 命名空间上显式授予“启用帐户”和“远程启用”。 SMS 管理员组通过其 WMI 向其成员提供对 SMS 提供程序的访问权限。 需要访问 SMS 管理员控制台时,将用户添加到 SMS 管理员组,但不必是本地管理员。 如果要使用不同的本地组授予 SMS 管理员控制台的访问权限,还必须向该本地或域本地组授予与 SMS 管理员组相同的 WMI 权限。 若要授予对 SMS 管理员控制台的访问权限,请执行以下步骤:
为包含需要特定访问权限的 SMS 管理员控制台的用户的域创建全局组。
将此全局组或显式域用户帐户添加到本地 SMS 管理员组。
为创建的全局组配置 SMS 权限。
注意
- 若要完成此步骤,你必须是管理员,并且对站点拥有完全权限。
- 如果可以连接到数据库,但如果未枚举节点,请检查向全局组或 SMS 管理员控制台的安全节点中的特定用户授予的 SMS 权限。 例如,确定集合节点、包节点或其他节点是否显示任何内容。
授予的权限取决于希望此全局组的成员执行的功能。 若要授予权限,请在 SMS 管理员控制台中右键单击“安全权限”节点,指向“所有任务”,然后单击“管理 SMS 用户”以启动安全向导。
使用向导添加、删除或修改用户和组的安全设置。
如何排查 SMS 管理员控制台连接问题
如果要测试远程 SMS 管理员控制台,请确保已将最新的 SMS Service Pack 应用到此控制台。 如果未应用 Service Pack,则可能在AdminUI.log文件中记录类似于以下内容的错误:
CLASS_SMS_ContextMethods,METHOD_GetContextHandle! 未能设置连接。 错误代码:-2147217407从 Service Pack 源运行安装程序,以确定 SMS 管理员控制台是否是唯一必须升级的组件。
若要排查 SMS 管理员控制台连接问题,请考虑以下问题:
SMS 站点服务器是否运行Microsoft Windows Server 2003 Service Pack 1 (SP1)?
在 Windows Server 2003 SP1 中,将创建一个名为 Distributed COM Users 的新本地组。 若要解决 Windows Server 2003 Service Pack 1 中的连接问题,请将尝试远程连接到 SMS 管理员控制台的用户添加到分布式 COM 用户本地组。
用户是 SMS 管理员组中成员的全局组的成员,还是在 SMS 管理员组中显式定义用户?
SMS 管理员组是在 SMS 站点安装期间创建的。 如果在成员服务器上安装了站点,SMS 管理员组是本地安全帐户管理器(SAM)中的本地组。 如果站点服务器是域控制器,SMS 管理员组是域中的本地组。 用户必须属于 SMS 管理员组,因为当生成 SMS 站点时,此组将授予对 SMS 和SMS_site代码命名空间的必要权限。
此服务器以前是否已安装短信?
如果服务器以前安装了 SMS,则SMS_ProviderLocation类中可能存在多个站点代码,这些代码位于站点服务器的 SMS 命名空间中。 删除站点服务器上不再存在的任何站点代码。 可以使用 WBEMtest 工具查看SMS_ProverLocation类。
在站点服务器上,确认Dcomcnfg.exe实用工具中定义的属性设置。
若要查看Dcomcnfg.exe实用工具中定义的属性,请单击“默认属性”选项卡,然后确认以下设置:
- 选中了“在此计算机上启用分布式 COM”复选框。
- 默认身份验证级别设置为“连接”。
- 默认模拟级别设置为“标识”。
如果要测试远程 SMS 管理员控制台,请确保已将最新的 SMS Service Pack 应用到此控制台。
从 Service Pack 源运行安装程序,以确定 SMS 管理员控制台是否是唯一必须升级的组件。
考虑这些问题后,请完成以下部分中介绍的故障排除过程。
排查 SMS 命名空间连接问题
确保用户可以连接到 SMS 命名空间和 SMS_'sitecode' 命名空间。 为此,请按照下列步骤进行操作:
- 单击“开始”,单击“运行”,然后键入 wbemtest。
- 单击“连接”,键入 \\siteserver\root\sms,然后单击“登录”。
- 单击 枚举类,单击 递归,然后单击“ 确定”。
- 在 “查询结果 ” 列表中,双击SMS_ProviderLocation。
- 单击“实例”,然后双击包含目标站点代码的行。 例如,SMS_ProviderLocation.SiteCode=“xxx.”
- 在 “属性” 部分中,找到 NamespacePath 行。 可能需要双击此行才能看到整行。
- 将 NamespacePath 值复制到剪贴板。 例如,复制以下值:\\ server_name\root\sms\site_xxx。
如果成功完成此过程,可以连接到站点服务器并枚举 SMS 命名空间。
如何排查服务器连接问题
确定是否可以连接到提供程序所在的服务器。 服务器在“如何排查 SMS 命名空间连接问题”部分中确定的 NamespacePath 值中定义。 通常,此服务器是同一个服务器。
- 关闭可能打开的所有 WBEMtest 窗口。
- 单击“连接”,粘贴在步骤 7 中复制的 NamespacePath,然后单击“登录”。
- 单击 枚举类,单击 递归,然后单击“ 确定”。
- 在 “查询结果 ” 列表中,双击SMS_Site。
如果在执行此过程时收到“拒绝访问”错误消息,这可能是因为以下原因之一:
安全配置向导已在托管 SMS 提供程序的服务器上运行。 但是,安全配置向导无法识别 SMS 提供程序。 如果在安装了 SMS 提供程序的服务器上运行向导,则必须在向导中启用 远程 WMI 服务。 除非启用 远程 WMI,否则站点服务器上的 SMS 管理员控制台和任何其他远程控制台都无法连接到 WMI 中的 SMS 命名空间。 若要在向导中启用远程 WMI,请执行以下操作:
在安全配置向导的“选择管理”和“其他选项”页上选择远程 WMI。
注意
有关如何保护 SMS 站点系统的详细信息,请访问以下Microsoft网站: https://technet.microsoft.com/library/cc179764.aspx
使用的帐户对提供程序的命名空间没有适当的权限。 若要修改或验证权限,请执行以下步骤:
在枚举 SMS 站点的服务器上,单击“开始”,单击“运行”,键入 wmimgmt.msc,然后单击“确定”。
右键单击 WMI 控件,然后单击“ 属性”。
在 “安全 ”选项卡上,展开 “根”,然后单击“ 短信”。
在结果窗格中单击“安全性”以查看权限。
单击“高级”,单击“短信管理员”,然后单击“查看编辑”。
对于 SMS 命名空间,SMS 管理员组必须具有以下权限:
- 启用帐户
- 远程启用
重复步骤 e 以检查 SMS_ xxx 命名空间的 SMS 管理员组。 (xxx 是网站代码的占位符。然后,向用户或组授予 远程启用 权限。 如果用户或组在 SMS 命名空间的安全性中没有适当的 WMI 权限,则可能在AdminUI.log文件中记录以下事件:
其他安全问题
如果满足以下任一条件,请使用本节中所述的故障排除过程:
- 在向相应的帐户授予 WMI 安全性中的“远程启用”权限后,用户仍会拒绝访问控制台。
- 控制台仅部分可用。
验证 Windows 防火墙配置
Windows XP SP2 和 Windows Server 2003 SP1 包括 Windows 防火墙功能。 如果在 启用了防火墙的 Windows XP SP2 或基于 Windows Server 2003 SP1 的计算机上运行 SMS 管理员控制台 ,则必须启用 Unsecapp.exe 程序和 TCP 端口 135 才能通过 Windows 防火墙。 为此,请按照下列步骤进行操作:
单击“开始”,单击“运行”,键入firewall.cpl,然后单击“确定”。
在“常规”选项卡上,单击“打开”以打开防火墙。 单击可清除 “不允许例外 ”复选框。
在“例外”选项卡上,单击“添加程序”。
单击“浏览”,在“文件名”框中键入 %windir%\System32\Wbem\Unsecapp.exe,然后单击“打开”。 如果必须定义范围,请单击“ 更改范围”,然后单击“ 确定”。 单击 “确定” 关闭 “添加程序” 对话框。
在 “程序和服务 ”列表中,单击以选中 Unsecapp.exe 复选框。
单击“ 添加端口”。
在 端口号 框中,键入 135。 选择 TCP,然后在“名称”框中键入异常的名称。 如果必须定义范围,请单击“ 更改范围”,然后单击“ 确定”。 单击“确定”关闭“添加端口”对话框。
在 “程序和服务 ”列表中,单击以选中在步骤 7 中添加的异常的复选框。
单击“确定”。
检查 DCOM 安全设置
警告
除非无法通过将Unsecapp.exe程序和 TCP 端口 135 添加到异常列表来解决此问题,否则请不要进行这些更改。
重要
此部分(或称方法或任务)介绍了修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,按以下步骤操作时请务必谨慎。 作为额外保护措施,请在修改注册表之前先将其备份。 如果之后出现问题,您就可以还原注册表。 有关如何备份和还原注册表的详细信息,请单击以下文章编号以查看Microsoft知识库中的文章: 322756 如何在 Windows 中备份和还原注册表
通过将这些异常添加到 Windows 防火墙,可能无法解决此问题。 你可能必须在客户端计算机的 DCOM 中设置匿名远程权限。 若要在运行 SMS 管理员控制台的基于 Windows XP SP2 的计算机上执行此操作,请执行以下步骤:
单击“开始”,单击“运行”,键入dcomcnfg.exe,然后单击“确定”。
找到控制台根节点,展开 组件服务,展开 计算机,然后单击“ 我的计算机”。
右键单击 “我的电脑”,再单击 “属性”。
在 “我的计算机属性”中 ,单击“COM 安全性 ”选项卡。
在“访问权限”中,单击“编辑限制”。
单击“ 匿名登录”。
在 “匿名登录的权限”中,单击“ 远程访问的允许”设置。
单击“确定”两次。
重新启动计算机。
确定默认 DCOM 权限是否已更改
检查以下注册表子项下的 DefaultAccessPermission 值: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole
这表示默认的 DCOM 权限已更改。 如果此值不存在,则默认 DCOM 权限生效。 若要解决此问题,请删除 DefaultAccessPermission 值。 这将重置所有默认的 DCOM 权限。 这是最后的手段,不能保证纠正问题。
重要
此部分(或称方法或任务)介绍了修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,按以下步骤操作时请务必谨慎。 作为额外保护措施,请在修改注册表之前先将其备份。 如果之后出现问题,您就可以还原注册表。 有关如何备份和还原注册表的详细信息,请单击以下文章编号以查看Microsoft知识库中的文章: 322756 如何在 Windows 中备份和还原注册表
重要
在删除此值之前,请确保已尝试按照本文中的 DCOM 故障排除步骤解决此问题。 此外,备份 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole
注册表子项。
若要删除 DefaultAccessPermission 值,请执行以下步骤:
单击“开始”,再单击“运行”,键入“regedit& ”,然后单击“确定”。
找到并单击以下注册表子项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole
在右窗格中,右键单击 DefaultAccessPermission,然后单击“ 删除”。
在 “确认值删除 ”对话框中,单击“ 是”。
退出注册表编辑器。
从计算机注销,然后重新登录到计算机。
在“每个人”安全组中包含匿名登录安全组
如果前面所述的过程无法解决 SMS 管理员控制台的权限问题,则可能无法执行以下操作:
- 确定哪些资源需要在运行 Windows XP 的计算机上进行匿名访问。
- 修改所有必要资源的权限。在这些情况下,可能需要强制运行 Windows XP 的计算机在“每个人”安全组中包含匿名登录安全组。 为了支持此功能,Windows XP 包括 EveryoneIncludesAnonymous 注册表项。
如果 EveryoneIncludesAnonymous 注册表项设置为REG_DWORD 0x1,则本地安全机构 (LSA) 在匿名用户访问令牌中包含每个人安全组的安全标识符 (SID)。 若要设置 EveryoneIncludesAnonymous 注册表项的值,请使用以下任一方法。
方法 1:使用本地安全设置设置 EveryoneIncludesAnonymous 注册表项
单击“开始”,单击“运行”,键入“控制管理工具”,然后单击“确定”。
双击“本地安全策略”或“域安全策略”(仅限域控制器)。
双击“本地策略”,然后单击“安全选项”。
右键单击 “网络访问:让每个人”权限应用于匿名用户,然后单击“ 属性”。
若要使匿名用户成为“每个人”安全组的成员,请单击“ 已启用”。 若要防止将每个人安全组 SID 包含在匿名用户的访问令牌中,请单击“ 已禁用”。 这是 Windows XP 中的默认设置。
方法 2:使用注册表编辑器设置 EveryoneIncludesAnonymous 注册表值
重要
此部分(或称方法或任务)介绍了修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,按以下步骤操作时请务必谨慎。 作为额外保护措施,请在修改注册表之前先将其备份。 如果之后出现问题,您就可以还原注册表。 有关如何备份和还原注册表的详细信息,请单击以下文章编号以查看Microsoft知识库中的文章: 322756 如何在 Windows 中备份和还原注册表
单击“开始”,再单击“运行”,键入“regedit& ”,然后单击“确定”。
找到并单击以下注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
右键单击 EveryoneIncludesAnonymous,然后单击“ 修改”。
若要使匿名用户成为“每个人”安全组的成员,请在“值”数据框中键入 1。 若要防止在匿名用户的访问令牌中包含 Everyone 安全组 SID,请在“值”数据框中键入 0。 默认情况下,在 Windows XP 中,EveryoneIncludesAnonymous 值设置为 0。
退出注册表编辑器。
重新启动计算机。
注意
此更改可能会影响以下基于 Windows 的技术:
- Com
- Dcom
- IIS
- 消息队列
- 经常使用匿名身份验证的任何其他技术。
其他连接测试
在站点服务器上启动 WMI 控件。 如果此服务器不同,请不要在提供程序服务器上启动 WMI 控件。 单击“日志记录”选项卡,然后将日志记录级别设置为“详细”,以将日志记录 增加到 Windows_folder\System32\Wbem\Logs\Wbemcore.log 文件。
在站点服务器上分析此日志。 可以看到生成的所有 WMI 流量。 查找在 SMS 管理员控制台尝试连接时发生的SMS_Providerlocation的查询。 如果存在此查询,可以确认控制台和站点服务器之间存在通信。 测试站点服务器与请求的 SMS 管理员控制台的连接。 在以下方案中,连接可能不存在:
远程过程调用 (RPC) 服务器不可用。
存在 DNS 名称解析问题。 如果名称解析未正确完成,“连接失败”错误消息也可能发生。 若要确定是否遇到名称解析问题,请使用 WBEMtest 工具,并尝试使用 IP 地址连接到站点服务器。 例如,使用 \111.222.333.444\root\default 作为地址。 如果使用 IP 地址时可以连接,但在使用站点服务器的 netBIOS 名称时无法连接,则遇到名称解析问题。 若要解决此问题,请确认 WINS 或 DNS 配置。
在远程 SMS 管理员控制台中展开节点时,SMS 站点服务器会建立与安装了主机的计算机的 DCOM 连接。 如果安装了主机的计算机存在无效的 DNS 记录,SMS 站点服务器可能会尝试连接到错误的 IP 地址。 发生这种情况时,控制台节点将无法展开,控制台计算机将在AdminUI.log中记录“WMI 连接已删除”错误。 若要解决此问题,请 nslookup <console_computer_name>
运行以下命令,确保名称解析为正确的 IP 地址。 如果控制台计算机存在无效的 DNS 注册,请删除无效的 DNS 注册。 此外,确定如何创建无效的 DNS 注册,以防止其再次发生。 例如,主机计算机可能已注册 VPN 地址,但 VPN 地址在 VPN 断开连接时未从 DNS 中删除。 解决 DNS 问题后,在 SMS 2003 站点服务器上的命令提示符处运行以下命令: ipconfig /flushdns
如果无法使用 DNS 解析基于 Windows XP SP2 的计算机的完全限定域名,请在 SMS 2003 站点服务器上的主机文件中创建一个条目,将基于 Windows XP SP2 的计算机的完全限定域名映射到其 IP 地址。
MICROSOFT ISA 服务器或检查点 VPN 软件的已知问题
如果无法通过 Windows 2003 SP1 计算机的远程连接扩展远程主机上的某些节点,则某些防火墙和 VPN 产品拒绝网络请求时,基于远程过程调用的操作可能会失败。 在将 Windows Server 2003 Service Pack 1(SP1)应用到基于 Windows Server 2003 的计算机或 OEM 或零售安装媒体(包括 SP1 更新)的计算机上,这些网络请求可能会失败。 以下产品可能会拒绝这些网络请求:
- 检查点软件技术的防火墙或虚拟专用网络 (VPN) 产品
- Microsoft Internet 安全性和加速 (ISA) 服务器
如果满足以下条件,也可能会发生此问题:
- 来自客户端的 RPC 连接通过 TCP 端口 135 启用。
- 中央站点服务器的响应超过端口 1024 的临时端口,防火墙正在阻止该端口范围。 若要解决此问题,请将客户端和服务器配置为限制 RPC 连接使用的端口范围,然后在防火墙上启用该范围。 为此,请使用Microsoft知识库的以下文章中所述的方法: 154596 如何配置 RPC 动态端口分配以使用防火墙
参考
有关如何帮助保护远程 WMI 连接的详细信息,请访问以下Microsoft网站: 维护 WMI 安全性。