Compartir a través de


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

Se aplica a: Configuration Manager

Para poder implementar actualizaciones de software en los clientes, los clientes deben ejecutar un examen de cumplimiento de actualizaciones de software. Se recomienda que permita tiempo suficiente para que los clientes completen los resultados de examen e informe de cumplimiento para 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 máquina para todo el sitio que informa a los equipos cliente de que se habilitaron las actualizaciones de software de Configuration Manager para el sitio. Cuando un cliente recibe la directiva de máquina, 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 del Agente cliente de actualizaciones de software borra el historial de exámenes, envía una solicitud para buscar el servidor de Windows Server Update Services (WSUS) que se debe usar 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 actualizaciones de software

Para que un cliente pueda intentar buscar actualizaciones, necesita la directiva UpdateSource. Esta directiva se crea en el servidor de 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 última sincronización en la base de datos

Después de una sincronización correcta en un sitio primario, WSyncMgr actualiza la hora de última sincronización y la versión de contenido en la base de datos para el SUP. Para ello, ejecute el spProcessSUMSyncStateMessage procedimiento almacenado. En el siguiente seguimiento de SQL Server Profiler de ejemplo, 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 quita 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 quitar un <UpdateSource_UniqueID>. StN file (STN significa Scan Tool Notification) en policypv.box para indicar un cambio en la definición de la herramienta de examen. A continuación se registran 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>. El archivo STN notifica al proveedor de directivas que debe reactivarse y actualizar la directiva UpdateSource en la base de datos.

A continuación se registran PolicyPv.log:

Encontrado {C2D17964-BBDD-4339-B9F3-12D7205B39CC}. STN SMS_POLICY_PROVIDER
Se ha agregado el identificador de la herramienta de examen {C2D17964-BBDD-4339-B9F3-12D7205B39CC} SMS_POLICY_PROVIDER
Agregar a la lista de eliminación: E:\ConfigMgr\inboxes\policypv.box{C2D17964-BBDD-4339-B9F3-12D7205B39CC}. STN SMS_POLICY_PROVIDER

En el seguimiento de SQL Server Profiler:

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

seleccione Versión en Policy where PolicyID = N'{d0855677-b0a6-4e33-9bd5-7b0d06f0a2be}'
IF EXISTS (seleccione PolicyID from Policy where PolicyID = N'{d085677-b0a6-4e33-9bd5-7b0d06f0a2be}') update Policy set Version = N'40.00' where PolicyID = N'{d085677--b0a6-4e33-9bd5-7b0d06f0a2be}' valores else insert Policy (PolicyID, Version) (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 (seleccione 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 consulta siguiente:

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 examinar. Una vez creada o actualizada esta directiva en la base de datos, los clientes obtienen la directiva UpdateSource nueva o actualizada durante el siguiente ciclo de evaluación de directivas.

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

A continuación se registran PolicyAgent.log en el cliente:

Se inició correctamente la descarga de la directiva 'CCM_Policy_Policy5.PolicyID="{d0855677-b0a6-4e33-9bd5- 7b0d06f0a2be}",PolicySource="SMS:PS1",PolicyVersion="40.00"" PolicyAgent_ReplyAssignments
Policy 'CCM_Policy_Policy5.PolicyID="{d0855677-b0a6-4e33-9bd5-7b0d06f0a2be}",PolicyVersion="40.00",PolicySource="SMS:PS1"' compilado correctamente PolicyAgent_PolicyDownload

En PolicyEvaluator.log en el cliente:

Actualización de la directiva 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 la directiva para [CCM_Policy_Policy5.PolicyID="{d0855677-b0a6-4e33-9bd5-7b0d06f0a2be}",PolicyVersion="40.00",PolicySource="SMS:PS1"] está actualmente [Activo] PolicyAgent_PolicyEvaluator

Para buscar la PolicyID de la 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 CCM_UpdateSource clase en el cliente con el cuerpo XML recuperado de la tabla de directivas, observará que el contenido del XML es idéntico a la instancia.

Paso 5: Se notifica al Agente de examen que la directiva UpdateSource se actualiza.

A continuación se registran ScanAgent.log en el cliente:

Dentro de CScanAgent::Notify() ScanAgent
Notificación CScanAgent::OnPolicyChange- Policy InstanceModificationEvent recibida ScanAgent

Ubicación del servidor WSUS

Después de recibir la directiva UpdateSource, el cliente tiene la configuración necesaria para iniciar un examen. Sin embargo, las actualizaciones de directivas no iniciarán exámenes inmediatos. Un examen se puede desencadenar manualmente a través del panel de control de Configuration Manager o se produce automáticamente a la siguiente hora programada. En este punto, el cliente busca el equipo WSUS con la versión de contenido especificada en la directiva. Este proceso es muy similar a la forma 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

A continuación se registran ScanAgent.log:

CScanAgent::ScanByUpdates: directiva disponible para UpdateSourceID={C2D17964-BBDD-4339-B9F3-12D7205B39CC} ContentVersion=38 ScanAgent
CScanAgent::ScanByUpdates: se ha agregado una directiva a la lista 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 de WSUS a los servicios de ubicación

El agente de examen solicita ahora la ubicación de WSUS de Location Services y espera una respuesta. En este ejemplo, el identificador de solicitud de ubicación es {C2BB9710-C548-49D0-9DF8-5F9CFC5F3862}. A continuación se registran ScanAgent.log:

Dentro de CScanAgent::P rocessScanRequest() ScanAgent
CScanJobManager::Scan- escrito ScanAgent
ScanJob({4CD06388-D509-46E4-8C00-75909EDD9EE8}): CScanJob::Initialize- entered ScanAgent
ScanJob({4CD06388-D509-46E4-8C00-75909EDD9EE8}): CScanJob::Scan- escrito ScanAgent
ScanJob({4CD06388-D509-46E4-8C00-75909EDD9EE8}): CScanJob::RequestLocations- escrito ScanAgent
- -Solicitud de ubicaciones de servidor WSUS desde LS para {C2D17964-BBDD-4339-B9F3-12D7205B39CC} versión 38 ScanAgent
- - - - -Location Request ID = {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-509-46E4-8C00-75909EDD9EE8} (LocationRequestID={C2BB9710-C548-49D0-9DF8-5F9CFC5F3862}), procesará la solicitud de examen una vez que haya ubicaciones 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: Location Services envía la solicitud de ubicación al punto de administración

Location Services crea una solicitud de ubicación y la envía al punto de administración. El identificador de paquete de una solicitud de ubicación de WSUS es el identificador único de UpdateSource. A continuación se registran LocationServices.log:

CCCMWSUSLocation::GetLocationsAsyncEx LocationServices
Intentar conservar la solicitud de ubicación de WSUS para ContentID='{C2D17964-BBDD-4339-B9F3-12D7205B39CC}' y ContentVersion='38' LocationServices
Ubicación de WSUS persistente LocationServices
Intentar enviar la solicitud de ubicación de 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 de CCM envía el mensaje de solicitud de ubicación al punto de administración

A continuación se registran CcmMessaging.log:

Envío de un mensaje asincrónico '{76453CC6-76BA-4B68-BE30-BA70754570BB}' a la cola saliente 'mp:[http]mp_locationmanager' CcmMessaging
Envío del 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 de WSUS de la base de datos y envía una respuesta.

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

MP LM: Message Body : <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: llamada a MP_GetWSUSServerLocations MP_LocationManager

En el seguimiento de SQL Server Profiler:

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. A continuación 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 de CCM recibe la respuesta y la envía de vuelta a los servicios de ubicación

El archivo CcmMessaging.log en el cliente muestra que se recibió una respuesta. Este mensaje se entregó a Location Services:

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

Paso 7: Servicios de ubicación analiza la respuesta y devuelve la ubicación al Agente de examen

A continuación se registran LocationServices.log:

Mensaje de respuesta ubicación de procesamiento LocationServices 1/20/2014 12:18:09 PM
WSUSLocationReply : <WSUSLocationReply SchemaVersion="1.00"><Sites><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
Devolución de llamada 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
Devolución de llamada con ubicaciones para la solicitud WSUS {C2BB9710-C548-49D0-9DF8-5F9CFC5F3862} LocationServices

Paso 8: El agente de examen notifica a WUAHandler para agregar el origen de actualización al registro

El Agente de examen ahora tiene la directiva y la ubicación de origen de actualización con la versión de contenido adecuada. A continuación se registran ScanAgent.log:

WSUSLocationUpdate recibido para el guid de solicitud de ubicación={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

Scan Agent notifica a WUAHandler para agregar 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 invalida el servidor de actualización que acabamos de agregar. A continuación se registran WUAHandler.log en un nuevo cliente que muestra un nuevo origen de actualización que se agrega:

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

Durante este tiempo, el Agente de Windows Update ve un cambio de configuración de WSUS. A continuación se registran WindowsUpdate.log:

2014-01-20 12:18:11:520 968 9d0 Agente * Servidor WSUS: http://PS1SITE.CONTOSO.COM:8530 (Cambiado)
2014-01-20 12:18:11:520 968 9d0 Agente * Servidor de estado WSUS: http://PS1SITE.CONTOSO.COM:8530 (Cambiado)
2014-01-20 12:18:11:520 968 9d0 AU Sus server cambió a través de la directiva.

Se comprueban y establecen las siguientes claves del Registro:

Subclave del Registro Nombre del valor Tipo Data
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\WindowsUpdate WUServer REG_SZ 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 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 indicar cuándo se ha incrementado la versión de contenido:

Es un tipo de origen de actualización de WSUS ({C2D17964-BBDD-4339-B9F3-12D7205B39CC}), agregándolo. 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

Después de agregar correctamente el origen de la actualización, scan Agent genera un mensaje de estado e inicia el examen. A continuación se registran ScanAgent.log:

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

Examen de actualizaciones de software en clientes

Una vez que la directiva de origen de actualización y la ubicación del origen de la actualización estén disponibles, el Agente de examen inicia el examen. En realidad, el agente de Windows Update realiza el examen de actualizaciones 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 del 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 desde WUAHandler, que usa la API del Agente de Windows Update para solicitar un examen de actualización de software desde el Agente de Windows Update. A continuación se registra en ScanAgent.log:

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

A continuación se registran WUAHandler.log:

Los resultados del examen incluirán actualizaciones reemplazadas solo cuando se sustituyan por service packs y actualizaciones de definiciones. WUAHandler
Los criterios de búsqueda son (DeploymentAction=* AND Type='Software') OR (DeploymentAction=* AND Type='Driver') WUAHandler
Ejecución del examen de llamadas únicas de las actualizaciones. WUAHandler
Búsqueda asincrónica de actualizaciones mediante WUAgent iniciado. 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 se estableció en el servidor SUP, este examen se realiza en el servidor WSUS que tiene instalado el rol SUP. A continuación se registran 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 -- ENVIADO -- 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: Buscar actualizaciones [CallerId = CcmExec]
2014-01-20 12:18:48:662 968 f58 Agent * Incluir actualizaciones potencialmente reemplazadas
2014-01-20 12:18:48:662 968 f58 Agent * Online = Sí; Omitir la 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 Agent * Search Scope = {Machine}

El Agente de Windows Update ahora examina el servidor WSUS e informa de los resultados a CcmExec (específicamente WUAHandler). A continuación se registran 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 * Se ha agregado la actualización {4AE85C00-0EAA-4BE0-B81B-DBD7053D5FAE}.104 tosearch result
2014-01-20 12:18:52:683 968 f58 Agent * Se ha agregado la actualización {57260DFE-227C-45E3-9FFC-2FC77A67F95A}.104 para el resultado de la búsqueda
2014-01-20 12:18:52:694 968 f58 Agente * Se encontraron 163 actualizaciones y 70 categorías en la búsqueda; appl evaluado. reglas de 622 de 1150 entidades implementadas
2014-01-20 12:18:52:745 968 f58 Agent ** END ** Agent: Buscar actualizaciones [CallerId = CcmExec]
2014-01-20 12:18:52:755 3856 708 COMAPI -- REANUDADO -- 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 completo

A continuación se registran WUAHandler.log:

Se completó la búsqueda asincrónica. WUAHandler
Finalizó la búsqueda de todo en una sola llamada. WUAHandler

Paso 4: WUAHandler analiza los resultados del examen

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

Pruning: el identificador de actualización (70f4f236-0248-4e84-b472-292913576fa1) se sustituye por (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: Actualizar el almacén registra el estado y genera un mensaje de estado para cada actualización en WMI

Una vez disponibles los resultados del examen, estos resultados 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 reenvieron al servidor de sitio de forma masiva al final del ciclo de informes de mensajes de estado (que es de 15 minutos, de forma predeterminada).

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

Estado de actualización de procesamiento 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 generado correctamente para la actualización (505fda07-b4f3-45fb-83d9-8642554e2773) con estado (falta). UpdatesStore
Se agregó correctamente la instancia de WMI del estado de actualización (505fda07-b4f3-45fb-83d9-8642554e2773). UpdatesStore

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

Agregar mensaje con TopicType 500 y TopicId 505fda07-b4f3-45fb-83d9-8642554e2773 a WMI StateMessage
State message(State ID : 2) with TopicType 500 and TopicId 505fda07-b4f3-45fb-83d9-8642554e2773 se ha registrado para SYSTEM StateMessage

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

Captura de pantalla de una instancia de la clase CCM_UpdateStatus.

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

Captura de pantalla de una instancia de la clase CCM_StateMsg.

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 se configura en 15 minutos de forma predeterminada. Una vez que se envía un mensaje de estado al punto de administración, la MessageSent propiedad de la instancia de mensaje de estado de la CCM_StateMsg clase se establece en True.

En StateMessage.log:

Cuerpo de StateMessage: <Cuerpo del informe XML Truncated> StateMessage
Mensajes de estado reenviados correctamente a MP StateMessage

A continuación se muestra el aspecto del 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 ReportHeader><ReportBody><StateMessage MessageTime="20140120171855.573000+000" SerialNumber="232"><Topic ID="505fda07-b4f3-45fb-83d9-8642554e2773" Type="500" IDType="3" User="" 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 de 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 personalizada o predeterminada.

Aunque StateMessage.log notifica mensajes de estado reenviados correctamente al mp, el componente Mensaje de estado no envía realmente estos mensajes. Todos los mensajes enviados y recibidos desde el punto de administración se controlan mediante el componente de mensajería de 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 diferentes 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 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 ReportHeader><ReportBody><StateMessage MessageTime="20140120171855.573000+000" SerialNumber="232"><Topic ID="505fda07-b4f3-45fb-83d9-8642554e2773" Type="500" IDType="3" User="" 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 de CCM envía un mensaje que contiene el cuerpo XML del mensaje de estado al punto de administración

La mensajería de 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:

Envío de un mensaje asincrónico '{95F79010-D0EB-49A6-8A1E-3897883105F2}' a la cola saliente 'mp:mp_relayendpoint' CcmMessaging
Envío del 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 para hospedar "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 directorio virtual CCM_System.

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 MP_Relay componente procesa este mensaje, convierte el mensaje en un archivo SMX y mueve el archivo SMX a la ubicación adecuada en función de si el punto de administración se coloca en el servidor de sitio o no.

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

En MP_Relay.log en un punto de administración que se encuentra en el servidor de sitio:

Controlador de mensajes mp: iniciar el procesamiento de mensajes para Relay----------------------- MP_RelayEndpoint
Controlador de mensajes mp: FileType=SMX MP_RelayEndpoint
Cuerpo del mensaje: <cuerpo XML truncado> MP_RelayEndpoint
Relay: Outbox dir: E:\ConfigMgr\inboxes\auth\statesys.box\incoming MP_RelayEndpoint
Prioridad en el mensaje = 5 MP_RelayEndpoint
State Priority Directory = E:\ConfigMgr\inboxes\auth\statesys.box\incoming MP_RelayEndpoint
Inv-Relay: tarea completada correctamente MP_RelayEndpoint

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

Controlador de mensajes mp: iniciar el procesamiento de mensajes para Relay------------------------------ 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 ReportHeader><ReportBody><StateMessage MessageTime="20140120171855.573000+000" SerialNumber="232"><Topic ID="505fda07-b4f3-45fb-83d9-8642554e2773" Type="500" IDType="3" User="" User="" UserSID="/><State ID="2" Criticality="0"/><UserParameters Flags="0" Count="1"><Param>200</Param></UserParameters></StateMessage></ReportBody></Report> MP_RelayEndpoint
Tarea inv-Relay: procesamiento del cuerpo del mensaje MP_RelayEndpoint
Relay: dir de la 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: tarea completada correctamente MP_RelayEndpoint

El cuerpo XML es idéntico a lo que ha iniciado sesión StateMessage.log en el cliente.

Paso 4: Mp File Dispatch Manager envía el archivo SMX al servidor de sitio (solo cuando el punto de administración no está colocado en el servidor de sitio)

Cuando el punto de administración es remoto al servidor de sitio, después de que el archivo llegue a las bandejas de salida\StateMsg.box, el Administrador de distribución de archivos MP (MPFDM) es responsable de mover estos archivos a la bandeja de entrada StateMsg.box en el servidor de sitio. Cuando el punto de administración se coloca en el servidor de 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 acceder al registro del servidor de 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 accediendo a la siguiente clave del Registro en el servidor de sitio:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Inbox Source

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

Después de que el archivo llegue a \inboxes\auth\StateSys.box en el servidor de sitio, el componente State System Manager (StateSys) se reactiva y procesa los archivos SMX.

En StateSys.log con el registro detallado habilitado:

Notificación de bandeja de entrada desencadenada, pausa durante 10 segundos...... SMS_STATE_SYSTEM
Se encontraron nuevos mensajes de estado para procesar, iniciando el procesamiento del subproceso SMS_STATE_SYSTEM
Subproceso "Subproceso de procesamiento de mensajes de estado #0" id:4316 iniciado SMS_STATE_SYSTEM
total de chucks cargados (1) SMS_STATE_SYSTEM
CMessageProcessor : archivo de procesamiento: YCE2H3VD. SMX SMS_STATE_SYSTEM
CMessageProcessor: 1 registros procesados con 0 registros no válidos. SMS_STATE_SYSTEM
CMessageProcessor: se procesaron 1 archivos de mensaje en este lote, con 0 archivos incorrectos. SMS_STATE_SYSTEM
total de mandillas cargadas (0) SMS_STATE_SYSTEM
Subproceso "Subproceso de procesamiento de mensajes de estado #0" id:4316 terminado normalmente SMS_STATE_SYSTEM

En StateSys.log sin el registro detallado habilitado:

Se encontraron nuevos mensajes de estado para procesar, iniciando el procesamiento del subproceso SMS_STATE_SYSTEM
Subproceso "Subproceso de procesamiento de mensajes de estado #0" id:1988 iniciado SMS_STATE_SYSTEM
total de chucks cargados (1) SMS_STATE_SYSTEM
total de mandillas cargadas (0) SMS_STATE_SYSTEM
Subproceso "Subproceso de procesamiento de mensajes de estado #0" id:1988 terminado normalmente SMS_STATE_SYSTEM

El archivo StateSys.log no registra el nombre de archivo a menos que el registro detallado esté habilitado para State System Manager.

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 spProcessStateReport procedimiento almacenado y pasa este cuerpo XML al procedimiento almacenado como parámetro.

En el seguimiento de SQL Server Profiler:

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 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 CLR y la definición de 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 de forma adecuada e inserta los datos en la base de datos.

Puede encontrar nombres descriptivos de todos los tipos e identificadores de tema de mensaje de estado consultando la SR_StateNames tabla con el siguiente comando:

SELECT * FROM SR_StateNames

Resumen de actualizaciones de software

Para que los datos de cumplimiento de actualizaciones de software se puedan presentar en la consola o los informes, se deben resumir los datos de cumplimiento de actualizaciones de software. Esto es necesario porque la consola y los informes suelen mostrar solo los datos resumidos. El componente State System del servidor de sitio realiza el resumen de actualizaciones de software junto con el resumen de otros componentes, como las aplicaciones, las implementaciones de DCM y el estado del cliente. Puede encontrar información sobre todas las tareas de resumen que realiza State System consultando la vSR_SummaryTasks vista en la base de datos de Configuration Manager. State System ejecuta estas tareas en 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 almacenado de SQL Server adecuado que realiza el resumen.

Las tareas de resumen específicas de las actualizaciones de software son:

  • Evaluador de cumplimiento de asignaciones SUM

    Resume los mensajes de estado de todas las asignaciones de grupo de actualizaciones de software (implementaciones). Esta tarea se ejecuta cada hora de forma predeterminada. Se puede iniciar manualmente para una implementación específica en implementaciones de supervisión>de la consola> de Configuration Manager, hacer clic con el botón derecho en la implementación y, a continuación, hacer 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 actualizaciones específico en la consola >>de Configuration Manager Software Updates Software Updates Software Update>Groups, hacer clic con el botón derecho en el grupo de actualizaciones y, a continuación, hacer clic en Ejecutar resumen.

    También puede cambiar la programación de esta tarea haciendo clic con el botón derecho en Grupos de actualizaciones 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 Actualizaciones de software de la biblioteca >>de software y, a continuación, hacer clic en Ejecutar resumen. También puede cambiar la programación predeterminada seleccionando Resumen de programación.

  • Estado de actualización de SUM Migrate

    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 antiguo

    Elimina el estado antiguo 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 para situaciones en las que un SUP deja de estar disponible. Para obtener más información sobre la conmutación por error y la conmutación de SUP, consulte los siguientes artículos: