在部署 Windows XP SP2 后,SMS 2003 和 Configuration Manager 2007 中的高级客户端不再有效

本文可帮助你修复以下问题:如果将组策略对象(GPO)配置为将 SMS 代理主机服务的启动模式设置为 “自动”,高级客户端将无法再工作。

原始产品版本: System Management Server 2003、System Center Configuration Manager 2007
原始 KB 数: 919592

重要

本文包含的信息向你介绍了如何在计算机上降低安全设置或关闭安全功能。 您可以通过这些更改来解决特定的问题。 在实施这些更改之前,建议您对在特定环境中实施此解决方法可能带来的风险进行评估。 如果实现此解决方法,请采取任何适当的其他步骤来帮助保护系统。

现象

将 Microsoft Windows XP Service Pack 2(SP2)部署到在 Microsoft Systems Management Server (SMS) 2003 或 System Center Configuration Manager 2007 中运行高级客户端的客户端计算机后,会出现以下症状:

  • 高级客户端不再在客户端计算机上正常运行。 在这种情况下,高级客户端不再检索短信策略。 如果尝试在客户端计算机上的高级客户端中启动操作,将收到以下错误消息:

    无法启动该操作。

  • 查看 SMS 日志文件时,将显示类似于以下信息的信息:

    在客户端计算机上的 %WINDIR%\System32\CCM\Logs\CcmExec.log 文件中

    调用 CoResumeClassObjects.CcmExec<日期><时间>3304 时出错(0x0CE8)
    第 1 阶段初始化失败(0x80004015)。CcmExec<日期><时间>3304 (0x0CE8)
    第 1 阶段初始化失败(0x80004015)。CcmExec<日期><时间>3304 (0x0CE8)

    在客户端计算机上的 %WINDIR%\System32\CCM\Logs\execmgr.log 文件中

    命令行 = “\\<server>\<share>$\<folder>\update\update.exe” /q /f /forcerestart,
    工作目录 = \\<server>\<share>$\<folder>\execmgr<date><time>3292 (0x0CDC)
    为传递的命令行execmgr<日期><时间>3292 (0x0CDC) 创建进程
    引发事件:
    [SMS_CodePage(437),SMS_LocaleID(1033)]
    SoftDistProgramStartedEvent 的实例
    { }
    AdvertisementId = “<ID>”;
    ClientID = “GUID:<GUID>”;
    CommandLine = “\”\\\<server>\\<share>$\\<folder>\\update\\update.exe\“ /q /f /forcerestart”;
    DateTime = “<日期和时间>.572000+000";
    MachineName = “<computername>”;
    PackageName = “<packagename>”;
    ProcessID = 228;
    ProgramName = “从 XP 或 XPSP1 自动升级”;
    SiteCode = “<siteCode>”;
    ThreadID = 3292;
    UserContext = “NT AUTHORITY\\SYSTEM”;
    WorkingDirectory = “\\\<server>\\<share>$\\<folder>\\”;
    };
    execmgr<日期><时间>3292 (0x0CDC)
    为广告: ID<、包:><package>、程序:从 XP 或 XPSP1 自动升级程序 execmgr 于<日期><时间>3292 (0x0CDC)引发程序启动事件。
    用户已下线.execmgr<日期><时间>2656(0x0A60)
    用户注销时,自动升级程序从 XP 或 XPSP1 开始运行execmgr<日期><时间>2656(0x0A60)
    已触发执行管理器计时器.execmgr<日期><时间>1348 (0x0544)
    计划策略已更新,适用于项目:MS04-028 - XP 的 JPEG 更新,软件包:<包>,广告:<ID>execmgr<日期><时间>1408(0x0580)
    程序退出代码 3010execmgr<日期><时间>2904 (0x0B58)
    查找 MIF 文件以获取程序 statusexecmgr<日期><时间>2904 (0x0B58)
    Package:<package>、Program:从 XP 或 XPSP1 自动升级的脚本成功,退出代码 3010execmgr<日期><时间>2904 (0x0B58)
    引发事件:
    [SMS_CodePage(437),SMS_LocaleID(1033)]
    SoftDistProgramPrelimSuccessEvent 的实例
    { }
    AdvertisementId = “<ID>”;
    ClientID = “GUID:<GUID>”;
    DateTime = “<date><time.781000>+000”;
    ExitCode = “3010”;
    MachineName = “<computername>”;
    PackageName = “<package>”;
    ProcessID = 228;
    ProgramName = “从 XP 或 XPSP1 自动升级”;
    SiteCode = “<siteCode>”;
    ThreadID = 2904;
    };
    execmgr<日期><时间>2904 (0x0B58)
    为广告:< ID>,包:<package>,程序:自动从 XP 或 XPSP1 升级<日期><时间>2904 (0x0B58) 引发程序初步成功事件
    程序“自动从 XP 或 XPSP1 升级”的执行已完成。 退出代码为 3010,执行状态为 SuccessRebootRequiredexecmgr<日期><时间>2904 (0x0B58)
    重新启动计算机 - InitiateSystemShutdownEx 失败 1115execmgr<日期><时间>2904 (0x0B58)

    在 SMS 服务器的 驱动器: \SMS_CCM\Logs\SMSCliUi.log 文件中

    当前分配的网站: <siteCode>smscliui<日期><时间>3320 (0x0CF8)
    无法获取 CacheInfo。 错误:0X80070005smscliui<日期><时间>3320 (0x0CF8)
    SMS站点代码尚未更改。smscliui<日期><时间>3320(0x0CF8)
    当前分配的网站: <siteCode>smscliui<日期><时间>3660 (0x0E4C)
    无法获取 CacheInfo。 错误:0X80070005smscliui<日期><时间>3660(0x0E4C)
    未能实例化 CLSID_CCMClientAction 类,错误:0x80070005 smscliui<日期><时间>3660(0x0E4C)

原因

如果将 GPO 配置为将 SMS 代理主机服务(CcmExec.exe)启动模式设置为 “自动”,则会出现此问题。

注意

默认情况下,不会使用组策略配置 SMS 代理主机服务。

解决方法 1:不要在组策略中定义 SMS 代理主机服务

修改 GPO 以不再定义 SMS 代理主机服务的启动模式。 为此,请按照下列步骤进行操作:

  1. 登录到域控制器,然后启动Active Directory 用户和计算机工具。 为此,请单击“开始>运行”,在dsa.msc“打开”框中键入,然后单击“确定”。

  2. 右键单击在其中创建了 GPO 的容器,然后选择“ 属性”。 例如,右键单击域容器或右键单击组织单位,然后选择“ 属性”。

  3. 选择 “组策略 ”选项卡,选择 在其中定义 SMS 代理主机 服务的 GPO,然后选择“ 编辑”。

  4. 在组策略对象编辑器工具中,展开 “计算机配置>Windows 设置>安全设置”,然后选择“ 系统服务”。

  5. 在右窗格中,双击 SMS 代理主机,单击以清除“ 定义此策略设置 ”复选框,然后单击“ 确定”。

  6. 退出组策略对象编辑器工具,然后单击“ 确定”。

  7. 重启基于 Windows XP SP2 的客户端计算机。

解决方法 2:将 NetworkService 帐户完全控制权限分配给 SMS 代理主机对象

警告

此解决方法可能会使计算机或网络更容易受到恶意用户或恶意软件(如病毒)的攻击。 我们不建议使用此解决方法,但提供此信息,以便你可以自行实施此解决方法。 如果使用此解决方法,需自行承担风险。

如果将 NetworkService 帐户完全控制权限分配给组策略中的 SMS 代理主机对象,则可以保留 SMS 代理主机服务自动启动组策略。 为此,请按照下列步骤进行操作:

  1. 登录到域控制器,然后启动Active Directory 用户和计算机工具。 为此,请单击“开始>运行”,在dsa.msc“打开”框中键入,然后单击“确定”。

  2. 右键单击在其中创建了 GPO 的容器,然后选择“ 属性”。 例如,右键单击域容器或右键单击组织单位,然后选择“ 属性”。

  3. 选择 “组策略 ”选项卡,选择 在其中定义 SMS 代理主机 服务的 GPO,然后选择“ 编辑”。

  4. 在组策略对象编辑器工具中,展开 “计算机配置>Windows 设置>安全设置”,然后选择“ 系统服务”。

  5. 在右窗格中,双击 SMS 代理主机,然后选择“ 编辑安全性”。

  6. 在“ SMS 代理主机安全性 ”对话框中,选择“ 添加”。

  7. “输入对象名称以选中 ”框中键入 NetworkService,单击“ 检查名称”,然后单击“ 确定”。

  8. “NetworkService 的权限”框中,选中“允许”列中的“完全控制”复选框,然后单击“确定”。

  9. “SMS 代理主机属性 ”对话框中,单击“ 确定”。

  10. 退出组策略对象编辑器工具,然后单击“ 确定”。