Seguimiento de la evaluación del 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 el examen y notifiquen los resultados 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 de todo el sitio que informa a los equipos cliente de que Configuration Manager software Novedades se ha habilitado 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 de software Novedades agente cliente 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 el 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

Antes de 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 proceso siguiente:

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 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 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>. Archivo STN (STN significa Notificación de herramienta de examen) en policypv.box para indicar un cambio en la definición de la herramienta de examen. A continuación, se registran SMSDBMON.log:

RCV: ACTUALIZACIÓN en Update_SyncStatus para UpdSyncStatus_iu [{C2D17964-BBDD-4339-B9F3-12D7205B39CC}][46680] SMS_DATABASE_NOTIFICATION_MONITOR
SND: 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 reactivar 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 id. 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 SQL Server Profiler seguimiento:

seleccione PolicyID, PolicyAssignmentID, SourceCRC, PADBID en SettingsPolicy donde SourceID = N'PS1' y SourceType = N'UpdateSource'

seleccione Versión en Directiva donde PolicyID = N'{d0855677-b0a6-4e33-9bd5-7b0d06f0a2be}'
IF EXISTS (seleccione PolicyID en 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 (seleccione PADBID en PolicyAssignment, donde PADBID = 16777218) actualice PolicyAssignment set Version = N'40.00', InProcess = 1 , BodyHash = null donde PADBID = 16777218 ELSE inserte PolicyAssignment (PolicyAssignmentID, PADBID, Version, Valores de 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 la que el cliente puede examinar. 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 directivas.

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

A continuación, se registran 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"' compilado correctamente PolicyAgent_PolicyDownload

En PolicyEvaluator.log en el cliente:

Actualizar 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 el PolicyID de la directiva UpdateSource en un cliente, ejecute la siguiente consulta WQL:

  • 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 CCM_UpdateSource 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 se actualiza la directiva UpdateSource.

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

Dentro de CScanAgent::Notify() ScanAgent
CScanAgent::OnPolicyChange- Notificación de instancia de directivaModificationEvent 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 Configuration Manager o se puede realizar automáticamente en la próxima hora programada. En este momento, 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 scanRequest final 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 Location Services

El Agente de examen solicita ahora la ubicación de WSUS a 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- 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
- - - - - -Solicitar ubicaciones de servidor WSUS desde LS para {C2D17964-BBDD-4339-B9F3-12D7205B39CC} versión 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: 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 la solicitud de ubicación de WSUS persistenteServicios
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 ccm envía el mensaje de solicitud de ubicación al punto de administración

A continuación, se registran CcmMessaging.log:

Envío del 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 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 wsus de la base de datos. A continuación, se registran 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"/><IP Address><="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: Ccm Messaging recibe la respuesta y la envía de vuelta a Location Services

El archivo CcmMessaging.log del cliente muestra que se ha recibido una respuesta. Este mensaje se entregó a Location Services:

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

Paso 7: Location Services analiza la respuesta y envía la ubicación de vuelta al Agente de examen.

A continuación, se registran LocationServices.log:

Mensaje de respuesta ubicación de procesamientoServicios 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 a 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
Llamada de vuelta con ubicaciones para la solicitud WSUS {C2BB9710-C548-49D0-9DF8-5F9CFC5F3862} LocationServices

Paso 8: Scan Agent notifica a WUAHandler que agregue 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 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 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 directiva de grupo invalida el servidor de actualizaciones 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 va a agregar:

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 de directiva forzada. WUAHandler
Esperando 2 minutos para que 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 Datos
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

En el caso de un cliente existente, es de esperar que en WUAHandler.log se vea lo siguiente para indicar cuándo se ha incrementado la versión del 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

Una vez agregado correctamente el origen de la actualización, el Agente de examen genera un mensaje de estado e inicia el examen. A continuación, se registran ScanAgent.log:

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

Examen de actualizaciones de software en clientes

Una vez que la directiva de origen de actualización y la ubicación de origen de actualización están disponibles, el Agente de examen inicia el examen. El examen de actualizaciones de software lo realiza realmente el agente de Windows Update. 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 Windows Update Agent Handler (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 a 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. Lo siguiente se registra en ScanAgent.log:

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

A continuación, se registran WUAHandler.log:

Los resultados del examen incluirán actualizaciones sustituidas solo cuando se reemplacen por service packs y actualizaciones de definiciones. WUAHandler
Búsqueda Criteria es (DeploymentAction=* AND Type='Software') OR (DeploymentAction=* AND Type='Driver') WUAHandler
Ejecución de un examen de actualizaciones en una sola llamada. WUAHandler
Se inició la búsqueda asincrónica de actualizaciones mediante WUAgent. WUAHandler

Paso 2: Windows Update Agent (WUA) inicia el examen en el equipo WSUS

Windows Update Agente 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 ha establecido 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: Búsqueda [ClientId = CcmExec]
2014-01-20 12:18:42:752 3856 708 COMAPI <<-- SUBMITTED -- COMAPI: Búsqueda [ClientId = CcmExec]
2014-01-20 12:18:47:511 968 f58 PT + ServiceId = {3DA21691-E39D-4DA6-8A4B-B43877BCB1B7}, Server URL = 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 Agent * 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 Agent * Búsqueda Scope = {Machine}

Windows Update Agente 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}, Server URL = http://PS1SITE.CONTOSO.COM:8530/ClientWebService/client.asmx
2014-01-20 12:18:52:680 968 f58 Agente * Se agregó la actualización {4AE85C00-0EAA-4BE0-B81B-DBD7053D5FAE}.104 para buscar el resultado
2014-01-20 12:18:52:683 968 f58 Agent * Se agregó la actualización {57260DFE-227C-45E3-9FFC-2FC77A67F95A}.104 para buscar resultados
2014-01-20 12:18:52:694 968 f58 Agent * Se encontraron 163 actualizaciones y 70 categorías en la búsqueda; reglas de aplicación evaluadas de 622 de 1150 entidades implementadas
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: Búsqueda [ClientId = CcmExec]
2014-01-20 12:18:53:137 3856 708 COMAPI - Novedades encontrado = 163
2014-01-20 12:18:53:137 3856 708 COMAPI -- END -- COMAPI: Búsqueda [ClientId = CcmExec]

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

A continuación, se registran WUAHandler.log:

Búsqueda asincrónica completada. WUAHandler
Finalizó la búsqueda de 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 sustituidas se eliminan. A continuación, se registran WUAHandler.log:

Eliminación: el identificador de actualización (70f4f236-0248-4e84-b472-292913576fa1) se reemplaza 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: El almacén de actualizaciones registra el estado y genera un mensaje de estado para cada actualización de WMI.

Una vez que los resultados del examen están disponibles, 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 reenvía 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 mostrar el estado de la actualización que falta (KB2862152) que se registra y se genera un mensaje de estado:

Procesamiento del estado de actualización 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 wmi de estado de actualización (505fda07-b4f3-45fb-83d9-8642554e2773). UpdatesStore

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

Adición de un 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 se almacena 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 clase CCM_UpdateStatus.

De forma similar, se crea o actualiza una instancia de la CCM_StateMsg clase , y esto almacena 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 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 está configurado 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 Truncado> 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><ReportBody><StateMessage MessageTime="20140120171855.573000+000" SerialNumber="232"><Id. de tema="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 personalizada o predeterminada.

Aunque StateMessage.log notifica mensajes de estado reenviados correctamente al mp, el componente de mensaje de estado no envía realmente estos mensajes en sí. Todos los mensajes enviados y recibidos desde el punto de administración son controlados por 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. En el caso de 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"><Id. de tema="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 vimos 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
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}): se entrega 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.

Dado que todos los mensajes se envían mediante HTTP/HTTPS y IIS los recibe. En este ejemplo, esta solicitud se realiza al 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 está colocado en el servidor de sitio o no.

  • En un punto de administración remoto: \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 ubicado conjuntamente 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
Directorio de prioridad de estado = 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 remoto:

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><ReportBody><StateMessage MessageTime="20140120171855.573000+000" SerialNumber="232"><Id. de tema="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
tarea Inv-Relay: procesar el cuerpo del mensaje MP_RelayEndpoint
Relay: Directorio 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: tarea completada correctamente MP_RelayEndpoint

El cuerpo XML es idéntico a lo que se ha registrado StateMessage.log en el cliente.

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

Cuando el punto de administración es remoto al servidor de sitio, una vez que el archivo llega a la bandeja 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 remoto:

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 directiva de grupo no debe bloquear el acceso al Registro. MPFDM determina las ubicaciones de 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 en el servidor de sitio procesa el mensaje de estado en la base de datos

Una vez que el archivo llega a \inboxes\auth\StateSys.box en el servidor de sitio, el componente State System Manager (StateSys) 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 que procesar, iniciando el procesamiento de subprocesos SMS_STATE_SYSTEM
Se inició el subproceso "Subproceso de procesamiento de mensajes de estado #0": 4316 SMS_STATE_SYSTEM
total de mandriles 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 mandriles cargados (0) SMS_STATE_SYSTEM
El subproceso "State Message Processing Thread #0" id:4316 finalizó normalmente SMS_STATE_SYSTEM

En StateSys.log sin registro detallado habilitado:

Se encontraron nuevos mensajes de estado que procesar, iniciando el procesamiento de subprocesos SMS_STATE_SYSTEM
El subproceso "State Message Processing Thread #0" id:1988 se inició SMS_STATE_SYSTEM
total de mandriles cargados (1) SMS_STATE_SYSTEM
total de mandriles cargados (0) SMS_STATE_SYSTEM
El subproceso "State Message Processing Thread #0" id:1988 finalizó 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 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"><Id. de tema="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 clr tiene la lógica para determinar el tipo de mensaje de estado que se está procesando. En función del 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 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

Antes de 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 datos resumidos. El componente Sistema de estado del servidor de 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 el sistema de estado realiza consultando la vSR_SummaryTasks vista en la base de datos de Configuration Manager. El sistema de estado ejecuta estas tareas según una programación configurada y registra detalles sobre cada tarea de 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

En 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 adecuado SQL Server 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 grupos 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 Configuration Managerimplementaciones de supervisión> de consola>, hacer clic con el botón derecho en la implementación y, a continuación, hacer clic en Ejecutar resumen.

  • Resumen de estado de grupo de actualización de SUM

    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 Configuration Manager software de la biblioteca> de software de la consola >Novedades Grupos> de actualizaciones de software, haga clic con el botón derecho en el grupo de actualizaciones 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 derecho en Grupos de actualizaciones de software o seleccionando Programar resumen en la cinta de opciones.

  • Resumen de estado de actualización de SUM

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

  • SUM Migrate Update Status

    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 por error de los SUP, consulte los artículos siguientes: