部署 Windows XP SP2 后,SMS 2003 和 Configuration Manager 2007 中的高级客户端将不再运行

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

原始产品版本:   Systems 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 策略。 如果您尝试在客户端计算机上的高级客户端中启动操作,您将收到以下错误消息:

    无法启动操作。

  • 当您查看 SMS 日志文件时,会显示类似于以下内容的信息:

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

    调用 CoResumeClassObjects <date> <time> 3304 (0x0CE8) 时出错
    第1阶段初始化失败 (0x80004015) 。<date> <time> (0x0CE8) 的 CcmExec 3304
    第1阶段初始化失败 (0x80004015) 。<date> <time> (0x0CE8) 的 CcmExec 3304

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

    命令行 = " \ \ <server> \ <share> $ \ <folder>\update\update.exe"/q/f/forcerestart,
    工作目录 = \ \ <server> \ <share> $ \ <folder> \execmgr <date> <time> 3292 (0x0CDC)
    为传递的命令创建的过程 lineexecmgr <date> <time> 3292 (0x0CDC)
    引发事件:
    [SMS_CodePage (437) ,SMS_LocaleID (1033) ]
    SoftDistProgramStartedEvent 的实例
    {
    AdvertisementId = " <ID> ";
    ClientID = "GUID: <GUID> ";
    命令行 = " \ " \ \ \ \ <server> \ \ <share> $ \ \ <folder> \ \ update \ \update.exe\ "/q/f/forcerestart";
    DateTime = " <date and time> 572000 + 000";
    MachineName = " <computername> ";
    PackageName = " <packagename> ";
    ProcessID = 228;
    ProgramName = "从 XP 或 XPSP1 自动升级";
    SiteCode = " <siteCode> ";
    ThreadID = 3292;
    UserContext = "NT 机关 \ \SYSTEM";
    WorkingDirectory = " \ \ \ \ <server> \ \ <share> $ \ \ <folder> \ \ ";
    };
    execmgr <date> <time> 3292 (0x0CDC)
    为 Ad: <ID> 、程序包: <package> 、程序:自动从 XP 或 XPSP1execmgr <date> <time> 3292 (0X0CDC 中升级的启动程序启动事件)
    用户已记录 off.execmgr <date> <time> 2656 (0x0A60)
    程序自动从 XP 或 XPSP1 的升级在用户 loggs offexecmgr <date> <time> 2656 (0x0A60 时运行。)
    执行管理器计时器已 fired.execmgr <date> <time> 1348 (0x0544)
    为程序更新了策略: MS04-028-XP 的 JPEG 更新,程序包: <package> ,Advert: <ID> execmgr <date> <time> 1408 (0x0580)
    程序退出代码 3010execmgr <date> <time> 2904 (0x0B58)
    正在寻找 MIF 文件以获取程序 statusexecmgr <date> <time> 2904 (0x0B58)
    程序包的脚本: <package> ,程序:自动从 XP 或 XPSP1 进行自动升级已成功完成,退出代码 3010execmgr <date> <time> 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 <date> <time> 2904 (0x0B58)
    引发了 Program Prelim Success 事件 for Ad: <ID> ,程序包: <package> ,程序:从 XP 或 XPSP1execmgr 2904 自动升级 <date> <time> (0x0B58)
    完成从 XP 或 XPSP1 的程序自动升级的执行。 退出代码为3010,执行状态为 SuccessRebootRequiredexecmgr <date> <time> 2904 (0x0B58)
    重新启动计算机-InitiateSystemShutdownEx 失败 1115execmgr <date> <time> 2904 (0x0B58)

    在 SMS 服务器上的 驱动器: \ SMS_CCM \logs\smscliui.log 文件中

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

原因

如果将 GPO 配置为将 SMS 代理主机服务 ( # A0) 启动模式设置为 " 自动",则会发生此问题。

备注

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

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

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

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

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

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

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

  5. 在右侧窗格中,双击 " SMS Agent 主机",单击以清除 " 定义此策略设置 " 复选框,然后单击 "确定"

  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 Agent 主机属性 " 对话框中,单击 "确定"

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