安装应用程序的任务序列在 Microsoft 配置管理器的疑难解答


本指南的作用是什么?

本指南将帮助您了解安装的应用程序任务序列流程并解决可能出现的常见问题。安装应用程序任务序列步骤颁发作为整体的任务序列的一部分安装应用程序。此步骤可以安装一套由任务序列步骤中,指定的应用程序或一组应用程序指定的任务序列变量的动态列表。当运行此步骤时,应用程序的安装将立即而无需等待策略轮询间隔。

本指南中的信息适用于 System Center 2012 配置管理器 (ConfigMgr 2012 年),System Center 2012 R2 配置管理器 (ConfigMgr 2012 R2) 及其所有版本的配置管理器中的当前分支 (如配置管理器 1511和配置管理器 1602年)。

请注意,本指南假定环境配置管理器: 已安装和配置。有关其他信息,请参阅System Center 2012 配置管理器的文档库

适用对象是哪些人?

本指南适用于 IT 专业人员需要了解、 诊断并安装应用程序的任务序列过程在 Microsoft 系统中心配置管理器的疑难解答。

它是如何工作的?

本指南开始在其中安装应用程序任务序列过程开始,并检查搜索的主要步骤。完成指南 》 提供了解决问题的建议。

预计完成时间:

30-45 分钟。

 

安装应用程序任务概述

此处列出的安装应用程序任务过程涉及单个应用程序 installtask,虽然还可用于故障诊断的基于列表的 multipleapplications 安装。

安装应用程序的过程运行时,应用程序将检查 therequirement 规则和应用程序中断的部署类型检测方法的适用性。根据这一检查的结果,应用程序安装 theapplicable 的部署类型。如果部署类型包含依赖关系,依赖于部署类型计算并安装作为安装应用程序步骤的一部分。

 

有关安装的应用程序任务序列过程的详细信息,请查看此TechNet 文章

任务序列管理器分析 XML 的任务序列,并开始安装应用程序任务

任务序列中的应用程序安装了很多 incommon 与外部任务序列,应用程序安装于具有 theyboth 利用合规性设置的配置管理器。但是,它们的功能不一样因为没有运行任务序列过程的性质所涉及的多个组件。

随着任务的顺序进行,它维护状态 oftasks 和使用任务序列 environmentvariables (请参阅https://technet.microsoft.com/en-us/library/hh273375.aspx的详细信息) 相关的执行状态。这些内置的变量提供的 theenvironment,正在运行的任务序列,且其值为 thesevariables 也贯穿于整个任务序列有关的信息。对于安装的应用程序任务,这些内置 invariables 之前初始化任务序列中运行的进程。

任务序列管理器设置全局环境变量对于下一步的指令,到安装应用程序的_SMSTSCurrentActionName_SMSTSNexInstructionPointer指令指针分配给此任务。这样,可以观察到在 SMSTS.log 中的下列条目:

01-13-2016 17:56:35.510   TSManager    2176 (0x880)    Start executing an instruction. Instructionname: Install Application. Instruction pointer: 32 01-13-2016 17:56:35.510   TSManager    2176 (0x880)    Set a global environment variable_SMSTSCurrentActionName=Install Application 01-13-2016 17:56:35.510   TSManager    2176 (0x880)    Set a global environment variable_SMSTSNextInstructionPointer=32 

TSManager 然后保存任务 sequenceand 的执行状态的环境 (TSEnv.dat) 到本地硬盘如下所示在 SMSTS.log 中:

01-13-2016 17:56:35.510    TSManager    2176 (0x880)    Successfully save execution state and environment to local hard disk 

任务序列管理器启动下一条指令执行的顺序,根据以前的指令和下一步的指令指针执行历史记录:

01-13-2016 17:56:35.510   TSManager    2176 (0x880)    Start executing an instruction. Instructionname: Install Application. Instruction pointer: 32 

任务序列管理器然后将设置为应用程序的本地默认变量:

01-13-201617:56:35.510    TSManager    2176 (0x880)    Set a local default variableOSDApp0Description01-13-201617:56:35.510    TSManager    2176 (0x880)    Set a local default variableOSDApp0DisplayName 01-13-201617:56:35.510    TSManager    2176 (0x880)    Set a local default variable OSDApp0Name 01-13-201617:56:35.510    TSManager    2176 (0x880)    Set a local default variable OSDAppCount 01-13-201617:56:35.525    TSManager    2176 (0x880)    Set a global environment variable_SMSTSLogPath=C:\WINDOWS\CCM\Logs\SMSTSLog

任务序列管理器现在设置的命令行应用程序安装 (smsappinstall.exe) 基于任务序列 XML 策略,它有分析,并开始执行它 bycalling smsappinstall.exe,如下所示在 SMSTS.log:

01-13-2016 17:56:35.525   TSManager    2176 (0x880)    Executing command line: smsappinstall.exe/app:ScopeId_GUID/Application_GUID/basevar: /continueOnError:False 

这一时刻安装应用程序虽然命令行来运行安装程序将不会发生一些时间尚未安装应用程序,任务 (smsappinstall.exe) 开始。首先,所有必须获得必要的信息。

 

 

安装应用程序任务概述

此处列出的安装应用程序任务过程涉及单个应用程序 installtask,虽然还可用于故障诊断的基于列表的 multipleapplications 安装。

安装应用程序的过程运行时,应用程序将检查 therequirement 规则和应用程序中断的部署类型检测方法的适用性。根据这一检查的结果,应用程序安装 theapplicable 的部署类型。如果部署类型包含依赖关系,依赖于部署类型计算并安装作为安装应用程序步骤的一部分。

 

有关安装的应用程序任务序列过程的详细信息,请查看此TechNet 文章

任务序列管理器分析 XML 的任务序列,并开始安装应用程序任务

任务序列中的应用程序安装了很多 incommon 与外部任务序列,应用程序安装于具有 theyboth 利用合规性设置的配置管理器。但是,它们的功能不一样因为没有运行任务序列过程的性质所涉及的多个组件。

随着任务的顺序进行,它维护状态 oftasks 和使用任务序列 environmentvariables (请参阅https://technet.microsoft.com/en-us/library/hh273375.aspx的详细信息) 相关的执行状态。这些内置的变量提供的 theenvironment,正在运行的任务序列,且其值为 thesevariables 也贯穿于整个任务序列有关的信息。对于安装的应用程序任务,这些内置 invariables 之前初始化任务序列中运行的进程。

任务序列管理器设置全局环境变量对于下一步的指令,到安装应用程序的_SMSTSCurrentActionName_SMSTSNexInstructionPointer指令指针分配给此任务。这样,可以观察到在 SMSTS.log 中的下列条目:

01-13-2016 17:56:35.510   TSManager    2176 (0x880)    Start executing an instruction. Instructionname: Install Application. Instruction pointer: 32 01-13-2016 17:56:35.510   TSManager    2176 (0x880)    Set a global environment variable_SMSTSCurrentActionName=Install Application 01-13-2016 17:56:35.510   TSManager    2176 (0x880)    Set a global environment variable_SMSTSNextInstructionPointer=32 

TSManager 然后保存任务 sequenceand 的执行状态的环境 (TSEnv.dat) 到本地硬盘如下所示在 SMSTS.log 中:

01-13-2016 17:56:35.510    TSManager    2176 (0x880)    Successfully save execution state and environment to local hard disk 

任务序列管理器启动下一条指令执行的顺序,根据以前的指令和下一步的指令指针执行历史记录:

01-13-2016 17:56:35.510   TSManager    2176 (0x880)    Start executing an instruction. Instructionname: Install Application. Instruction pointer: 32 

任务序列管理器然后将设置为应用程序的本地默认变量:

01-13-201617:56:35.510    TSManager    2176 (0x880)    Set a local default variableOSDApp0Description01-13-201617:56:35.510    TSManager    2176 (0x880)    Set a local default variableOSDApp0DisplayName 01-13-201617:56:35.510    TSManager    2176 (0x880)    Set a local default variable OSDApp0Name 01-13-201617:56:35.510    TSManager    2176 (0x880)    Set a local default variable OSDAppCount 01-13-201617:56:35.525    TSManager    2176 (0x880)    Set a global environment variable_SMSTSLogPath=C:\WINDOWS\CCM\Logs\SMSTSLog

任务序列管理器现在设置的命令行应用程序安装 (smsappinstall.exe) 基于任务序列 XML 策略,它有分析,并开始执行它 bycalling smsappinstall.exe,如下所示在 SMSTS.log:

01-13-2016 17:56:35.525   TSManager    2176 (0x880)    Executing command line: smsappinstall.exe/app:ScopeId_GUID/Application_GUID/basevar: /continueOnError:False 

这一时刻安装应用程序虽然命令行来运行安装程序将不会发生一些时间尚未安装应用程序,任务 (smsappinstall.exe) 开始。首先,所有必须获得必要的信息。

 

在此步骤中,安装应用程序组件计算任务序列策略并将其存储在 WMI 中。应用程序将检查要求规则和部署类型的应用程序的检测方法的适用性。这是使用CIStoreCIStateStore来计算的适用性和状态的配置项配置数据内容与应用程序和部署类型。其结果是 CI 将被标记为下载。

安装应用程序分析命令行,并确定应用程序的名称。
SMSTS.log:
01-13-2016 17:56:35.572    InstallApplication    1608 (0x648)    Application Names: 01-13-2016 17:56:35.572    InstallApplication    1608 (0x648)    'ScopeId_GUID/Application_GUID' 
安装的应用程序设置为应用程序的变量。
SMSTS.log: 
01-13-2016 17:56:35.666    InstallApplication    1608 (0x648)    Setting TSEnv variable 'SMSTSAppPolicyEvaluationJobID__ScopeId_GUID/Application_GUID'=''01-13-2016 17:56:35.666    InstallApplication    1608 (0x648)    Setting TSEnv variable 'SMSTSInstallApplicationJobID__ScopeId_GUID/Application_GUID'=' 
它下一步寻找策略的作用域 id。
SMSTS.log:
01-13-2016 17:56:35.666    InstallApplication    1608 (0x648)    Retrieving value from TSEnv for '_SMSTSPolicy_ScopeId_GUID/Application_GUID
现在它查找并检索任务序列环境 (TSEnv.dat) 中的应用程序策略。
SMSTS.log: 
01-13-2016 17:56:35.666    InstallApplication    1608 (0x648)    Found App policy modelname:ScopeId_GUID/RequiredApplication_GUID and CIversion:10 
安装应用程序然后解压缩该策略。
SMSTS.log: 
01-13-2016 17:56:35.666    InstallApplication    1608 (0x648)    Found App policy modelname:ScopeId_GUID/RequiredApplication_GUID and CIversion:10 01-13-2016 17:56:35.682    InstallApplication    1608 (0x648)    ::DecompressBuffer(65536) 01-13-2016 17:56:35.682    InstallApplication    1608 (0x648)    Decompression (zlib) succeeded: original size 145382, uncompressed size 1238794. 
Root\ccm\policy\actualconfig命名空间中安装的应用程序组件在 WMI 存储策略。
SMSTS.log:
01-13-2016 17:56:36.119    InstallApplication    1608 (0x648)    Locked ActualConfig successfully 01-13-2016 17:56:36.150    InstallApplication    1608 (0x648)    New/Changed ActualConfig policy instance(s) : 6 01-13-2016 17:56:36.150    InstallApplication    1608 (0x648)    [1] Added/updated setting 'ccm_applicationciassignment:assignmentid=dep-meh20009-scopeid_GUID/application_GUID'. 01-13-2016 17:56:36.150    InstallApplication    1608 (0x648)    [2] Added/updated setting 'ccm_civersioninfo:modelname=scopeid_GUID/application_GUID:version=10'. 01-13-2016 17:56:36.150    InstallApplication    1608 (0x648)    [3] Added/updated setting 'ccm_civersioninfo:modelname=scopeid_GUID/deploymenttype_GUID:version=6'. 01-13-2016 17:56:36.150    InstallApplication    1608 (0x648)    [4] Added/updated setting 'ccm_civersioninfo:modelname=scopeid_GUID/requiredapplication_GUID:version=10'. 01-13-2016 17:56:36.150    InstallApplication    1608 (0x648)    [5] Added/updated setting 'ccm_civersioninfo:modelname=windows/all_windows_client_server:version=1'. 01-13-2016 17:56:36.150    InstallApplication    1608 (0x648)    [6] Added/updated setting 'ccm_scheduler_scheduledmessage:scheduledmessageid=dep-meh20009-scopeid_GUID/application_GUID'. 01-13-2016 17:56:36.150    InstallApplication    1608 (0x648)    Unlocked ActualConfig successfully 01-13-2016 17:56:36.150    InstallApplication    1608 (0x648)    Raising event: instance of CCM_PolicyAgent_SettingsEvaluationComplete { ClientID = "GUID:ClientGUID"; DateTime = "20160113225636.150000+000"; PolicyNamespace = "\\\\.\\root\\ccm\\policy\\machine\\actualconfig"; ProcessID = 1392; ThreadID = 1608; }; 
然后,策略代理提供程序处理的 actualconfig 策略命名空间中的变化。
PolicyAgentProvider.log 
01-13-2016 17:56:36.150    PolicyAgentProvider    2424 (0x978)    [000000B205C423A8] 1 settings change(s) detected. 01-13-2016 17:56:36.182    PolicyAgentProvider    2424 (0x978)    [000000B205C423A8] Queued worker to process these 1 settings change(s) 01-13-2016 17:56:36.182    PolicyAgentProvider    2420 (0x974)    --- Processing 1 settings change(s). 01-13-2016 17:56:36.182    PolicyAgentProvider    2420 (0x974)    --- [1] __InstanceCreationEvent settings change on object CCM_ApplicationCIAssignment.AssignmentID="DEP-MEH20009-ScopeId_GUID/Application_GUID". 01-13-2016 17:56:36.182    PolicyAgentProvider    2420 (0x974)    --- Begin Indicating 1 settings change(s). 01-13-2016 17:56:36.182    PolicyAgentProvider    2420 (0x974)    --- Completed Indicating 1 settings change(s). 
DCMAgent处理更改并开始评估 CI 为应用程序安装。
DCMAgent.log:
01-13-2016 17:56:36.197   DCMAgent    2608 (0xa30)    DCMAgent::ProcessAssignmentChange. 
然后,策略代理更新 CI 存储区中的配置项信息。

 

CIStore.log:

 

01-13-2016 17:56:36.260   CIStore    2608 (0xa30)   CCIStore::ProcessCITargetEvent - CIScopeId_GUID/Application_GUID:10 will be targeted for SYSTEM 01-13-2016 17:56:36.275   CIStore    2608 (0xa30)   CCIStore::ProcessCITargetEvent - CI ScopeId_GUID/DeploymentType_GUID:6 will be targeted for SYSTEM 
下载,然后通过CIStateStore签 CI 的任何关联的应用程序部署类型的状态添加应用 CI 的状态。标记为未找到下载添加任何 CIs。
CIStore.log:
01-13-2016 17:56:36.275    CIStore    2608 (0xa30)    CCIStoreTargetedCIDownloader::AddCI - CI Modelname:ScopeId_GUID/Application_GUID Version:10 has been added for download 
CIStateStore.log:
01-13-2016 17:56:36.322    CIStateStore    2608 (0xa30)    CCIStateTransition::ExtractStateDetails - CI ModelName ScopeId_GUID/DeploymentType_GUID, version 6 not found in store. 
CIStore.log:
01-13-2016 17:56:36.369    CIStore    2608 (0xa30)    CCIStoreTargetedCIDownloader::AddCI - CI Modelname:ScopeId_GUID/DeploymentType_GUID Version:6 has been added for download
既然这样,DCM 代理将开始一项工作来评估应用程序策略,并开始获得必要的信息从数据库。
 
 
 
 
 

在上一步中,CIs 已标记为要下载。DCM 代理现在将利用CI 代理开始从数据库获取的配置项配置数据内容(SDM 包)。这些信息包括:应用程序属性应用程序清单部署类型属性部署类型清单应用程序法规遵从性目的策略,等等。

获取此信息的同时不会发生。在不同的时间来完成此项工作,DCM 代理利用下面的客户端组件:
  • CI 代理
  • CI 下载程序
  • CIStore
  • 数据传输服务
  • 内容传输管理器
  • 所有这些信息通过管理点从数据库请求,请求和响应都可通过 MP_GetSDMPackage.log 文件监视。
  • 完整的应用程序安装的每个任务的顺序的 MP_GetSDMDocument 执行中的数据传输服务下载:
  1. 应用程序属性的结果具有基本应用 CI 信息。仅名称。
  2. 应用程序清单的策略平台应用 CI CI 文档的链接。
  3. 应用程序目的策略-应用程序所需的所需状态。
  4. 应用程序清单再次。请注意不同的哈希。这一次结果具有扩展的信息,CI 清单,App DT CI 引用的 WMI 命名空间的 WMI 命名空间。
  5. 应用程序属性再次。请注意不同的哈希。此结果包括,扩展/自定义属性,出版商的时间释放日期、 图标等。
  6. DT 的应用程序的属性。结果包括说明,估计的安装时,安装的开机自检行为,等等。
  7. 应用程序清单 DT 结果具有扩展信息,CI 清单的 WMI 命名空间。
  8. 应用程序策略结果包括策略平台 MOF 是编译与所需状态、 应用程序属性和应用程序 DT 属性的客户端。
  9. 应用 DT 策略将被压缩。无法解压缩。
下面是示例请求和只在应用程序的下载属性和清单 (步骤 1 和步骤 2 从上面)。
  1. DCM 代理作业 id。 DCMAgent.log:
    01-13-201617:56:36.979    DCMAgent    1568(0x620)    CDCMAgentJobMgr::StartJob - Starting DCM Agent job{ID}
  2. DCM 代理为CI 代理创建一个作业。 DCMAgent.log:
    01-13-2016 17:56:37.088    DCMAgent    2768 (0xad0)    DCMAgentJob({ID}): CDCMAgent::InitiateCIAgentJob - Starting CI Agent Job {E672EA3F-29D7-46E5-B05E-7D72DF2C50E0} for target: machine. Refer to this CI agent job ID in ciagent.log for more details 
  3. CIDownloader创建一个作业。 CIDownloader.log:
    01-13-2016 17:56:37.166    CIDownloader    2728 (0xaa8)    CIDownloaderJob({ID}): SetFailureCondition - Job will fail immediately on error
  4. DCM 代理通过其自己的作业跟踪进度。 DCMAgent.log:  
    01-13-2016 17:56:37.182    DCMAgent    2768 (0xad0)    DCMAgentJob({ID}): CDCMAgentJob::HandleEvent(Event=NotifyProgress, CurrentState=Evaluating)
  5. CIDownloader计算范围内启动的检查的 CI CI 商店。CIDownloader.log:
    01-13-2016 17:56:37.182    CIDownloader    2728 (0xaa8)    [Calculate Scope] - Adding CI Modelname:ScopeId_GUID/RequiredApplication_GUID Version:10 to Scoped CIs List of root Modelname:ScopeId_GUID/RequiredApplication_GUID Version:10 

    CIStore.log:

    01-13-201617:56:37.182    CIStore    2728(0xaa8)    CCIStore::GetTargetedCIReference invoked for CIScopeId_GUID/RequiredApplication_GUID:10targeted to SYSTEM 
  6. CI 是查询的CI 状态存储区中,找不到。 CIStateStore.log: 
    01-13-201617:56:37.197    CIStateStore    2728(0xaa8)    CCIStateTransition::ExtractStateDetails - CIModelNameScopeId_GUID/RequiredApplication_GUID,version 10 not found in store. 
  7. 由于找不到,然后添加到CIDownloader作业。 CIDownloader.log:
    01-13-201617:56:37.213    CIDownloader    2728(0xaa8)   CIDownloaderJob({ID}): CI with ModelNameScopeId_GUID/RequiredApplication_GUID,Version 10. Model:(null) added to job. 
  8. CI 代理现在开始下载 CI CIDownloader作业。 CIAgent.log:  
    01-13-201617:56:37.229    CIAgent    2728(0xaa8)    CIAgentJob({E672EA3F-29D7-46E5-B05E-7D72DF2C50E0}):Started CIDownloadJob({1B065017-7AC4-4729-B15D-6415BED35D0E}) 
  9. CIDownloader作业过渡到下载程序包阶段,并将 CIs 的源文件添加到请求。请注意,在这种情况下,是指 SDM 包,不是内容 (二进制文件)。 CIDownloader.log: 
    01-13-201617:56:37.229    CIDownloader    2728(0xaa8)   CIDownloaderJob({ID}): DownloadPackages  01-13-201617:56:37.229    CIDownloader    2728(0xaa8)    --Source file:.sms_dcm?Id&DocumentId=ScopeId_GUID/RequiredApplication_GUID/10/MANIFEST&Hash=HashString&Compression=zlib  01-13-201617:56:37.229    CIDownloader    2728(0xaa8)    --Source file:.sms_dcm?Id&DocumentId=ScopeId_GUID/RequiredApplication_GUID/10/PROPERTIES&Hash=HashString&Compression=zlib 
  10. CIDownloader连接到数据传输服务请求的清单和应用程序以及应用程序的部署类型的属性。 DataTransferService.log:
    01-13-201617:56:37.275    DataTransferService    2728(0xaa8)    Added(source=.sms_dcm?Id&DocumentId=ScopeId_GUID/RequiredApplication_GUID/10/PROPERTIES&Hash=HashString&Compression=zlib,dest={JobID}_2.zip)pair from manifest.  01-13-201617:56:37.275    DataTransferService    2728(0xaa8)    Added(source=.sms_dcm?Id&DocumentId=ScopeId_GUID/RequiredApplication_GUID/10/MANIFEST&Hash=HashString&Compression=zlib,dest={JobID}_1.zip)pair from manifest.
  11. 数据传输服务调用到 MP_GetSDMPacakge ISAPI 在管理点,又从数据库请求 SDM 包的信息,通过触发 SQL 存储过程。 SQL 事件探查器:
    exec MP_GetSdmDocument N'ScopeId_GUID/RequiredApplication_GUID/10/PROPERTIES',N'HashString',N'1',N'1'  exec MP_GetSdmDocument N'ScopeId_GUID/RequiredApplication_GUID/10/MANIFEST',N'HashString',N'1',N'1'
  12. 数据传输服务启动的 BITS 作业,并将路径添加到该作业后的响应已收到并且开始下载数据。 DataTransferService.log:
    01-13-201617:56:37.432    DataTransferService    2316(0x90c)    Starting BITS job'{ID}' for DTS job'{ID}' under user 'S-1-5-18'.  01-13-201617:56:37.479    DataTransferService    2316(0x90c)    BITSHelper: Full source path to be transferred = http://PS1.contoto.lab:80/SMS_MP/.sms_dcm?Id&DocumentId=ScopeId_GUID/RequiredApplication_GUID/10/PROPERTIES&Hash=HashString&Compression=zlib 01-13-201617:56:37.479    DataTransferService    2316(0x90c)    Adding to BITS job:{ID}_2.zip  01-13-201617:56:37.479    DataTransferService    2316(0x90c)    BITSHelper: Full source path to be transferred= http://PS1.contoto.lab:80/SMS_MP/.sms_dcm?Id&DocumentId=ScopeId_GUID/RequiredApplication_GUID/10/MANIFEST&Hash=HashString&Compression=zlib 56:37.479   DataTransferService    2316 (0x90c)    Adding toBITS job: {ID}_1.zip 
  13. 监视的 SDM 程序包的下载和类似于下面的行的搜索完成后 DataTransferService.log。 配置项目 #1
    01-13-2016 17:56:37.588    DataTransferService    2748 (0xabc)    Job: {ID}, Total Files: 2, Transferred Files: 2, Total Bytes: 1160, Transferred Bytes: 1160 01-13-2016 17:56:37.588    DataTransferService    2748 (0xabc)    DTSJob {ID} successfully completed download. 
    配置项目 #2
    01-13-2016 17:56:37.791    DataTransferService    1568 (0x620)    Job: {ID}, Total Files: 3, Transferred Files: 3, Total Bytes: 2616, Transferred Bytes: 2616 01-13-2016 17:56:37.791    DataTransferService    1568 (0x620)    DTSJob {ID} successfully completed download. 
    配置项目 #3
    01-13-2016 17:56:37.994    DataTransferService    2748 (0xabc)    Job: {ID}, Total Files: 3, Transferred Files: 3, Total Bytes: 3216, Transferred Bytes: 3216 01-13-2016 17:56:37.994    DataTransferService    2748 (0xabc)    DTSJob {ID} successfully completed download. 
    配置项目 #4
    01-13-2016 17:56:38.104    DataTransferService    1568 (0x620)    Job: {ID}, Total Files: 1, Transferred Files: 1, Total Bytes: 4172, Transferred Bytes: 4172 01-13-2016 17:56:38.104    DataTransferService    1568 (0x620)    DTSJob {ID} successfully completed download. 

 

下载所有 CIs 所引用的应用程序安装完成数据传输服务作业后, CIDownloader将检查 CIs 的哈希值、 解压缩,并保留CI 存储区中。它将 CIs 与应用程序关联的每个执行此操作。

以下过程将发生的任何与此任务期间正在安装的应用程序有关系的 CI。合并日志有助于跟踪每个进度。按照作业 ID
分别每个 CI 完全下载后,数据传输服务标记完成作业和CIDownloader确认哈希值。
DataTransferService.log:
01-13-2016 17:56:37.588    DataTransferService    2748 (0xabc)    Job: {ID}, Total Files: 2, Transferred Files: 2, Total Bytes: 1160, Transferred Bytes: 116001-13-2016 17:56:37.588    DataTransferService    2748 (0xabc)    DTSJob {ID} successfully completed download. 01-13-2016 17:56:37.604    DataTransferService    2316 (0x90c)    DTSJob {ID} in state 'NotifiedComplete'. 

CIDownloader.log:
01-13-2016 17:56:37.619    CIDownloader    2768 (0xad0)    ::DecompressFile(C:\WINDOWS\CCM\CIDownloader\Staging\}_1.zip,65536,C:\WINDOWS\CCM\CIDownloader\Staging\{JobID}_1.xml) 01-13-2016 17:56:37.619    CIDownloader    2768 (0xad0)    VerifyCIDocumentHash - Preparing to verify hash for CI document ScopeId_GUID/RequiredApplication_GUID/10/MANIFEST01-13-2016 17:56:37.619    CIDownloader    2768 (0xad0)    ::DecompressFile(C:\WINDOWS\CCM\CIDownloader\Staging\{JobID}_2.zip,65536,C:\WINDOWS\CCM\CIDownloader\Staging\{JobID}_2.xml) 01-13-2016 17:56:37.619    CIDownloader    2768 (0xad0)    VerifyCIDocumentHash - Preparing to verify hash for CI document ScopeId_GUID/RequiredApplication_GUID/10/PROPERTIES
CIDownloader已获得从管理点的所有 CIs 之后, 它将CI 代理回叫,并开始持续 CIs。
CIAgent.log: 
01-13-2016 17:56:38.119    CIAgent    2768 (0xad0)    CIAgentJob({ID}): CAgentJob::NotifyComplete - CIDownloader callback 01-13-2016 17:56:38.119    CIAgent    2728 (0xaa8)    CIAgentJob({ID}): CAgentJob::HandleEvent(Event=Transition, CurrentState=PersistingCIModels) 01-13-2016 17:56:38.119    CIAgent    2728 (0xaa8)    CIAgentJob({ID}): PersistCIModels  
CIDownloader将会保留到CI 摘要存储CIs。
CIDownloader.log:
01-13-2016 17:56:38.119    CIDownloader    2728 (0xaa8)    CCIDigestStore::PersistIntegratedCIDefinitions 01-13-2016 17:56:38.182    CIDownloader    2728 (0xaa8)    DCM::LanternUtils::StoreModelDocument 01-13-2016 17:56:38.385    CIDownloader    2728 (0xaa8)    DCM::LanternUtils::StoreModelDocument succeeded 01-13-2016 17:56:38.385    CIDownloader    2728 (0xaa8)    CCIDigestStore::PersistIntegratedCIDefinitions - Lantern model document compiled to WMI. 01-13-2016 17:56:38.463    CIDownloader    2728 (0xaa8)    CCIDigestStore::PersistIntegratedCIDefinitions - Creating file C:\WINDOWS\CCM\CIDownloader\DigestStore\321EC9594015C9F9E6780EB4FEC210A78BEC119CB44ADE46A94C5F5B26F47948.xml 01-13-2016 17:56:38.463    CIDownloader    2728 (0xaa8)    CCIDigestStore::PersistIntegratedCIDefinitions - Creating file C:\WINDOWS\CCM\CIDownloader\DigestStore\B7BE90F13A8B7B3BD870B8DC5D0DF3E8378137B385988C2037A5C94EF21E4BCB.xml 01-13-2016 17:56:38.463    CIDownloader    2728 (0xaa8)    CCIDigestStore::PersistIntegratedCIDefinitions - Dcm Digest persisted to CIDigestStore. 
CIDownloader完成 CIs 的持续性,并标记其作业完成。
CIDownloader.log:
01-13-2016 17:56:38.463    CIDownloader    2728 (0xaa8)    CCIDigestStore::PersistIntegratedCIDefinitions - Dcm Digest persisted to CIDigestStore. 01-13-2016 17:56:38.463    CIDownloader    2728 (0xaa8)    CCIDownloader::CompleteJob for job {ID}. 
CI 代理检查CI 商店现在 CIs 所需的应用程序安装过程。CI 存储返回适当的值。
CIAgent.log:
01-13-2016 17:56:38.479    CIAgent    2728 (0xaa8)    CCIInfo::AddDepedentCI for ModelName: ScopeId_GUID/Application_GUID Version: 10 01-13-2016 17:56:38.479    CIStore    2728 (0xaa8)    CCIStore::GetCIEx - Requested CI ModelName ScopeId_GUID/Application_GUID, Version 10 returned from [Store] 01-13-2016 17:56:38.479    CIStore    2728 (0xaa8)    Found property (DisplayName) value but only with fallback to US English: ConfigMgr 2012 Toolkit R2 01-13-2016 17:56:38.510    CIAgent    2728 (0xaa8)    CCIInfo::AddDepedentCI for ModelName: ScopeId_GUID/DeploymentType_GUID Version: 6 01-13-2016 17:56:38.510    CIStore    2728 (0xaa8)    CCIStore::GetCIEx - Requested CI ModelName ScopeId_GUID/DeploymentType_GUID, Version 6 returned from [Store] 01-13-2016 17:56:38.510    CIStore    2728 (0xaa8)    Found property (DisplayName) value but only with fallback to default: ConfigMgr 2012 Toolkit R2 - Windows Installer (*.msi file) 
接下来, CI 代理将执行调用的 SDM 模型进一步处理。SDM 程序包将 CIs 链接在一起,进一步将实现的配置信息。此过程的一部分也将 CIs 绑定使用 Microsoft 策略平台的策略。

 

 

 

所有获得的必要 CIs 和 SDM 的工作包数据此时已下载。CI 代理将调用SDMMethod将 CIs 绑定到其策略平台/灯笼策略存储在 WMI 中 (位于 root\Microsoft\PolicyPlatform\Documents\Local),评估它们的适用性,并最终标记它们作为可供实施之前清理它的作业。

 

CIAgent.log:
01-13-2016 17:56:38.510    CIAgent    2728 (0xaa8)    CIAgentJob({ID}): TransitionState(From=PersistingCIModels, To=InvokingSdmMethod) for Event=Transition
CI 代理开始制定和应用 cis 流程的评估。
CIAgent.log:
01-13-2016 17:56:38.541    CIAgent    2316 (0x90c)    CIAgentJob({ID}): StartEnactment - CI - ScopeId_GUID/RequiredApplication_GUID 01-13-2016 17:56:38.541    CIAgent    2316 (0x90c)    CIAgentJob({ID}): Evaluation for CI 'ScopeId_GUID/RequiredApplication_GUID.10'is required. 
CI 代理调用策略平台客户端,并通过调用 Microsoft 策略平台绑定策略。
CIAgent.log:
01-13-2016 17:56:38.541    CIAgent    2316 (0x90c)    CIAgentJob({ID}): Evaluation for CI 'ScopeId_GUID/RequiredApplication_GUID.10'is required. 01-13-2016 17:56:38.541    CIAgent    2316 (0x90c)    CIAgentJob({ID}): StartEnactment - Attempting to invoke Policy Platform Client 01-13-2016 17:56:38.885    CIAgent    2316 (0x90c)    DCM::LanternUtils::ScopeAndBindPolicies - [ScopedPolicies] ScopeId_GUID_Application_GUID_Platform_PolicyDocument 01-13-2016 17:56:38.885    CIAgent    2316 (0x90c)    DCM::LanternUtils::ScopeAndBindPolicies - [ScopedPolicies] ScopeId_GUID_Application_GUID_Configuration_PolicyDocument 
CI 代理完成制定。
CIAgent.log:
01-13-2016 17:56:38.885    CIAgent    2316 (0x90c)    DCM::LanternUtils::ScopeAndBindPolicies - [ScopedPolicies] ScopeId_GUID_DeploymentType_GUID_Discovery_PolicyDocument 01-13-2016 17:56:39.619    CIAgent    2768 (0xad0)    CIAgentJob({ID}): Invocation succeeded for policy platform job ID01-13-2016 17:56:39.619    CIAgent    2316 (0x90c)    Lantern job:ID succeeded. 01-13-2016 17:56:39.619    CIAgent    2768 (0xad0)    CIAgentJob({ID}): ReportMethodInvocation :: Enactment succeeded 
CI 代理现在过渡到下载 CIs 的作业,然后立即转换具有状态再次强调,这次实施 CI 的。
CIAgent.log:
01-13-2016 17:56:39.963    CIAgent    2768 (0xad0)    CIAgentJob({ID}): TransitionState(From=StateDownloadingContents, To=StateEnforcingCIs) for Event=Transition 01-13-2016 17:56:39.963    CIAgent    2768 (0xad0)    CIAgentJob({ID}): CAgentJob::HandleEvent(Event=CITaskComplete, CurrentState=StateEnforcingCIs) 
CI 代理检查一次,以确保尚未安装应用程序。DCM 代理标记为可供实施的 CI,则报告该状态。
CIAgent.log:
01-13-2016 17:56:39.963    CIAgent    2728 (0xaa8)    CIAgentJob({ID}): CAgentJob::HandleEvent(Event=Transition, CurrentState=StateEnforcingCIs) 
DCMAgent.log:
01-13-2016 17:56:39.979    DCMAgent    1844 (0x734)    CAppMgmtSDK::GetEvaluationState ScopeId_GUID/RequiredApplication_GUID.10 = AvailableForEnforcement 
CIAgent.log:
01-13-2016 17:56:40.057    CIAgent    2728 (0xaa8)    CIAgentJob({ID}): CAgentJob::HandleEvent(Event=Transition, CurrentState=StateEnforcementReporting) 
现在,CIs 计算、 下载、 解压缩、 保留和再重新计算, CI 代理DCM 代理清理它们创建为所有此项工作的作业。
CIAgent.log:
01-13-2016 17:56:40.072    CIAgent    2356 (0x934)    Internal Request to delete CIAgent job {ID} 
DCMAgent.log:
01-13-2016 17:56:40.088    DCMAgent    2728 (0xaa8)    DCMAgentJob({ID}): CDCMAgentJob::HandleEvent(Event=Transition, CurrentState=Success) 
CIAgent.log: 
01-13-2016 17:56:40.104    CIAgent    2356 (0x934)    CIAgentJob({ID}): Job complete. Exiting event pump. 
DCMAgent.log
01-13-2016 17:56:40.104    DCMAgent    2728 (0xaa8)    CDCMAgentJobMgr::DeleteJob - Request to delete DCM Agent job {ID} 01-13-2016 17:56:40.135    DCMAgent    2728 (0xaa8)    DCMAgentJob({ID}): QueueDebug - Executing Event. 01-13-2016 17:56:40.104    DCMAgent    2728 (0xaa8)    Job complete. Exiting event pump.
 

到 SDK 安装应用程序,安装应用程序将立即回拨。这反过来CI 的代理和所有它所使用的组件创建一个作业的DCM 代理创建新作业。会发生相同的过程,其中CI 代理利用组件以确保所有 CIs 已下载、 计算并保持不变。此步骤的结果是应用程序安装过程的内容 (二进制文件) 将被标记为下载。

安装应用程序会调用应用程序管理 SDK (DCM 代理) 来安装该应用程序。

InstallApplication.log:

01-13-2016 17:56:40.119    InstallApplication    1608 (0x648)    Invoking App Management SDK to install application 01-13-2016 17:56:40.135    InstallApplication    1608 (0x648)    Installing application 'ScopeId_GUID/RequiredApplication_GUID' has started. Please refer to DCMAgent.log for the details on this job. JobID='{ID}' 
DCM 代理为CI 代理创建一个新作业。
DCMAgent.log: 
01-13-2016 17:56:40.135    DCMAgent    2356 (0x934)    DCMAgentJob({ID}): CDCMAgent::InitiateCIAgentJob - Starting CI Agent Job {ID} for target: machine. Refer to this CI agent job ID in ciagent.log for more details 
CIAgent.log:
01-13-2016 17:56:40.135    CIAgent    2356 (0x934)    CIAgentJob({ID}): [LeakTest] AgentJob created 
此新CI 代理作业马上进入分配 CIs状态等待并立即过渡到下载 CIs。
CIAgent.log:
01-13-2016 17:56:40.135    CIAgent    2768 (0xad0)    CIAgentJob({ID}): CAgentJob::HandleEvent(Event=Transition, CurrentState=WaitingForAssignedCI) 01-13-2016 17:56:40.135    CIAgent    2728 (0xaa8)    CIAgentJob({ID}): CAgentJob::HandleEvent(Event=DownloadCIs, CurrentState=WaitingForAssignedCI) 01-13-2016 17:56:40.135    CIAgent    2768 (0xad0)    CIAgentJob({ID}): CAgentJob::HandleEvent(Event=Transition, CurrentState=DownloadingCIs) 
CIDownloader创建一项作业,请不要下载并检查是否存在 CIs。
CIDownloader.log:
 01-13-2016 17:56:40.135    CIDownloader    2768 (0xad0)    CIDownloaderJob({ID}): SetFailureCondition - Job will fail immediately on error 
CIDownloader报告到CI 代理的应用程序的所有 CIs 都是存在于存储区。
CIDownloader.log: 
01-13-2016 17:56:40.166    CIDownloader    2768 (0xad0)    CDownloadPayloadInfo::AddCI - CI with ModelName ScopeId_GUID/Application_GUID, Version 10 is already available.
没有下载的CI 代理日志。这是因为已下载的应用程序、 应用程序 DT 和要求 CI。CI 代理会移到持续的 CI 模型。
CIAgent.log:
01-13-2016 17:56:40.182    CIAgent    2768 (0xad0)    CIAgentJob({ID}): Nothing to be downloaded. 01-13-2016 17:56:40.182    CIAgent    2316 (0x90c)    CIAgentJob({ID}): CAgentJob::HandleEvent(Event=Transition, CurrentState=PersistingCIModels) 
CI 代理再次调用 SDM 方法,仅这一次它将标记尚未下载的二进制文件 (install.msi)。
CIAgent.log:
01-13-2016 17:56:40.213    CIAgent    2316 (0x90c)    CIAgentJob({ID}):  CI ScopeId_GUID/DeploymentType_GUID:6 (ConfigMgr 2012 Toolkit R2 - Windows Installer (*.msi file)) targeted to  (Dependant of policy CI ScopeId_GUID/RequiredApplication_GUID:10) is in scope for evaluation. 01-13-2016 17:56:40.213    CIAgent    2728 (0xaa8)    CIAgentJob({ID}): CAgentJob::HandleEvent(Event=Transition, CurrentState=InvokingSdmMethod) 
CI 代理开始重新制定、 连接到 Microsoft 策略平台同时确认 CIs 绑定策略。
CIAgent.log:
01-13-2016 17:56:40.244    CIAgent    2728 (0xaa8)    CIAgentJob({ID}): StartEnactment - CI - ScopeId_GUID/RequiredApplication_GUID 01-13-2016 17:56:40.244    CIAgent    2728 (0xaa8)    CIAgentJob({ID}): StartEnactment - Attempting to invoke Policy Platform Client 01-13-2016 17:56:40.322    CIAgent    2768 (0xad0)    CIAgentJob({ID}): ReportMethodInvocation :: Enactment succeeded 01-13-2016 17:56:40.322    CIAgent    2768 (0xad0)    CIAgentJob({ID}): ReportMethodInvocation :: Obtained lantern reports 
在这点CI 代理程序标记为可用且适用应用程序和应用程序 DT 以及将安装它们。
CIAgent.log: 
01-13-2016 17:56:40.369    CIAgent    2768 (0xad0)    CIAgentJob({ID}):State - Reporting (scan):: AppModel - ScopeId_GUID/Application_GUID:10 - State = NotInstalled ResolvedState = Available Applicability = Applicable ConfigureState= NotNeeded 01-13-2016 17:56:40.385    CIAgent    2768 (0xad0)    CIAgentJob({ID}):State - Reporting (scan):: Deployment Type - ScopeId_GUID/DeploymentType_GUID:6 - State = NotInstalled ResolvedState = Available Applicability = Applicable ConfigureState= NotNeeded 01-13-2016 17:56:40.463    CIAgent    2728 (0xaa8)    Job({ID}): CI ModelName ScopeId_GUID/Application_GUID version 10 will be INSTALLED. : Task(ScopeId_GUID/RequiredApplication_GUID.10.ContentDownload) 01-13-2016 17:56:40.463    CIAgent    2728 (0xaa8)    Job({ID}): CI ModelName ScopeId_GUID/DeploymentType_GUID version 6 will be INSTALLED. : Task(ScopeId_GUID/Application_GUID.10.ContentDownload) 
现在CI 代理将开始下载该应用程序安装的二进制文件的工作。
CIAgent.log:
01-13-2016 17:56:40.417    CIAgent    2728 (0xaa8)    CIAgentJob({ID}): CAgentJob::HandleEvent(Event=Transition, CurrentState=StateDownloadingContents) 01-13-2016 17:56:40.417    CIAgent    2728 (0xaa8)    CIAgentJob({ID}): DownloadBinaryContents 01-13-2016 17:56:40.417    CIAgent    2728 (0xaa8)    {ID} - Initiating ContentDownload tasks. 01-13-2016 17:56:40.463    CIAgent    2728 (0xaa8)    Job({ID}) : Successfully initialized : Task(ScopeId_GUID/DeploymentType_GUID.6.ContentDownload) 01-13-2016 17:56:40.463    CIAgent    2728 (0xaa8)    Job({ID}) : Successfully initialized : Task(ScopeId_GUID/Application_GUID.10.ContentDownload) 
复杂的地方,现已结束。现在我们将以下载二进制文件。

若要下载安装的内容,使用标准的内容请求进程。在客户端上所涉及的组件是位置服务、 内容访问 (CAS)、 内容传输管理器数据传送管理器。在服务器端,所涉及的组件包括MP_LocationMP_GetDPInfoContent以及 IIS 上分发点 (DP),从访问内容。

内容访问(CA) 将从 WMI 访问内容请求有关的信息。
CAS.log:
01-13-2016 17:56:40.572    ContentAccess    2728 (0xaa8)    CContentAccessService::Initialize 01-13-2016 17:56:40.572    ContentAccess    2728 (0xaa8)    CDownloadManager::InitializeFromWmi 01-13-2016 17:56:40.572    ContentAccess    2728 (0xaa8)    ===== CacheManager: Initializing cache state from Wmi. ===== 01-13-2016 17:56:40.588    ContentAccess    2728 (0xaa8)    Loading cache configuration from Wmi. 01-13-2016 17:56:42.166    ContentAccess    2728 (0xaa8)    CacheManager: Getting cached content information for Content_GUID.1. 
内容传输管理器创建并发送内容的位置请求。
ContentTransferManager.log:
01-13-2016 17:56:42.432    ContentTransferManager    2768 (0xad0)    Attempting to create Location Request for PackageID='PackageID' and Version='1' 01-13-2016 17:56:42.448    ContentTransferManager    2768 (0xad0)    Attempting to send Location Request for PackageID='Content_GUID' 01-13-2016 17:56:42.448    ContentTransferManager    2728 (0xaa8)    Created CTM job {ID} for user S-1-5-18 01-13-2016 17:56:42.448    ContentTransferManager    2768 (0xad0)    ContentLocationRequest : <ContentLocationRequest SchemaVersion="1.00" ExcludeFileList=""><Package ID="UID:Content_GUID" Version="1"/><AssignedSite SiteCode="MEH"/><ClientLocationInfo LocationType="SMSUpdate" DistributeOnDemand="0" UseAzure="0" AllowWUMU="0" UseProtected="0" AllowCaching="0" BranchDPFlags="0" UseInternetDP="0" AllowHTTP="1" AllowSMB="0" AllowMulticast="0"><ADSite Name="Default-First-Site-Name"/><Forest Name="contoto.lab"/><Domain Name="contoto.lab"/><IPAddresses><IPAddress SubnetAddress="10.10.25.128" Address="10.10.25.130"/><IPAddress SubnetAddress="10.10.25.128" Address="10.10.25.166"/></IPAddresses></ClientLocationInfo></ContentLocationRequest> 01-13-2016 17:56:42.463    ContentTransferManager    2768 (0xad0)    Created and Sent Location Request '{ID}' for package Content_GUID 01-13-2016 17:56:42.463    ContentTransferManager    2768 (0xad0)    CTM job {ID} entered phase CCM_DOWNLOADSTATUS_DOWNLOADING_DATA 
MP_Location接收请求,并通过执行一个存储的过程在数据库中对其进行处理。MP_GetDPInfoProtectedMP_GetDPInfoUnprotected
MP_Location.log:
01-13-2016 17:56:42.516    MP_LocationManager    4044 (0xfcc)    MP_GetContentDPInfoProtected (UID:Content_GUID,1,MEH,<ServerNameList><ServerName>PS1DP.CONTOTO.LAB</ServerName></ServerNameList>,SMSUpdate,00000000,contoto.lab,contoto.lab,<ClientLocationInfo LocationType="SMSUpdate" DistributeOnDemand="0" UseAzure="0" AllowWUMU="0" UseProtected="0" AllowCaching="0" BranchDPFlags="0" UseInternetDP="0" AllowHTTP="1" AllowSMB="0" AllowMulticast="0"><ADSite Name="DEFAULT-FIRST-SITE-NAME"/><Forest Name="contoto.lab"/><Domain Name="contoto.lab"/><IPAddresses><IPAddress SubnetAddress="10.10.25.128" Address="10.10.25.130"/><IPAddress SubnetAddress="10.10.25.128" Address="10.10.25.166"/></IPAddresses></ClientLocationInfo>) 
MP_Location发送响应,其中包含的二进制文件可以下载到其中的可用分发点的列表。
MP_Location.log:
01-13-2016 17:56:42.523    MP_LocationManager    4044 (0xfcc)    MP LM: Reply message body: <ContentLocationReply SchemaVersion="1.00" ContentFlags="200960" HashAlgorithm="32780" AlgorithmPreference="4" Hash="HashString" ExcludeFileListHash="" RelatedContentID=""><ContentInfo PackageFlags="32"><ContentHashValues><Hash Algorithm="32780" HashString="HashString" HashPreference="4"/></ContentHashValues></ContentInfo><Sites><Site><MPSite SiteCode="MEH" MasterSiteCode="MEH" SiteLocality="LOCAL" IISPreferedPort="80" IISSSLPreferedPort="443"/><LocationRecords><LocationRecord><URL Name="http://PS1DP.contoto.lab/SMS_DP_SMSPKG$/Content_GUID.1" Signature="http://PS1DP.contoto.lab/SMS_DP_SMSSIG$/Content_63fbf078-1815-4e37-9614-b60ce7947805.1.tar"/><ADSite Name="Default-First-Site-Name"/><IPSubnets><IPSubnet Address="10.10.25.128"/><IPSubnet Address=""/></IPSubnets><Metric Value=""/><Version>8239</Version><Capabilities SchemaVersion="1.0"><Property Name="SSLState" Value="0"/></Capabilities><ServerRemoteName>PS1DP.contoto.lab</ServerRemoteName><DPType>SERVER</DPType><Windows Trust="1"/><Locality>LOCAL</Locality></LocationRecord></LocationRecords></Site><Site><MPSite SiteCode="MEH" MasterSiteCode="MEH" SiteLocality="LOCAL"/><LocationRecords/></Site></Sites><RelatedContentIDs/></ContentLocationReply>
通过位置服务在客户端接收响应。
LocationServices.log:
01-13-2016 17:56:42.510    LocationServices    2752 (0xac0)    ContentLocationReply : <ContentLocationReply SchemaVersion="1.00" ContentFlags="200960" HashAlgorithm="32780" AlgorithmPreference="4" Hash="6FB054E0532351D888291FF52F74E0085940AEA90EC85A5B999B6CFBE94663FC" ExcludeFileListHash="" RelatedContentID=""><ContentInfo PackageFlags="32"><ContentHashValues><Hash Algorithm="32780" HashString="6FB054E0532351D888291FF52F74E0085940AEA90EC85A5B999B6CFBE94663FC" HashPreference="4"/></ContentHashValues></ContentInfo><Sites><Site><MPSite SiteCode="MEH" MasterSiteCode="MEH" SiteLocality="LOCAL" IISPreferedPort="80" IISSSLPreferedPort="443"/><LocationRecords><LocationRecord><URL Name="http://PS1DP.contoto.lab/SMS_DP_SMSPKG$/Content_63fbf078-1815-4e37-9614-b60ce7947805.1" Signature="http://PS1DP.contoto.lab/SMS_DP_SMSSIG$/Content_63fbf078-1815-4e37-9614-b60ce7947805.1.tar"/><ADSite Name="Default-First-Site-Name"/><IPSubnets><IPSubnet Address="10.10.25.128"/><IPSubnet Address=""/></IPSubnets><Metric Value=""/><Version>8239</Version><Capabilities SchemaVersion="1.0"><Property Name="SSLState" Value="0"/></Capabilities><ServerRemoteName>PS1DP.contoto.lab</ServerRemoteName><DPType>SERVER</DPType><Windows Trust="1"/><Locality>LOCAL</Locality></LocationRecord></LocationRecords></Site><Site><MPSite SiteCode="MEH" MasterSiteCode="MEH" SiteLocality="LOCAL"/><LocationRecords/></Site></Sites><RelatedContentIDs/></ContentLocationReply>
位置服务分析要获得它将发送到传送的内容管理器的分发点列表的回复。
LocationServices.log:
01-13-2016 17:56:42.526    LocationServices    2752 (0xac0)    Distribution Point='http://PS1DP.contoto.lab/SMS_DP_SMSPKG$/Content_GUID.1', Locality='LOCAL', DPType='SERVER', Version='8239', Capabilities='<Capabilities SchemaVersion="1.0"><Property Name="SSLState" Value="0"/></Capabilities>', Signature='http://PS1DP.contoto.lab/SMS_DP_SMSSIG$/Content_GUID.1.tar', ForestTrust='TRUE',
内容传输管理器仍然存在的作业创建的下载二进制文件的位置。
ContentTransferManager.log:
01-13-2016 17:56:42.526    ContentTransferManager    2752 (0xac0)    Persisted locations for CTM job {ID}: (LOCAL) http://PS1DP.contoto.lab/SMS_DP_SMSPKG$/Content_GUID.1
内容传输管理器然后创建用于数据传输服务下载二进制文件的作业。
ContentTransferManager.log:
01-13-2016 17:56:42.541    ContentTransferManager    2752 (0xac0)    CTM job {ID} (corresponding DTS job {ID}) started download from 'http://PS1DP.contoto.lab/SMS_DP_SMSPKG$/Content_GUID.1' for full content download. 
数据传输服务生成 URL 的作业,并开始执行下载的 BITS 作业。
DataTransferService.log:
01-13-2016 17:56:42.541    DataTransferService    2752 (0xac0)    Sending PROPFIND request using URL http://PS1DP.contoto.lab:80/SMS_DP_SMSPKG$/Content_GUID.1 01-13-2016 17:56:42.557    DataTransferService    2752 (0xac0)    UpdateURLWithTransportSettings(): NEW URL - http://ps1dp.contoto.lab:80/SMS_DP_SMSPKG$/Content_GUID.1/sccm?/ConfigMgrTools.msi 01-13-2016 17:56:42.573    DataTransferService    2752 (0xac0)    Starting BITS download for DTS job '{ID}'. 01-13-2016 17:56:42.573    DataTransferService    2752 (0xac0)    BITSHelper: Full source path to be transferred = http://PS1DP.contoto.lab:80/SMS_DP_SMSPKG$/Content_GUID.1/sccm?/ConfigMgrTools.msi
数据传输服务完成下载,并标记该作业成功。
DataTransferService.log:
01-13-2016 17:56:42.666    DataTransferService    2748 (0xabc)    Job: {ID}, Total Files: 1, Transferred Files: 0, Total Bytes: 5664768, Transferred Bytes: 262144 01-13-2016 17:56:42.869    DataTransferService    1568 (0x620)    Job: {ID}, Total Files: 1, Transferred Files: 1, Total Bytes: 5664768, Transferred Bytes: 5664768 01-13-2016 17:56:42.885    DataTransferService    2752 (0xac0)    DTSJob {ID} in state 'NotifiedComplete'. 01-13-2016 17:56:42.885    DataTransferService    2752 (0xac0)    DTS job {ID} has completed: Status : SUCCESS, 
内容传输管理器然后清理 DTS 作业和 CA 开始验证下载的二进制文件的哈希值。
ContentTransferManager.log:
01-13-2016 17:56:42.901    ContentTransferManager    2728 (0xaa8)    CCTMJob::_Cleanup(JobID={ID}) - Cancelling DTS job  with provider <default> 01-13-2016 17:56:42.901    ContentAccess    2348 (0x92c)    Using hash from LS Content Information: HashString 
CAS.log:
01-13-2016 17:56:42.948    ContentAccess    2348 (0x92c)    Computed hash: HashString 01-13-2016 17:56:42.948    ContentAccess    2348 (0x92c)    Success hash verification with hash algorithm = 32780, preference : 4 
内容访问然后将内容映射到 CCM 缓存现在存储下载的二进制文件的位置。
CAS.log:
01-13-2016 17:56:42.948    ContentAccess    2348 (0x92c)    Saved Content ID Mapping Content_GUID.1, C:\WINDOWS\ccmcache\1 01-13-2016 17:56:42.948    ContentAccess    2348 (0x92c)    CacheManager: ADD new cache entry for id:Content_GUID Version : 1 Size : 5532K RefCount:1 LastRef Minutes : 0 State : ACTIVE PinDuration : 0 Location : C:\WINDOWS\ccmcache\1 01-13-2016 17:56:42.948    ContentAccess    2348 (0x92c)    Created a New Cache Item at location C:\WINDOWS\ccmcache\1 for 1.Content_GUID Size 5532 KB bytes 01-13-2016 17:56:42.948    ContentAccess    2348 (0x92c)    Download succeeded for download request {GUID} 
CI 状态存储区更新下载内容成功的 Ci CIEnforcementStateCI 代理,然后重新拾取并开始实施 CIs。
CIAgent.log:
01-13-2016 17:56:43.041    CIAgent    2316 (0x90c)    CIAgentJob({ID}): TransitionState(From=StateDownloadingContents, To=StateEnforcingCIs) for Event=Transition 01-13-2016 17:56:43.041    CIAgent    2728 (0xaa8)    CIAgentJob({ID}): EnforceCIs 01-13-2016 17:56:43.041    CIAgent    2728 (0xaa8)    {ID} - Initiating Enforce tasks. 01-13-2016 17:56:43.073    CIAgent    2728 (0xaa8)    Job({ID}) : Performing : Task(ScopeId_GUID/RequiredApplication_GUID.10.Enforce) 01-13-2016 17:56:43.073    CIAgent    2728 (0xaa8)    Job({ID}) : Performing : Task(ScopeId_GUID/Application_GUID.10.Enforce) 01-13-2016 17:56:43.073    CIAgent    2728 (0xaa8)    Job({ID}) : Performing : Task(ScopeId_GUID/DeploymentType_GUID.6.Enforce)
 

现在,到强制执行的标准应用程序安装的组件和流将利用应用程序的安装工作: AppDiscoveryAppEnforce

AppDiscovery发现应用程序并将其属性。
AppDiscovery.log:
ActionType - Install,Max execute time = 120 minutes for AppDT "ConfigMgr 2012 Toolkit R2 - Windows Installer (*.msi file)" [ScopeId_GUID/DeploymentType_GUID], Revision - 6 
AppEnforce现在开始安装强制执行应用程序部署类型的检测。它在 MSI 的情况下使用产品代码来检查是否已安装。假定的检测状态是不会发现,安装将继续进行。
AppEnforce.log:
01-13-2016 17:56:43.104    AppEnforce    2216 (0x8a8)    +++ Starting Install enforcement for App DT "ConfigMgr 2012 Toolkit R2 - Windows Installer (*.msi file)" ApplicationDeliveryType - ScopeId_GUID/DeploymentType_GUID, Revision - 6, ContentPath - C:\WINDOWS\ccmcache\1, Execution Context - Any 01-13-2016 17:56:44.666    AppEnforce    2216 (0x8a8)    +++ Application not discovered. [AppDT Id: ScopeId_GUID/DeploymentType_GUID, Revision: 6] 
现在AppEnforce将通过分析命令行准备实施环境和其他安装参数,然后准备工作目录并执行命令行。
AppEnforce.log:
01-13-2016 17:56:44.682    AppEnforce    2216 (0x8a8)    App enforcement environment:  Context: Machine   Command line: msiexec /i "ConfigMgrTools.msi" /q /L*V "C:\Windows\CCM\Logs\MSI_install.log"   Allow user interaction: No   UI mode: 0   User token: null Session   Id: 4294967295 Content   path: C:\WINDOWS\ccmcache\1 Working directory: 01-13-2016 17:56:44.682    AppEnforce    2216 (0x8a8)    Prepared working directory: C:\WINDOWS\ccmcache\1 01-13-2016 17:56:44.713    AppEnforce    2216 (0x8a8)    Parsed CmdLine: msiexec /i "ConfigMgrTools.msi" /q /L*V "C:\Windows\CCM\Logs\MSI_install.log" 01-13-2016 17:56:44.713    AppEnforce    2216 (0x8a8)    Found executable file msiexec with complete path C:\WINDOWS\system32\msiexec.exe 01-13-2016 17:56:45.666    AppEnforce    2216 (0x8a8)    Executing Command line: "C:\WINDOWS\system32\msiexec.exe" /i "ConfigMgrTools.msi" /q /L*V "C:\Windows\CCM\Logs\MSI_install.log" /qn with system context 01-13-2016 17:56:44.729    AppEnforce    2216 (0x8a8)    Parsed CmdLine: "C:\WINDOWS\system32\msiexec.exe" /i "ConfigMgrTools.msi" /q /L*V "C:\Windows\CCM\Logs\MSI_install.log" /qn 01-13-2016 17:56:45.666    AppEnforce    2216 (0x8a8)    Executing Command line: "C:\WINDOWS\system32\msiexec.exe" /i "ConfigMgrTools.msi" /q /L*V "C:\Windows\CCM\Logs\MSI_install.log" /qn with system context 
在这一点,假设登录为 MSI 安装,msiexec.exe 接管并执行安装。
MSI Logging.log:
=== Verbose logging started: 1/13/2016  17:56:45  Build type: SHIP UNICODE 5.00.9600.00  Calling process: C:\WINDOWS\system32\msiexec.exe === 
一旦安装完毕,msiexec.exe 将将返回代码发送到安装应用程序,它将设置需要 TS 环境变量指示成功,并将其再报告成功安装为AppEnforce
AppEnforce.log:
MSI (c) (BC:EC) [17:56:47:604]: MainEngineThread is returning 0 01-13-2016 17:56:47.979    InstallApplication    1384 (0x568)    NotifyProgress received: 1 (Application is installed successfully ) 01-13-2016 17:56:48.010    InstallApplication    1608 (0x648)    Installation job completed with exit code 0x00000000 01-13-2016 17:56:48.010    InstallApplication    1608 (0x648)    Execution status received: 1 (Application is installed successfully ) 01-13-2016 17:56:48.010    InstallApplication    1608 (0x648)    Setting TSEnv variable '_TSAppInstallStatus'='Success' 01-13-2016 17:56:48.010    InstallApplication    1608 (0x648)    Setting TSEnv variable 'SMSTSInstallApplicationJobID__ScopeId_GUID/Application_GUID'='' 01-13-2016 17:56:48.010    InstallApplication    1608 (0x648)    Step 2 out of 2 complete 01-13-2016 17:56:48.010    InstallApplication    1608 (0x648)    Sending success status message 
AppEnforce匹配成功的代码与应用程序的部署类型的属性中的返回代码选项卡中指定的表。然后,执行重新检测并标记安装实施完成。
AppEnforce.log:
01-13-2016 17:56:47.620    AppEnforce    2216 (0x8a8)    Looking for exit code 0 in exit codes table... 01-13-2016 17:56:47.620    AppEnforce    2216 (0x8a8)    Found a match in the success exit codes. 01-13-2016 17:56:47.620    AppEnforce    2216 (0x8a8)    Matched exit code 0 to a Success entry in exit codes table. 01-13-2016 17:56:47.620    AppEnforce    2216 (0x8a8)    Performing detection of app deployment type ConfigMgr 2012 Toolkit R2 - Windows Installer (*.msi file)(ScopeId_GUID/DeploymentType_GUID, revision 6) for system. 01-13-2016 17:56:47.635    AppEnforce    2216 (0x8a8)    +++ Discovered application [AppDT Id: ScopeId_GUID/DeploymentType_GUID, Revision: 6] 01-13-2016 17:56:47.635    AppEnforce    2216 (0x8a8)    ++++++ App enforcement completed (4 seconds) for App DT "ConfigMgr 2012 Toolkit R2 - Windows Installer (*.msi file)" [ScopeId_GUID/DeploymentType_GUID], Revision: 6, User SID: ] ++++++ 
 
 

这次CI 代理已检查与CI 状态存储CIs 的强制状态DCM 代理就已开始使用相同,监视进度和登录 DCMAgent.log。安装完毕并检测已将其标记为安装, CI 状态存储将检测现有的 CI 的状态已从强制更改为EnforcementSuccess

CIStateStore.log:
01-13-2016 17:56:47.667    CIStateStore    2728 (0xaa8)    An existing CI state is changed 01-13-2016 17:56:47.667    CIStateStore    2728 (0xaa8)    [ScopeId_GUID/DeploymentType_GUID:6] CIEnforceState changed: Enforcing --> EnforcementSuccess 01-13-2016 17:56:47.729    CIStateStore    2348 (0x92c)    An existing CI state is changed 01-13-2016 17:56:47.776    CIStateStore    2728 (0xaa8)    [ScopeId_GUID/RequiredApplication_GUID:10] CIEnforceState changed: Enforcing --> EnforcementSuccess 
一旦收到来自CI 状态存储,此新的强制状态CI 代理将标记为已完成的作业,并过渡到报告强制状态。
CIAgent.log:
01-13-2016 17:56:47.823    CIAgent    2348 (0x92c)    JobTaskHelper - Initiating next task if needed 01-13-2016 17:56:47.823    CIAgent    2348 (0x92c)    Job({ID}): Already Completed : Task(ScopeId_GUID/DeploymentType_GUID.6.Enforce) 01-13-2016 17:56:47.823    CIAgent    2348 (0x92c)    Job({ID}): Already Completed : Task(ScopeId_GUID/Application_GUID.10.Enforce) 01-13-2016 17:56:47.823    CIAgent    2348 (0x92c)    Job({ID}): Already Completed : Task(ScopeId_GUID/RequiredApplication_GUID.10.Enforce) 01-13-2016 17:56:47.838    CIAgent    2316 (0x90c)    CIAgentJob({ID}): CAgentJob::HandleEvent(Event=Transition, CurrentState=StateEnforcementReporting) 
实施报告涉及检查法规遵从性状态的应用程序 CI CI 状态存储。一旦它被设置为标准, CI 代理将转换为已完成并清理它的作业。
CIStateStore.log:
01-13-2016 17:56:47.932    CIStateStore    2316 (0x90c)    [ScopeId_GUID/RequiredApplication_GUID:10] CIState changed: NonCompliant --> Compliant 
CIAgent.log :
01-13-2016 17:56:47.963    CIAgent    2728 (0xaa8)    CIAgentJob({ID}): CAgentJob::HandleEvent(Event=Transition, CurrentState=Completed) 01-13-2016 17:56:47.963    CIAgent    2728 (0xaa8)    CIAgentJob({ID}): CAgentJob::HandleEvent(Event=Transition, CurrentState=Completed) 01-13-2016 17:56:47.963    CIAgent    2728 (0xaa8)    CIAgentJob({ID}): Deleting CIAgent Job 01-13-2016 17:56:47.963    CIAgent    2728 (0xaa8)    Deleted CIAgent job {ID} 
DCM 代理将成功通知传递回安装应用程序(smsappinstall.exe) 过程和 DCM 代理清理工作。
DCMAgent.log:
01-13-2016 17:56:47.979    DCMAgent    1384 (0x568)    CAppMgmtSDK::GetEvaluationState ScopeId_GUID/RequiredApplication_GUID.10 = Enforced 01-13-2016 17:56:47.979    DCMAgent    2316 (0x90c)    DCMAgentJob({ID}): CDCMAgentJob::HandleEvent(Event=NotifyProgress, CurrentState=Success) 01-13-2016 17:56:47.979    InstallApplication    1608 (0x648)    Received job completion notification from DCM Agent 01-13-2016 17:56:47.995    DCMAgent    2348 (0x92c)    CDCMAgentJobMgr::DeleteJob - Request to delete DCM Agent job {ID} 
最后,回任务序列管理器更新相应的 TS 环境变量,并继续在序列中的下一个任务返回的退出代码。
SMSTS.log:
01-13-2016 17:56:48.073    TSManager    2176 (0x880)    Process completed with exit code 0 01-13-2016 17:56:48.073    TSManager    2176 (0x880)    Successfully completed the action (Install Application) with the exit win32 code 0 
 
 

执行安装的应用程序任务时有三个可能故障点。每个下面列出了每个的故障排除步骤的链接。

任务序列管理器

根据流程和执行的任务序列,没有在此步骤中安装应用程序的过程期间出现故障的可能性很低。这是因为在这种情况下,任务序列管理器已成功分析 XML 的任务序列,已指令指针设置为的当前任务。此外,任务序列开始时下载策略的任务序列。结果返回到任务序列并存储在任务序列环境使用保存在磁盘上为 TSEnv.dat 的变量中。
根据了解的情况,还有一些事项需要注意研究这些问题时在哪里可能有一条附加的信息泄密,可以用于诊断错误条件。
MP_GetPolicy将记录此活动。若要在部署 ID任务序列 IDMP_GetPolicy日志搜索,找到此请求。
01-13-2016 17:32:54.579    MP_GetPolicy_ISAPI    12688 (0x3190)    MP GP: Query String Before Decode: MEH20009-MEH0000A-6F6BCC28.15_00 01-13-2016 17:32:54.579    MP_GetPolicy_ISAPI    12688 (0x3190)    MP GP: ID : MEH20009-MEH0000A-6F6BCC28 01-13-2016 17:32:54.579    MP_GetPolicy_ISAPI    12688 (0x3190)    MP GP: Initializing request from client GUID:ClientGUID. 
执行下列存储的过程检索策略正文:
exec MP_GetPolicyBodyAfterAuthorization  

任务序列变量

策略实体请求的结果返回到计算机,并保存在任务序列环境 (TSEnv.dat)。任务序列和所有依赖策略策略实体存储在此处使用变量。任务序列管理器将记录它正在读的环境中很大一部分。

下一部分通常是次错误,但很少面错误发生的位置。安装应用程序组件是安装应用程序的顶级流程和从它调用的组件列表中的任何错误将回滚到它。实际失败的原因很有可能在后续的步骤中,回报给安装的应用程序任务,从而导致安装应用程序任务返回一般错误代码失败。时常是原因绝大部分安装应用程序任务返回以下错误:
InstallApplication    296 (0x128)    App install failed. InstallApplication    296 (0x128)    Install application action failed: 'APP NAME HERE'. Error Code 0x80004005 
鉴于此,以下是最常见的错误返回给一些项目以查看每个安装的应用程序任务的列表。
故障类型要检查
SMSTS 日志显示InstallApplication 2740 (0xab4) 策略评估失败,hr = 0x87d00269'所需找不到管理点 (错误: 87D 00269此错误指示该计算机不能访问 (与通信) 的管理点。请确认您是否使用了 MP 的自定义网站。如果是这样,了解如何创建自定义网站在 Internet Information Services (IIS) ,并确保已置于承载该网站的根文件夹上的默认文档 (default.htm) 一份。另外,请确保未在默认网站中启用 HTTP 重定向。
SMTS 日志显示InstallApplication 3248 (0xcb0) 策略评估失败,hr = 0x80004005确保您在配置管理器的安装有最新的更新。
SMSTS 日志显示安装静态应用程序失败,hr = 0x87d00267确保已安装最新版本的 ConfigMgr 2012 R2 SP1。
SMSTS 日志显示' 收到的执行状态: 24 (应用程序下载失败)检查https://support.microsoft.com/en-us/kb/3007095 ,并确保您保持最新 (截至此编写,ConfigMgr 2012 R2 CU4、 ConfigMgr 2012 R2 SP1 或当前版本安装了最新的更新的配置管理器1511 或 1602年)。
SMTS 日志显示安装应用程序操作失败: 应用程序名称此处。错误代码 0x80004005'查看 CCMExec.log 以确认 SMS 代理主机已启动没有错误。

接下来的步骤是协同工作的多个组件的组合。通过创建本地计算CI 商店(CCMStore.sdf) 通过 CIs 的存在或将其标记为找不到作业情况下完成工作。这一步,当DataTransferService使用 MP 使用后台智能服务 (BITS) 和 HTTP 通信请求 CIs 并下载它们,下一阶段将会可能产生很多的问题。
有关这些步骤的失败可能产生如下所示:
  1. 在数据库中,数据错误返回损坏 CI 或 SDM 文件包数据。过期的版本等。
  2. 访问本地执行的任务序列的计算机上的策略名称空间的 WMI 问题。
  3. 与 MP 或数据库通信时出现故障。
  4. BITS 作业失败。
  5. 网络相关的错误、 下载等。
  6. IIS 的 SMS_MP vDir (SMS_CCM\SMS_MP 文件夹) 的问题。
  7. 完成安装后的计算错误。

检查下面的日志文件,以获得线索在这一过程出现故障:

  • CIDownloader.log
  • DCMAgent.log
  • CIStore.log
  • CIStateStore.log
  • DataTransferService.log

此时任务序列中,我们已经请求并且下载几次的内容。这是使用外部任务序列的标准软件/应用程序安装中使用的标准内容的请求/响应过程来完成。因为任务序列已经使用这些过程成功那里可能性很低,它们的失败在本任务期间。但是,应避免问题的发生与内容的位置请求或访问权限,查看下面的日志文件,以获得线索过程失败的位置:

  • CIAgent.log
  • CAS.log
  • ContentTransferManager.log
  • DataTransferService.log
  • LocationServices.log
  • MP_Location.log

已安装的应用程序必须满足您执行以下操作条件:
  • 应用程序必须是一种部署类型的 Windows 安装程序或脚本的安装程序。请注意,Windows 应用程序封装 (.appx 文件) 部署类型不受支持。
  • 它必须在本地系统帐户而不是用户帐户下运行。
  • 它必须与桌面交互。该程序必须运行无提示或无人参与的模式。
  • 它必须启动自行重新启动。应用程序必须使用标准的重新启动代码 (3010 退出代码) 请求重新启动计算机。这将确保该任务序列的步骤将正确处理重新启动。如果应用程序无法返回 3010 退出代码,则基础的任务序列引擎的执行重新启动。在重新启动后的任务序列自动继续。
若要收集关于失败的原因的其他信息,请检查 MSI 日志。以下文章可以提供附加信息,并具有良好基础的 MSI 日志故障排除信息:
下面文章具有产品特定的信息,以及故障排除技巧一些好常规 MSI 日志:
如果您发现 MSI 安装程序返回代码表示出现故障,请参阅常见的 MSI 安装程序返回代码或下表。
返回代码代码类型说明
0成功无需重新启动
1601 年 错误 安装问题
1602 错误 用户已取消
出现 1603 错误 致命错误
1605 错误 此操作只是对当前已安装的产品有效。
1618 错误 另一安装正在进行。
1639 错误 无效的命令行参数。
1641成功硬重新启动;安装程序已开始重新启动。
3010成功软重启;需要重新启动才能完成安装。

有问题的部署通常将报告监视工作区中的错误。当您单击部署节点,然后单击错误选项卡,您可以看到这些。如何解决这些错误的信息,请参阅以下:
祝贺您 !您安装的应用程序进程的问题已得到解决。
有关安装的应用程序进程或任务序列和操作系统部署 (OSD) 的其他信息,请参阅:
您还可以过帐问题在我们的配置管理器 2012年支持论坛中的操作系统部署此处:
请访问我们的博客的所有最新的新闻、 信息和技术的提示在 Microsoft 系统中心配置管理器: