Seguimiento de la evaluación del cumplimiento de actualizaciones de software

Se aplica a:   Configuration Manager

Para poder implementar actualizaciones de software en clientes, los clientes deben ejecutar un examen de cumplimiento de actualizaciones de software. Se recomienda que dé tiempo suficiente a los clientes para completar el examen y notificar los resultados de cumplimiento, de modo que pueda revisar los resultados de cumplimiento e implementar solo las actualizaciones necesarias en los clientes.

Cuando se instala y sincroniza el punto de actualización de software (SUP), se crea una directiva de equipo en todo el sitio que informa a los equipos cliente de que las actualizaciones de software de Configuration Manager se habilitaron para el sitio. Cuando un cliente recibe la directiva de equipo, se programa un examen de evaluación de cumplimiento para iniciarse aleatoriamente en las próximas dos horas. Cuando se inicia el examen, un proceso de agente de cliente de actualizaciones de software borra el historial del examen, envía una solicitud para buscar el servidor de Windows Server Update Services (WSUS) que debe usarse para el examen y actualiza la directiva de grupo local con la ubicación de WSUS.

Para obtener información general sobre el proceso de evaluación de cumplimiento, consulte Evaluación de cumplimiento de actualizaciones de software.

Directiva de examen de actualización de software

Antes de que un cliente pueda intentar buscar actualizaciones, necesita la directiva UpdateSource. Esta directiva se crea en el servidor del sitio después de una sincronización correcta del SUP. En esta sección se describe cómo se crea esta directiva mediante el siguiente proceso:

Paso 1: Después de una sincronización correcta, WSyncMgr actualiza la versión de contenido y la hora de la última sincronización en la base de datos.

Después de realizar una sincronización correcta en un sitio principal, WSyncMgr actualiza la versión de hora y contenido de la última sincronización en la base de datos para el SUP. Para ello, ejecute el spProcessSUMSyncStateMessage procedimiento almacenado. En el siguiente ejemplo SQL Server Profiler seguimiento, este procedimiento almacenado se ejecuta para actualizar la versión de contenido a 36:

declare @Error int; exec spProcessSUMSyncStateMessage N'2014-01-17 17:59:54', N'PS1', N'{C2D17964-BBDD-4339-B9F3-12D7205B39CC}', 1, 0, '36', @Error output, N'PS1SITE. CONTOSO. COM'

Paso 2: SMSDBMON se desencadena y coloca un . Archivo STN en policypv.box

spProcessSUMSyncStateMessage actualiza la Update_SyncStatus tabla con la nueva versión de contenido y la hora de sincronización. Esta actualización de la Update_SyncStatus tabla desencadena SMSDBMON para colocar un <UpdateSource_UniqueID> archivo . El archivo STN (STN significa notificación de la herramienta de examen) en policypv.box para indicar un cambio en la definición de la herramienta de examen. Los siguientes elementos se registran en SMSDBMON.log:

RCV: UPDATE on Update_SyncStatus for UpdSyncStatus_iu [{C2D17964-BBDD-4339-B9F3-12D7205B39CC}][46680] SMS_DATABASE_NOTIFICATION_MONITOR
SND: Dropped E:\ConfigMgr\inboxes\policypv.box { C2D17964-BBDD-4339-B9F3-12D7205B39CC}. STN (distinto de cero) [46680] SMS_DATABASE_NOTIFICATION_MONITOR

Paso 3: El proveedor de directivas crea o actualiza la directiva UpdateSource en la base de datos

El <UpdateSource_UniqueID> archivo . El archivo STN notifica al proveedor de directivas que debe activar y actualizar la directiva UpdateSource en la base de datos.

Los siguientes elementos se registran en PolicyPv.log:

Se encontró {C2D17964-BBDD-4339-B9F3-12D7205B39CC}. STN SMS_POLICY_PROVIDER
Se agregó el identificador de la herramienta de examen {C2D17964-BBDD-4339-B9F3-12D7205B39CC} SMS_POLICY_PROVIDER
Agregar para eliminar lista: E:\ConfigMgr\inboxes\policypv.box { C2D17964-BBDD-4339-B9F3-12D7205B39CC}. STN SMS_POLICY_PROVIDER

En SQL Server Profiler seguimiento:

select PolicyID, PolicyAssignmentID, SourceCRC, PADBID from SettingsPolicy where SourceID = N'PS1' and SourceType = N'UpdateSource'

select Version from Policy where PolicyID = N'{d0855677-b0a6-4e33-9bd5-7b0d06f0a2be}'
IF EXISTS (select PolicyID from Policy where PolicyID = N'{d0855677-b0a6-4e33-9bd5-7b0d06f0a2be}') update Policy set Version = N'40.00' where PolicyID = N'{d0855677-b0a6-4e33-9bd5-7b0d06f0a2be}' Else insert Policy (PolicyID, Version) values (N'{d0855677- b0a6-4e33-9bd5-7b0d06f0a2be}', N'40,00')

exec sp_describe_undeclared_parameters N'UPDATE Policy SET Body = @P1 where PolicyID = N''{d0855677-b0a6-4e33-9bd5- 7b0d06f0a2be}'''
IF EXISTS (select PADBID from PolicyAssignment where PADBID = 16777218) update PolicyAssignment set Version = N'40.00', InProcess = 1 , BodyHash = null where PADBID = 16777218 ELSE insert PolicyAssignment (PolicyAssignmentID, PADBID, Version, Valores policyID (N'{375c8020-3cae-4736-89ca-ccf1ce6e3709}', 16777218, N'40,00', N'{d0855677-b0a6-4e33-9bd5-7b0d06f0a2be}')

exec sp_describe_undeclared_parameters N'UPDATE PolicyAssignment SET Body = @P1 where PADBID = 16777218'

update PolicyAssignment set InProcess = 0, BodySignature = N' <BodySignatureTruncated> ', TombstoneBodySignature = N' <TombstoneBodySignatureTruncated> ', HashAlgOID = N'1.2.840.113549.1.1.11', HashAlgId = 32780, BodyHash = N' <BodyHashTruncated> ', TombstoneBodyHash = N' <TombstoneBodyHashTruncated> ' donde PADBID = 16777218

Para ver esta directiva en la base de datos, ejecute la siguiente consulta:

SELECT CONVERT(XML, Body, 1), * FROM Policy WHERE PolicyID = (SELECT PolicyID FROM SettingsPolicy WHERE SourceType = 'UpdateSource')

Esta directiva contiene la versión de contenido del servidor de actualización que se usa para buscar la ubicación del equipo WSUS en el que el cliente puede analizar. Después de crear o actualizar esta directiva en la base de datos, los clientes obtienen la directiva UpdateSource nueva o actualizada durante el siguiente ciclo de evaluación de directiva.

Paso 4: La directiva se descarga y evalúa en el cliente

Los siguientes elementos se registran en PolicyAgent.log en el cliente:

Descarga iniciada correctamente de la directiva 'CCM_Policy_Policy5.PolicyID="{d0855677-b0a6-4e33-9bd5- 7b0d06f0a2be}",PolicySource="SMS:PS1",PolicyVersion="40.00"' PolicyAgent_ReplyAssignments
Directiva 'CCM_Policy_Policy5.PolicyID="{d0855677-b0a6-4e33-9bd5-7b0d06f0a2be}",PolicyVersion="40.00",PolicySource="SMS:PS1"' compilada PolicyAgent_PolicyDownload

En PolicyEvaluator.log en el cliente:

Actualización de directivas CCM_Policy_Policy5.PolicyID="{d0855677-b0a6-4e33-9bd5- 7b0d06f0a2be}",PolicySource="SMS:PS1",PolicyVersion="40.00" PolicyAgent_PolicyEvaluator
Directiva aplicada CCM_Policy_Policy5.PolicyID="{d0855677-b0a6-4e33-9bd5- 7b0d06f0a2be}",PolicySource="SMS:PS1",PolicyVersion="40.00" PolicyAgent_PolicyEvaluator
El estado de directiva para [CCM_Policy_Policy5.PolicyID="{d0855677-b0a6-4e33-9bd5-7b0d06f0a2be}",PolicyVersion="40.00",PolicySource="SMS:PS1"] es actualmente [Activo] PolicyAgent_PolicyEvaluator

Para encontrar la PolicyID directiva UpdateSource en un cliente, ejecute la siguiente consulta WQL:

  • Espacio de nombres: ROOT\ccm\Policy\Machine\RequestedConfig
  • Consulta: SELECT * FROM CCM_Policy_Policy5 WHERE PolicyCategory = 'UpdateSource'

Una vez compilada esta directiva en el cliente, la información de UpdateSource se almacena en la siguiente clase WMI:

Espacio de nombres: ROOT\ccm\Policy\Machine\ActualConfig
Clase: CCM_UpdateSource

Sugerencia

Si compara la instancia de clase en el cliente con el cuerpo XML recuperado de la tabla de directivas, observará que el contenido del XML tiene un aspecto idéntico CCM_UpdateSource a la instancia.

Paso 5: se notifica al agente de examen que se ha actualizado la directiva de UpdateSource

Los siguientes elementos se registran en ScanAgent.log en el cliente:

Dentro de CScanAgent::Notify() ScanAgent
CScanAgent::OnPolicyChange- Policy InstanceModificationEvent notification received ScanAgent

Ubicación del servidor WSUS

Una vez que el cliente recibe la directiva UpdateSource, está listo para ejecutar un examen de cumplimiento de actualizaciones de software. En este punto, el cliente busca el equipo WSUS con la versión de contenido especificada en la directiva. Este proceso es muy similar al modo en que el cliente encuentra la ubicación de un punto de distribución para un paquete y una versión específicos.

Paso 1: El agente de examen crea una solicitud de examen basada en la directiva disponible

Los siguientes elementos se registran en ScanAgent.log:

CScanAgent::ScanByUpdates: directiva disponible para UpdateSourceID={C2D17964-BBDD-4339-B9F3-12D7205B39CC} ContentVersion=38 ScanAgent
CScanAgent::ScanByUpdates- Directiva agregada a final ScanRequest List UpdateSourceID={C2D17964-BBDD-4339-B9F3-12D7205B39CC}, Policy-ContentVersion=38, Required-ContentVersion=38 ScanAgent

Paso 2: el agente de examen envía una solicitud para la ubicación wsus a los servicios de ubicación

El agente de análisis ahora solicita la ubicación wsus de los servicios de ubicación y espera una respuesta. En este ejemplo, el identificador de solicitud de ubicación es {C2BB9710-C548-49D0-9DF8-5F9CFC5F3862}. Los siguientes elementos se registran en ScanAgent.log:

Dentro de CScanAgent::P exploressScanRequest() ScanAgent
CScanJobManager::Scan- entered ScanAgent
ScanJob({4CD06388-D509-46E4-8C00-75909EDD9EE8}): CScanJob::Initialize- entered ScanAgent
ScanJob({4CD06388-D509-46E4-8C00-75909EDD9EE8}): CScanJob::Scan- entered ScanAgent
ScanJob({4CD06388-D509-46E4-8C00-75909EDD9EE8}): CScanJob::RequestLocations- entered ScanAgent
- - - - - -Requesting WSUS Server Locations from LS for {C2D17964-BBDD-4339-B9F3-12D7205B39CC} version 38 ScanAgent
- - - - - -Id. de solicitud de ubicación = {C2BB9710-C548-49D0-9DF8-5F9CFC5F3862} ScanAgent
CScanAgentCache::P ersistInstanceInCache- Instancia persistente CCM_ScanJobInstance ScanAgent
ScanJob({4CD06388-D509-46E4-8C00-75909EDD9EE8}): - - - - - -Ubicaciones solicitadas para ScanJobID={4CD06388-D509-46E4-8C00-75909EDD9EE8} (LocationRequestID={C2BB9710-C548-49D0-9DF8-5F9CFC5F3862}), procesará la solicitud de examen una vez que las ubicaciones estén disponibles. ScanAgent

Cada trabajo de examen se almacena en WMI en la CCM_ScanJobInstance clase:

Espacio de nombres: root\CCM\ScanAgent
Clase: CCM_ScanJobInstance

Paso 3: Servicios de ubicación envía la solicitud de ubicación al punto de administración

Servicios de ubicación crea una solicitud de ubicación y la envía al punto de administración. El identificador del paquete para una solicitud de ubicación de WSUS es el identificador único de UpdateSource. Los siguientes elementos se registran en LocationServices.log:

CCCCCISUSLocation::GetLocationsAsyncEx LocationServices
Intentar conservar la solicitud de ubicación de WSUS para ContentID='{C2D17964-BBDD-4339-B9F3-12D7205B39CC}' y ContentVersion='38' LocationServices
LocationServices de solicitud de ubicación de WSUS persistente
Intentar enviar la solicitud de ubicación wsus para ContentID='{C2D17964-BBDD-4339-B9F3-12D7205B39CC}' LocationServices
WSUSLocationRequest : <WSUSLocationRequest SchemaVersion="1.00"> <Content ID="{C2D17964-BBDD-4339-B9F3- 12D7205B39CC}" Version="38"/> <AssignedSite SiteCode="PS1"/> <ClientLocationInfo OnInternet="0"> <ADSite Name="CM12-R2- PS1"/> <Forest Name="CONTOSO.COM"/> <Domain Name="CONTOSO.COM"/> <IPAddresses> <IPAddress SubnetAddress="192.168.2.0" Address="192.168.2.62"/> </IPAddresses> </ClientLocationInfo> </WSUSLocationRequest> LocationServices
Solicitud de ubicación creada y enviada "{C2BB9710-C548-49D0-9DF8-5F9CFC5F3862}" para el paquete {C2D17964-BBDD-4339-B9F3- 12D7205B39CC} LocationServices

Paso 4: La mensajería CCM envía el mensaje de solicitud de ubicación al punto de administración

Los siguientes elementos se registran en CcmMessaging.log:

Enviar un mensaje asincrónico "{76453CC6-76BA-4B68-BE30-BA70754570BB}" a la cola saliente "mp:[http]mp_locationmanager" CcmMessaging
Enviar el mensaje saliente "{76453CC6-76BA-4B68-BE30-BA70754570BB}". Marcas 0x200, cuenta de remitente vacía CcmMessaging

Paso 5: El punto de administración analiza la solicitud, obtiene la ubicación wsus de la base de datos y envía una respuesta

El punto de administración analiza esta solicitud y llama al procedimiento almacenado para obtener MP_GetWSUSServerLocations las ubicaciones de WSUS de la base de datos. Los siguientes elementos se registran en MP_Location.log:

MP LM: Cuerpo del mensaje : <WSUSLocationRequest SchemaVersion="1.00"> <Content ID="{C2D17964-BBDD-4339-B9F3- 12D7205B39CC}" Version="38"/> <AssignedSite SiteCode="PS1"/> <ClientLocationInfo OnInternet="0"> <ADSite Name="CM12-R2- PS1"/> <Forest Name="CONTOSO.COM"/> <Domain Name="CONTOSO.COM"/> <IPAddresses> <IPAddress SubnetAddress="192.168.2.0" Address="192.168.2.62"/> </IPAddresses> </ClientLocationInfo> </WSUSLocationRequest> MP_LocationManager
MP LM: llamar a MP_GetWSUSServerLocations MP_LocationManager

En SQL Server Profiler seguimiento:

exec MP_GetMPSitesFromAssignedSite N'PS1'
exec MP_GetSiteInfoUnified N' <ClientLocationInfo OnInternet="0"> <ADSite Name="CM12-R2-PS1"/> <Forest Name="CONTOSO.COM"/> <Domain Name="CONTOSO.COM"/> <IPAddresses> <IPAddress SubnetAddress="192.168.2.0" Address="192.168.2.62"/> </IPAddresses> </ClientLocationInfo> '
exec MP_GetWSUSServerLocations N'{C2D17964-BBDD-4339-B9F3-12D7205B39CC}',N'38',N'PS1',N'PS1',N'0',N'CONTOSO. COM'

Después de obtener los resultados del procedimiento almacenado, el punto de administración envía una respuesta al cliente. Lo siguiente se registra en MP_Location.log:

MP LM: Cuerpo del mensaje de respuesta:
<WSUSLocationReply SchemaVersion="1.00"><Sites><Site><MPSite SiteCode="PS1"/><LocationRecords><LocationRecord WSUSURL="http://PS1SITE.CONTOSO.COM:8530" ServerName="PS1SITE.CONTOSO.COM" Version="38"/><LocationRecord WSUSURL="https://PS1SYS.CONTOSO.COM:8531" ServerName="PS1SYS.CONTOSO.COM" Version="38"/></LocationRecords></Site></Sites></WSUSLocationReply> MP_LocationManager

Paso 6: La mensajería CCM recibe la respuesta y la envía de vuelta a los Servicios de ubicación

El archivo CcmMessaging.log del cliente muestra que se ha recibido una respuesta. Este mensaje se entregó a los Servicios de ubicación:

Mensaje '{76453CC6-76BA-4B68-BE30-BA70754570BB}' recibió la respuesta "{8E6D05EF-B77F-4AD0-AF64-1C6F3069A29C}" a la cola de extremo local "LS_ReplyLocations" CcmMessaging
OutgoingMessage(Queue='mp_[http]mp_locationmanager', ID={76453CC6-76BA-4B68-BE30-BA70754570BB}): entregado correctamente al host "PS1SYS. CONTOSO. COM'. CcmMessaging
Mensaje '{8E6D05EF-B77F-4AD0-AF64-1C6F3069A29C}' entregado al punto de conexión "LS_ReplyLocations" CcmMessaging

Paso 7: Los Servicios de ubicación analizan la respuesta y devuelven la ubicación al agente de examen

Los siguientes elementos se registran en LocationServices.log:

Mensaje de respuesta ubicación de procesamiento LocationServices 1/20/2014 12:18:09 PM
WSUSLocationReply : <WSUSLocationReply SchemaVersion="1.00"> <Sites> <Site> <MPSite SiteCode="PS1"/> <LocationRecords> <LocationRecord WSUSURL="http://PS1SITE.CONTOSO.COM:8530" ServerName="PS1SITE.CONTOSO.COM" Version="38"/> <LocationRecord WSUSURL="https://PS1SYS.CONTOSO.COM:8531" ServerName="PS1SYS.CONTOSO.COM" Version="38"/> </LocationRecords> </Site> </Sites> </WSUSLocationReply> LocationServices
Volver a llamar con las siguientes ubicaciones de WSUS LocationServices
WSUS Path=' http://PS1SITE.CONTOSO.COM:8530 ', Server='PS1SITE. CONTOSO. COM', Version='38' LocationServices
WSUS Path=' https://PS1SYS.CONTOSO.COM:8531 ', Server='PS1SYS. CONTOSO. COM', Version='38' LocationServices
Volver a llamar con ubicaciones para la solicitud WSUS {C2BB9710-C548-49D0-9DF8-5F9CFC5F3862} LocationServices

Paso 8: el agente de examen notifica a WUAHandler que agregue el origen de actualización al Registro

El agente de examen ahora tiene la directiva y la ubicación del origen de actualización con la versión de contenido adecuada. Los siguientes elementos se registran en ScanAgent.log:

WSUSLocationUpdate recibido para la solicitud de ubicación guid={C2BB9710-C548-49D0-9DF8-5F9CFC5F3862} ScanAgent
ScanJob({4CD06388-D509-46E4-8C00-75909EDD9EE8}): CScanJob::OnLocationUpdate- Received Location= http://PS1SITE.CONTOSO.COM:8530 , Version=38 ScanAgent
ScanJob({4CD06388-D509-46E4-8C00-75909EDD9EE8}): CScanJob::Execute- Adding UpdateSource={C2D17964-BBDD-4339-B9F3-12D7205B39CC}, ContentType=2, ContentLocation= http://PS1SITE.CONTOSO.COM:8530 , ContentVersion=38 ScanAgent

El agente de examen notifica a WUAHandler que agregue el origen de la actualización. WUAHandler agrega el origen de actualización al Registro e inicia una actualización de directiva de grupo (si el cliente está en el dominio) para ver si la directiva de grupo reemplaza el servidor de actualización que acaba de agregar. Los siguientes elementos se registran en WUAHandler.log en un nuevo cliente que muestra un nuevo origen de actualización que se está agregando:

Es un tipo de origen de actualización wsus ({C2D17964-BBDD-4339-B9F3-12D7205B39CC}), agregándole. WUAHandler
Es un nuevo origen de actualización de WSUS. WUAHandler
Habilitar la directiva de servidor administrado de WUA para usar el http://PS1SITE.CONTOSO.COM:8530 servidor: WUAHandler
Actualización de directiva forzada. WUAHandler
Esperando 2 minutos para que la directiva de grupo notifique sobre el cambio de directiva de WUA... WUAHandler
Esperar 30 segundos para que la directiva suba efecto en el agente de WU. WUAHandler
Se agregó el origen de actualización ({C2D17964-BBDD-4339-B9F3-12D7205B39CC}) de tipo de contenido: 2 WUAHandler

Durante este tiempo, el agente de Windows Update ve un cambio en la configuración de WSUS. Los siguientes elementos se registran en WindowsUpdate.log:

2014-01-20 12:18:11:520 968 9d0 Agent * WSUS server: http://PS1SITE.CONTOSO.COM:8530 (Modificado)
2014-01-20 12:18:11:520 968 Agente 9d0 * Servidor de estado WSUS: http://PS1SITE.CONTOSO.COM:8530 (Modificado)
2014-01-20 12:18:11:520 968 9d0 AU Sus server changed through policy.

Se comprueban y establecen las siguientes claves del Registro:

Subclave del Registro Nombre del valor Tipo Datos
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\WindowsUpdate WUServer REG_SZ La dirección URL completa del servidor WSUS, incluido el puerto. Por ejemplo: http://PS1Site.Contoso.com:8530
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\WindowsUpdate WUStatusServer REG_SZ La dirección URL completa del servidor WSUS, incluido el puerto. Por ejemplo: http://PS1Site.Contoso.com:8530
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\WindowsUpdate\AU UseWUServer REG_DWORD 0x1

Para un cliente existente, podríamos esperar ver lo siguiente en WUAHandler.log para indicar cuándo ha incrementado la versión de contenido:

Es un tipo de origen de actualización wsus ({C2D17964-BBDD-4339-B9F3-12D7205B39CC}), agregándole. WUAHandler
El origen de actualización de WSUS ya existe, ha aumentado la versión a 38. WUAHandler

Paso 9: El agente de examen inicia el examen

Una vez que el origen de la actualización se agrega correctamente, el agente de examen genera un mensaje de estado e inicia el examen. Los siguientes elementos se registran en ScanAgent.log:

Mensaje de estado ScanJob({4CD06388-D509-46E4-8C00-75909EDD9EE8}): UpdateSource elevado ({C2D17964-BBDD-4339-B9F3-12D7205B39CC}) correctamente. StateId = 2 ScanAgent
ScanJob({4CD06388-D509-46E4-8C00-75909EDD9EE8}): CScanJob::Execute : examen solicitado correctamente, ScanType=1 ScanAgent

Examen de actualización de software en clientes

Después de que la directiva de origen de actualización y la ubicación del origen de actualización estén disponibles, el agente de examen inicia el examen. El agente de Windows Update realiza realmente el examen de actualización de software. Sin embargo, el cliente de Configuration Manager interactúa con el agente de Windows Update para realizar un examen y obtener los resultados del examen. Esta interacción se controla mediante el componente controlador de agente de Windows Update (WUAHandler), que se comunica con el agente de Windows Update.

Paso 1: el agente de examen solicita el examen y WUAHandler inicia el examen

El agente de examen solicita el examen de WUAHandler, que usa la API del agente de Windows Update para solicitar un examen de actualización de software del agente de Windows Update. Se registra lo siguiente en ScanAgent.log:

ScanJob({4CD06388-D509-46E4-8C00-75909EDD9EE8}): CScanJob::Execute : examen solicitado correctamente, ScanType=1 ScanAgent

Los siguientes elementos se registran en WUAHandler.log:

Los resultados del examen incluirán actualizaciones reemplazadas solo cuando se reemplazan por service packs y actualizaciones de definiciones. WUAHandler
Los criterios de búsqueda son (DeploymentAction= * AND Type='Software') OR (DeploymentAction= * AND Type='Driver') WUAHandler
Ejecutar un examen de llamadas únicas de las actualizaciones. WUAHandler
Se inició la búsqueda asincrónica de actualizaciones con WUAgent. WUAHandler

Paso 2: El Agente de Windows Update (WUA) inicia el examen en el equipo WSUS

El Agente de Windows Update inicia un examen después de recibir una solicitud del cliente de Configuration Manager (CcmExec). Dado que el valor de Windows Update Server ya estaba establecido en el servidor SUP, este examen se realiza en el servidor WSUS que tiene instalado el rol SUP. Los siguientes elementos se registran en WindowsUpdate.log:

2014-01-20 12:18:42:694 3856 708 COMAPI -- START -- COMAPI: Search [ClientId = CcmExec]
2014-01-20 12:18:42:752 3856 708 COMAPI <<-- SUBMITTED -- COMAPI: Search [ClientId = CcmExec]
2014-01-20 12:18:47:511 968 f58 PT + ServiceId = {3DA21691-E39D-4DA6-8A4B-B43877BCB1B7}, Dirección URL del servidor = http://PS1SITE.CONTOSO.COM:8530/ClientWebService/client.asmx
2014-01-20 12:18:48:662 968 f58 Agent * * START ** Agent: Finding updates [CallerId = CcmExec]
2014-01-20 12:18:48:662 968 f58 Agente * Incluir actualizaciones potencialmente reemplazadas
2014-01-20 12:18:48:662 968 f58 Agente * En línea = Sí; Omitir prioridad de descarga = Sí
2014-01-20 12:18:48:662 968 f58 Agent * Criteria = "(DeploymentAction=* AND Type='Software') OR (DeploymentAction=* AND Type='Driver')"
2014-01-20 12:18:48:662 968 f58 Agent * ServiceID = {3DA21691-E39D-4DA6-8A4B-B43877BCB1B7} Administrado
2014-01-20 12:18:48:662 968 f58 Agente * Ámbito de búsqueda = {Machine}

El agente de Windows Update ahora examina el servidor WSUS e informa de los resultados a CcmExec (específicamente WUAHandler). Los siguientes elementos se registran en WindowsUpdate.log:

2014-01-20 12:18:49:175 968 f58 PT + ServiceId = {3DA21691-E39D-4DA6-8A4B-B43877BCB1B7}, Dirección URL del servidor = http://PS1SITE.CONTOSO.COM:8530/ClientWebService/client.asmx
2014-01-20 12:18:52:680 968 f58 Agent * Added update {4AE85C00-0EAA-4BE0-B81B-DBD7053D5FAE}.104 tosearch result
2014-01-20 12:18:52:683 968 f58 Agent * Added update {57260DFE-227C-45E3-9FFC-2FC77A67F95A}.104 to search result
2014-01-20 12:18:52:694 968 f58 Agent * Found 163 updates and 70 categories in search; evaluated appl. rules of 622 out of 1150 deployed entities
2014-01-20 12:18:52:745 968 f58 Agent * * END ** Agent: Finding updates [CallerId = CcmExec]
2014-01-20 12:18:52:755 3856 708 COMAPI >>-- RESUMED -- COMAPI: Search [ClientId = CcmExec]
2014-01-20 12:18:53:137 3856 708 COMAPI - Actualizaciones encontradas = 163
2014-01-20 12:18:53:137 3856 708 COMAPI -- END -- COMAPI: Search [ClientId = CcmExec]

Paso 3: WUAHandler recibe los resultados del Agente de Windows Update y marca el examen como completado

Los siguientes elementos se registran en WUAHandler.log:

Búsqueda asincrónica completada. WUAHandler
Ha terminado de buscar todo en una sola llamada. WUAHandler

Paso 4: WUAHandler analiza los resultados del examen

A continuación, WUAHandler analiza los resultados, que incluyen el estado de aplicabilidad de cada actualización. Como parte de este proceso, las actualizaciones reemplazadas se han descartado. Los siguientes elementos se registran en WUAHandler.log:

Pruning: update id (70f4f236-0248-4e84-b472-292913576fa1) is superseded by (726b7201-862a-4fde-9b12-f36b38323a6f). WUAHandler
...
Actualización (instalada): Actualización de seguridad para Windows 7 para sistemas basados en x64 (KB2584146) (4ae85c00-0eaa-4be0-b81b-dbd7053d5fae, 104) WUAHandler
Actualización (falta): Actualización de seguridad para Windows 7 para sistemas basados en x64 (KB2862152) (505fda07-b4f3-45fb-83d9-8642554e2773, 200) WUAHandler
...
Examen completado correctamente. WUAHandler

Paso 5: El almacén de actualización registra el estado y genera un mensaje de estado para cada actualización en WMI

Una vez que los resultados del examen están disponibles, estos se almacenan en el almacén de actualizaciones. El almacén de actualizaciones registra el estado actual de cada actualización y crea un mensaje de estado para cada actualización. Estos mensajes de estado se reenvía al servidor del sitio de forma masiva al final del ciclo de informes de mensajes de estado (que es minutos, de forma predeterminada).

UpdatesStore.log que muestra el estado de la actualización que falta (KB2862152) que se está registrando y se genera un mensaje de estado:

Procesar el estado de actualización a partir de la actualización (505fda07-b4f3-45fb-83d9-8642554e2773) con ProductID = 0fa1201d-4330-4fa8-8ae9- b877473b6441 UpdatesStore
El estado de actualización de la actualización (505fda07-b4f3-45fb-83d9-8642554e2773) no se ha notificado antes, creando una nueva instancia. UpdatesStore
Mensaje de estado que se ha elevado correctamente para su actualización (505fda07-b4f3-45fb-83d9-8642554e2773) con estado (falta). UpdatesStore
Se agregó correctamente la instancia WMI del estado de actualización (505fda07-b4f3-45fb-83d9-8642554e2773). UpdatesStore

StateMessage.log que muestra el mensaje de estado que se está registrando con el id. de estado 2 (falta):

Agregar mensaje con TopicType 500 y TopicId 505fda07-b4f3-45fb-83d9-8642554e2773 a WMI StateMessage
Mensaje de estado (Id. de estado : 2) con TopicType 500 y TopicId 505fda07-b4f3-45fb-83d9-8642554e2773 se ha registrado para SYSTEM StateMessage

Para cada actualización, se crea o actualiza una instancia de la clase y se almacena CCM_UpdateStatus el estado actual de la actualización. La CCM_UpdateStatus clase se encuentra en el espacio de ROOT\CCM\SoftwareUpdates\UpdatesStore nombres.

Captura de pantalla de una instancia de la CCM_UpdateStatus predeterminada

De forma similar, se crea o actualiza una instancia de la clase y se almacena CCM_StateMsg el estado actual de la actualización. La CCM_StateMsg clase se encuentra en el espacio de ROOT\CCM\StateMsg nombres.

Captura de pantalla de una instancia de la CCM_StateMsg clase

Paso 6: Los mensajes de estado se envían al punto de administración

Como se mencionó anteriormente, los mensajes de estado se envían al punto de administración en función de la programación del ciclo de informes de mensajes de estado, que está configurado en 15 minutos de forma predeterminada. Una vez que se envía un mensaje de estado al punto de administración, la propiedad de la instancia del mensaje de estado en la clase MessageSent se establece en CCM_StateMsg True.

En StateMessage.log:

Cuerpo de StateMessage: <XML Report Body Truncated> StateMessage
Mensajes de estado reenviados correctamente a MP StateMessage

A continuación se muestra el aspecto que tiene el cuerpo del mensaje de estado para nuestra actualización. Normalmente, este cuerpo XML es demasiado grande para el registro y se trunca en CMTrace. Sin embargo, puede ver todo el cuerpo XML en el Bloc de notas.

Cuerpo de StateMessage: <?xml version="1.0" encoding="UTF-16"?>
<Report><ReportHeader><Identification><Machine><ClientInstalled>1 </ClientInstalled> <ClientType> 1 </ClientType> <ClientID> GUID: A1006D0E-CF56-41D1-A006-6330EFC39381 </ClientID> <ClientVersion> 5.00.7958.1000 </ClientVersion> <NetBIOSName> PS1WIN7X64 </NetBIOSName> <CodePage> 437 </CodePage> <SystemDefaultLCID> 1033 </SystemDefaultLCID> <Priority> 5 </Priority> </Machine> </Identification> <ReportDetails> <ReportContent> State Message Data </ReportContent> <ReportType> Full </ReportType> <Date> 20140120194656.903000+000 </Date> <Version> 1.0 </Version> <Format> 1.0 </Format> </ReportDetails> </ReportHeader> <ReportBody> <StateMessage MessageTime="20140120171855.573000+000" SerialNumber="232"> <Topic ID="505fda07-b4f3-45fb-83d9-8642554e2773" Type="500" IDType="3" User="" UserSID=""/> <State ID="2" Criticality="0"/> <UserParameters Flags="0" Count="1"> <Param> 200 </Param> </UserParameters> </StateMessage> </ReportBody> </Report> StateMessage
Mensajes de estado reenviados correctamente a MP StateMessage

Flujo de procesamiento de mensajes de estado

Ahora sabemos cómo se registra un mensaje de estado y la ubicación WMI donde se almacenan estos mensajes de estado. También sabemos que los mensajes de estado no enviados en un cliente se envían al punto de administración cada 15 minutos de forma predeterminada, según el ciclo de informes de mensajes de estado. Esta programación se puede modificar en la mensajería de estado de la configuración de cliente predeterminada o personalizada.

Aunque StateMessage.log informa de que los mensajes de estado se reenvieron correctamente al MP, el componente de mensaje de estado no envía realmente estos mensajes. Todos los mensajes enviados y recibidos desde el punto de administración son manipulados por el componente de mensajería CCM en el cliente. La mensajería de CCM es el componente real que se comunica con el punto de administración para enviar y recibir datos. El punto de administración tiene varias colas definidas para controlar distintos tipos de tráfico entrante. Para los mensajes de estado, la cola que controla este tráfico es la MP_RelayEndpoint cola.

Paso 1: el componente de mensaje de estado comienza a enviar mensajes al punto de administración

En StateMessage.log:

Cuerpo de StateMessage: <?xml version="1.0" encoding="UTF-16"?> <Report> <ReportHeader> <Identification> <Machine> <ClientInstalled> 1 </ClientInstalled> <ClientType> 1 </ClientType> <ClientID> GUID: A1006D0E-CF56-41D1-A006-6330EFC39381 </ClientID> <ClientVersion> 5.00.7958.1000 </ClientVersion> <NetBIOSName> PS1WIN7X64 </NetBIOSName> <CodePage> 437 </CodePage> <SystemDefaultLCID> 1033 </SystemDefaultLCID> <Priority> 5 </Priority> </Machine> </Identification> <ReportDetails> <ReportContent> State Message Data </ReportContent> <ReportType> Full </ReportType> <Date> 20140120194656.903000+000 </Date> <Version> 1.0 </Version> <Format> 1.0 </Format> </ReportDetails> </ReportHeader> <ReportBody> <StateMessage MessageTime="20140120171855.573000+000" SerialNumber="232"> <Topic ID="505fda07-b4f3-45fb-83d9-8642554e2773" Type="500" IDType="3" User="" UserSID=""/> <State ID="2" Criticality="0"/> <UserParameters Flags="0" Count="1"> <Param> 200 </Param> </UserParameters> </StateMessage> </ReportBody> </Report> StateMessage
Mensajes de estado reenviados correctamente a MP StateMessage

Paso 2: La mensajería CCM envía un mensaje que contiene el cuerpo XML del mensaje de estado al punto de administración

La mensajería CCM envía un mensaje a la MP_RelayEndpoint cola correctamente. Este mensaje no tiene una respuesta, a diferencia de la que hemos observado anteriormente en la sección Solicitud de ubicación de WSUS donde el mensaje con la solicitud de ubicación recibió una respuesta.

En CcmMessaging.log:

Enviar un mensaje asincrónico "{95F79010-D0EB-49A6-8A1E-3897883105F2}" a la cola saliente "mp:mp_relayendpoint" CcmMessaging
Enviar el mensaje saliente "{95F79010-D0EB-49A6-8A1E-3897883105F2}". Marcas 0x200, cuenta de remitente vacía CcmMessaging
POST: Host=PS1SYS. CONTOSO.COM, Path=/ccm_system/request, Port=443, Protocol=https, Flags=512, Options=480 CcmMessaging
El mensaje '{95F79010-D0EB-49A6-8A1E-3897883105F2}' no tiene respuesta CcmMessaging
OutgoingMessage(Queue='mp_mp_relayendpoint', ID={95F79010-D0EB-49A6-8A1E-3897883105F2}): entregado correctamente al host 'PS1SYS. CONTOSO. COM'. CcmMessaging

Paso 3: El mensaje se recibe en el punto de administración y, a continuación, MP_Relay procesa el mensaje y crea un archivo SMX

Como todos los mensajes se envían mediante HTTP/HTTPS y iis los recibe. En este ejemplo, esta solicitud se realiza en el CCM_System virtual.

En el registro de IIS:

192.168.2.12 CCM_POST /ccm_system/request - 443 - 192.168.2.62 ccmhttp - 200 0 0 542 31

Una vez que el mensaje se recibe correctamente en el punto de administración, el componente procesa este mensaje, lo convierte en un archivo SMX y mueve el archivo SMX a la ubicación adecuada en función de si el punto de administración está ubicado en el servidor del sitio o MP_Relay no.

  • En un punto de administración remota: \SMS\mp\outboxes\StateMsg.box
  • En un punto de administración situado en el servidor del sitio: \inboxes\auth\StateSys.box\incoming

En MP_Relay.log en un punto de administración ubicado en el servidor del sitio:

Controlador de mensajes MP: inicie el procesamiento de mensajes para retransmisión----------------------- MP_RelayEndpoint
Controlador de mensajes MP: FileType=SMX MP_RelayEndpoint
Cuerpo del mensaje: <XML Body Truncated> MP_RelayEndpoint
Retransmisión: Dir. de bandeja de salida: E:\ConfigMgr\inboxes\auth\statesys.box\incoming MP_RelayEndpoint
Prioridad en el mensaje = 5 MP_RelayEndpoint
Directorio de prioridad de estado = E:\ConfigMgr\inboxes\auth\statesys.box\incoming MP_RelayEndpoint
Inv-Relay: la tarea se completó correctamente MP_RelayEndpoint

En MP_Relay.log en un punto de administración remota:

Controlador de mensajes MP: iniciar el procesamiento de mensajes para retransmisión------------------------------ MP_RelayEndpoint
Controlador de mensajes MP: FileType=SMX MP_RelayEndpoint
Cuerpo del mensaje:
<?xml version="1.0" encoding="UTF-16"?>
<Report><ReportHeader><Identification><Machine><ClientInstalled>1 </ClientInstalled> <ClientType> 1 </ClientType> <ClientID> GUID: A1006D0E-CF56-41D1-A006-6330EFC39381 </ClientID> <ClientVersion> 5.00.7958.1000 </ClientVersion> <NetBIOSName> PS1WIN7X64 </NetBIOSName> <CodePage> 437 </CodePage> <SystemDefaultLCID> 1033 </SystemDefaultLCID> <Priority> 5 </Priority> </Machine> </Identification> <ReportDetails> <ReportContent> State Message Data </ReportContent> <ReportType> Full </ReportType> <Date> 20140120194656.903000+000 </Date> <Version> 1.0 </Version> <Format> 1.0 </Format> </ReportDetails> </ReportHeader> <ReportBody> <StateMessage MessageTime="20140120171855.573000+000" SerialNumber="232"> <Topic ID="505fda07-b4f3-45fb-83d9-8642554e2773" Type="500" IDType="3" User="" UserSID=""/> <State ID="2" Criticality="0"/> <UserParameters Flags="0" Count="1"> <Param> 200 </Param> </UserParameters> </StateMessage> </ReportBody> </Report> MP_RelayEndpoint
Inv-Relay tarea: procesar el cuerpo del mensaje MP_RelayEndpoint
Retransmisión: Dir. de bandeja de salida: C:\SMS\mp\outboxes\StateMsg.box MP_RelayEndpoint
Prioridad en el mensaje = 5 MP_RelayEndpoint
Directorio de prioridad de estado = C:\SMS\mp\outboxes\StateMsg.box MP_RelayEndpoint
Inv-Relay: la tarea se completó correctamente MP_RelayEndpoint

El cuerpo XML tiene un aspecto idéntico al que se registra en StateMessage.log en el cliente.

Paso 4: el Administrador de envío de archivos MP envía el archivo SMX al servidor del sitio (solo cuando el punto de administración no está en el servidor del sitio)

Cuando el punto de administración es remoto al servidor del sitio, una vez que el archivo llega a las bandejas de salida\StateMsg.box, el Administrador de envío de archivos MP (MPFDM) es responsable de mover estos archivos a la bandeja de entrada StateMsg.box del servidor del sitio. Cuando el punto de administración se coloca en el servidor del sitio, estos archivos se mueven directamente a la carpeta Bandeja de entrada adecuada, por lo que MPFDM no está implicado.

En MPFDM.log, en un punto de administración remota:

Archivo movido C:\SMS\MP\OUTBOXES\statemsg.box\TAZGYTSJ. SMX a \ \PS1SITE. CONTOSO.COM\SMS_PS1\inboxes\auth\statesys.box\incoming\TAZGYTSJ. SMX SMS_MP_FILE_DISPATCH_MANAGER

Para que MPFDM mueva los archivos a la bandeja de entrada adecuada, el punto de administración remota debe poder tener acceso al registro del servidor del sitio para determinar las ubicaciones de origen de la Bandeja de entrada. Por lo tanto, el servicio registro remoto debe estar en ejecución y la directiva de grupo no debe bloquear el acceso al Registro. MPFDM determina las ubicaciones de la Bandeja de entrada mediante el acceso a la siguiente clave del Registro en el servidor del sitio:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Inbox Source

Paso 5: el componente StateSys del servidor del sitio procesa el mensaje de estado en la base de datos.

Cuando el archivo llega a \inboxes\auth\StateSys.box en el servidor del sitio, el componente State System Manager (StateSys) se reactiva y procesa los archivos SMX.

En StateSys.log con registro detallado habilitado:

Notificación de bandeja de entrada desencadenada, pausa durante 10 segundos...... SMS_STATE_SYSTEM
Se encontraron mensajes de estado nuevos para procesar, iniciando el procesamiento de subprocesos SMS_STATE_SYSTEM
Id.:4316 iniciado #0 subproceso de procesamiento de mensajes de SMS_STATE_SYSTEM estado
total de remates cargados (1) SMS_STATE_SYSTEM
CMessageProcessor - Archivo de procesamiento: YCE2H3VD. SMX SMS_STATE_SYSTEM
CMessageProcessor: procesado 1 registros con 0 registros no válidos. SMS_STATE_SYSTEM
CMessageProcessor: se procesaron 1 archivos de mensaje en este lote, con 0 archivos con errores. SMS_STATE_SYSTEM
total de remates cargados (0) SMS_STATE_SYSTEM
Id.:4316 de subproceso "Estado de procesamiento de #0" finalizó normalmente SMS_STATE_SYSTEM

En StateSys.log sin registro detallado habilitado:

Se encontraron mensajes de estado nuevos para procesar, iniciando el procesamiento de subprocesos SMS_STATE_SYSTEM
Id.:1988 del subproceso "Identificador de subproceso de procesamiento de mensajes de estado #0": 1988 se inició SMS_STATE_SYSTEM
total de remates cargados (1) SMS_STATE_SYSTEM
total de remates cargados (0) SMS_STATE_SYSTEM
Thread "State Message Processing Thread #0" id:1988 terminated normally SMS_STATE_SYSTEM

El archivo StateSys.log no registra el nombre de archivo a menos que el registro detallado esté habilitado para el Administrador del sistema de estado.

El archivo SMX que se mueve a la carpeta StateSys.box contiene el XML del cuerpo del mensaje. Cuando StateSys procesa este archivo, llama al procedimiento almacenado y pasa este cuerpo XML al procedimiento almacenado spProcessStateReport como parámetro.

En SQL Server Profiler seguimiento:

exec dbo.spProcessStateReport N'<?xml version="1.0" encoding="UTF-16"?>
<Report><ReportHeader><Identification><Machine><ClientInstalled>1 </ClientInstalled> <ClientType> 1 </ClientType> <ClientID> GUID: A1006D0E-CF56-41D1-A006-6330EFC39381 </ClientID> <ClientVersion> 5.00.7958.1000 </ClientVersion> <NetBIOSName> PS1WIN7X64 </NetBIOSName> <CodePage> 437 </CodePage> <SystemDefaultLCID> 1033 </SystemDefaultLCID> <Priority> 5 </Priority> </Machine> </Identification> <ReportDetails> <ReportContent> State Message Data </ReportContent> <ReportType> Full </ReportType> <Date> 20140120220131.071000+000 </Date> <Version> 1.0 </Version> <Format> 1.0 </Format> </ReportDetails> </ReportHeader> <ReportBody> <StateMessage MessageTime="20140120171855.573000+000" SerialNumber="239"> <Topic ID="505fda07-b4f3-45fb-83d9-8642554e2773" Type="500" IDType="3" User="" UserSID=""/> <State ID="2" Criticality="0"/> <UserParameters Flags="0" Count="1"> <Param> 200 </Param> </UserParameters> </StateMessage> </ReportBody> </Report> '

spProcessStateReport es un procedimiento almacenado de CLR y la definición clr tiene la lógica para determinar el tipo de mensaje de estado que se está procesando. Según el tipo de mensaje de estado, procesa el mensaje de estado correctamente e inserta los datos en la base de datos.

Puede encontrar nombres descriptivos de todos los tipos de temas e IDs de mensajes de estado consultando la SR_StateNames tabla con el siguiente comando:

SELECT * FROM SR_StateNames

Resumen de actualizaciones de software

Antes de que los datos de cumplimiento de actualizaciones de software se puedan presentar en la consola o en los informes, deben resumirse los datos de cumplimiento de actualizaciones de software. Esto es necesario porque la consola y los informes normalmente muestran solo datos resumidos. El componente Sistema de estado del servidor del sitio realiza el resumen de actualización de software junto con el resumen de otros componentes, como aplicaciones, implementaciones de DCM y estado del cliente. Puede encontrar información sobre todas las tareas de resumen que realiza State System consultando la vista en la base de datos vSR_SummaryTasks de Configuration Manager. Sistema de estado ejecuta estas tareas según una programación configurada y registra los detalles de cada tarea en StateSys.log:

Tarea iniciada ' <TaskName> ' SMS_STATE_SYSTEM
La tarea ' <TaskName> ' se completó correctamente después de ejecutarse durante 15 segundos, con el estado 8. SMS_STATE_SYSTEM

Para la mayoría de estas tareas, el estado registrado por StateSys.log no es un código de error. En su lugar, es el número de filas devueltas por el procedimiento SQL Server almacenado adecuado que realiza el resumen.

Las tareas de resumen especificadas para las actualizaciones de software son:

  • Evaluador de cumplimiento de asignación de SUMA

    Resume los mensajes de estado de todas las asignaciones de grupos de actualización de software (implementaciones). Esta tarea se ejecuta cada hora de forma predeterminada. Se puede iniciar manualmente para una implementación específica en la consola de Configuration Manager > Monitoring > Deployments, haga clic con el botón secundario en la implementación y, a continuación, haga clic en Ejecutar resumen.

  • SUM Update Group Status Summarizer

    Resume el estado de los grupos de actualización. Esta tarea se ejecuta cada hora de forma predeterminada. Se puede iniciar manualmente para un grupo de actualización específico en la consola de Configuration Manager > Grupos de actualización de software de actualizaciones de software de biblioteca de software, haga clic con el botón secundario en el grupo de actualización y, a continuación, haga clic en Ejecutar > > resumen.

    También puede cambiar la programación de esta tarea haciendo clic con el botón secundario en Grupos de actualización de software o seleccionando Programar resumen en la cinta de opciones.

  • SUM Update Status Summarizer

    Resume el estado de las actualizaciones de todos los clientes. Esta tarea se ejecuta cada hora de forma predeterminada. Se puede iniciar manualmente en la consola de Configuration Manager > software de biblioteca de software y, a continuación, haga clic > en Ejecutar resumen. También puede cambiar la programación predeterminada seleccionando Schedule Summarization.

  • SUM Migrar estado de actualización

    Migra el estado de actualización internamente dentro de la base de datos. Esta tarea se ejecuta cada 24 horas de forma predeterminada. No se puede iniciar manualmente desde la consola de Configuration Manager.

  • SUM Eliminar estado de edad

    Elimina el estado de edad de las tablas específicas de actualización de software de la base de datos. Esta tarea se ejecuta cada 24 horas de forma predeterminada. No se puede iniciar manualmente desde la consola de Configuration Manager.

Cambio de punto de actualización de software

En System Center 2012 Configuration Manager SP1 y versiones posteriores, un sitio puede tener varios SUP. Esto proporciona tolerancia a errores en situaciones en las que un SUP deja de estar disponible. Para obtener más información acerca de la conmutación por error y el cambio de los SUP, consulte los siguientes artículos: