Acompanhe a avaliação de conformidade de atualização de software
Aplica-se a: Configuration Manager
Antes de implantar atualizações de software nos clientes, os clientes devem executar uma verificação de conformidade de atualizações de software. Recomendamos que você reserve tempo suficiente para que os clientes concluam a verificação e relatem os resultados de conformidade para que você possa revisar os resultados de conformidade e implantar apenas as atualizações necessárias nos clientes.
Quando o SUP (ponto de atualização de software) é instalado e sincronizado, é criada uma política de computador em todo o site que informa aos computadores cliente que as Atualizações de Software do Configuration Manager foram habilitadas para o site. Quando um cliente recebe a política de computador, uma verificação de avaliação de conformidade é agendada para iniciar aleatoriamente nas próximas duas horas. Quando a verificação é iniciada, um processo do Agente Cliente de Atualizações de Software limpa o histórico de verificação, envia uma solicitação para localizar o servidor Windows Server Update Services (WSUS) que deve ser usado para a verificação e atualiza a Política de Grupo local com o local do WSUS.
Para obter uma visão geral do processo de avaliação de conformidade, consulte Avaliação de conformidade de atualizações de software.
Política de verificação de atualização de software
Antes que um cliente possa tentar verificar se há atualizações, ele precisa da política UpdateSource. Essa política é criada no servidor do site após uma sincronização bem-sucedida do SUP. Esta seção discute como essa política é criada pelo seguinte processo:
Etapa 1: Após uma sincronização bem-sucedida, o WSyncMgr atualiza a Versão do Conteúdo e a Hora da Última Sincronização no banco de dados
Após uma sincronização bem-sucedida em um site primário, o WSyncMgr atualiza a Hora da Última Sincronização e a Versão do Conteúdo no banco de dados do SUP. Isso é feito executando o spProcessSUMSyncStateMessage
procedimento armazenado. No exemplo de rastreamento do SQL Server Profiler a seguir, esse procedimento armazenado é executado para atualizar a versão do conteúdo para 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 saída, N'PS1SITE. CONTOSO. COM'
Passo 2: O SMSDBMON é acionado e descarta um arquivo . STN em policypv.box
spProcessSUMSyncStateMessage
atualiza a Update_SyncStatus
tabela com a nova Versão do Conteúdo e Tempo de Sincronização. Essa atualização na tabela dispara que o Update_SyncStatus
SMSDBMON descarte um <UpdateSource_UniqueID>. STN (STN significa Notificação da Ferramenta de Verificação) em policypv.box para indicar uma alteração na definição da ferramenta de verificação. Os seguintes itens estão conectados SMSDBMON.log:
RCV: ATUALIZAÇÃO sobre Update_SyncStatus para UpdSyncStatus_iu [{C2D17964-BBDD-4339-B9F3-12D7205B39CC}][46680] SMS_DATABASE_NOTIFICATION_MONITOR
SND: Descartado E: \ ConfigMgr \ inboxes \ policypv.box {C2D17964-BBDD-4339-B9F3-12D7205B39CC}. STN (diferente de zero) [46680] SMS_DATABASE_NOTIFICATION_MONITOR
Etapa 3: O provedor de política cria ou atualiza a política UpdateSource no banco de dados
O <UpdateSource_UniqueID>. O arquivo STN notifica o Provedor de Políticas de que ele deve ativar e atualizar a política UpdateSource no banco de dados.
Os seguintes itens estão conectados PolicyPv.log:
Encontrado {C2D17964-BBDD-4339-B9F3-12D7205B39CC}. STN SMS_POLICY_PROVIDER
Adicionada a ID da ferramenta de digitalização {C2D17964-BBDD-4339-B9F3-12D7205B39CC} SMS_POLICY_PROVIDER
Adicionando à lista de exclusão: E:\ConfigMgr\inboxes\policypv.box{C2D17964-BBDD-4339-B9F3-12D7205B39CC}. STN SMS_POLICY_PROVIDER
No rastreamento do SQL Server Profiler:
selecione PolicyID, PolicyAssignmentID, SourceCRC, PADBID em SettingsPolicy onde SourceID = N'PS1' e SourceType = N'UpdateSource'
selecione Versão da Política em que PolicyID = N'{d0855677-b0a6-4e33-9bd5-7b0d06f0a2be}'
IF EXISTS (selecione PolicyID da Política em que PolicyID = N'{d0855677-b0a6-4e33-9bd5-7b0d06f0a2be}') atualize o conjunto de políticas Versão = N'40.00' em que PolicyID = N'{d0855677-b0a6-4e33-9bd5-7b0d06f0a2be}' ELSE insira os valores da Política (PolicyID, Versão) (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 (selecione 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, PolicyID) values (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 onde 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<>' onde PADBID = 16777218<>
Para ver essa política no banco de dados, execute a seguinte consulta:
SELECT CONVERT(XML, Body, 1), * FROM Policy WHERE PolicyID = (SELECT PolicyID FROM SettingsPolicy WHERE SourceType = 'UpdateSource')
Essa política contém a versão de conteúdo do servidor de atualização que é usada para localizar o local do computador WSUS no qual o cliente pode verificar. Depois que essa política é criada ou atualizada no banco de dados, os clientes obtêm a política UpdateSource nova ou atualizada durante o próximo ciclo de avaliação de política.
Etapa 4: A política é baixada e avaliada no cliente
Os seguintes itens estão conectados PolicyAgent.log no cliente:
Download iniciado com êxito da política 'CCM_Policy_Policy5.PolicyID="{d0855677-b0a6-4e33-9bd5- 7b0d06f0a2be}",PolicySource="SMS:PS1",PolicyVersion="40.00"' PolicyAgent_ReplyAssignments
Política 'CCM_Policy_Policy5.PolicyID="{d0855677-b0a6-4e33-9bd5-7b0d06f0a2be}",PolicyVersion="40.00",PolicySource="SMS:PS1"' compilado com êxito PolicyAgent_PolicyDownload
Em PolicyEvaluator.log no cliente:
Atualizando a política CCM_Policy_Policy5.PolicyID="{d0855677-b0a6-4e33-9bd5- 7b0d06f0a2be}",PolicySource="SMS:PS1",PolicyVersion="40.00" PolicyAgent_PolicyEvaluator
Política aplicada CCM_Policy_Policy5.PolicyID="{d0855677-b0a6-4e33-9bd5- 7b0d06f0a2be}",PolicySource="SMS:PS1",PolicyVersion="40.00" PolicyAgent_PolicyEvaluator
O estado da política para [CCM_Policy_Policy5.PolicyID="{d0855677-b0a6-4e33-9bd5-7b0d06f0a2be}",PolicyVersion="40.00",PolicySource="SMS:PS1"] é atualmente [Ativo] PolicyAgent_PolicyEvaluator
Para localizar a PolicyID
política UpdateSource em um cliente, execute a seguinte consulta WQL:
- Namespace:
ROOT\ccm\Policy\Machine\RequestedConfig
- Consulta:
SELECT * FROM CCM_Policy_Policy5 WHERE PolicyCategory = 'UpdateSource'
Depois que essa política é compilada no cliente, as informações de UpdateSource são armazenadas na seguinte classe WMI:
Namespace: ROOT\ccm\Policy\Machine\ActualConfig
Classe: CCM_UpdateSource
Dica
Se você comparar a instância da CCM_UpdateSource
classe no cliente com o corpo XML recuperado da tabela de políticas, observará que o conteúdo do XML parece idêntico à instância.
Etapa 5: O Agente de Verificação é notificado de que a política UpdateSource foi atualizada
Os seguintes itens estão conectados ScanAgent.log no cliente:
Dentro do CScanAgent::Notify() ScanAgent
CScanAgent::OnPolicyChange- Notificação de InstanceModificationEvent de política recebida ScanAgent
Localização do servidor WSUS
Depois de receber a política UpdateSource, o cliente tem a configuração necessária para iniciar uma verificação. No entanto, as atualizações de política não iniciarão verificações imediatas. Uma verificação pode ser disparada manualmente por meio do painel de controle do Configuration Manager ou ocorrer automaticamente no próximo horário agendado. Neste ponto, o cliente localiza o computador WSUS com a versão de conteúdo especificada na política. Esse processo é muito semelhante à maneira como o cliente encontra o local de um ponto de distribuição para um pacote e uma versão específicos.
Etapa 1: O Agente de Verificação cria uma solicitação de verificação com base na política disponível
Os seguintes itens estão conectados ScanAgent.log:
CScanAgent::ScanByUpdates- Política disponível para UpdateSourceID={C2D17964-BBDD-4339-B9F3-12D7205B39CC} ContentVersion=38 ScanAgent
CScanAgent::ScanByUpdates- Adicionada política à lista final de ScanRequest UpdateSourceID={C2D17964-BBDD-4339-B9F3-12D7205B39CC}, Policy-ContentVersion=38, Required-ContentVersion=38 ScanAgent
Etapa 2: O Agente de Verificação envia uma solicitação para o local do WSUS para os Serviços de Localização
O Agente de Verificação agora solicita o local do WSUS dos Serviços de Localização e aguarda uma resposta. Neste exemplo, a ID da solicitação de local é {C2BB9710-C548-49D0-9DF8-5F9CFC5F3862}. Os seguintes itens estão conectados ScanAgent.log:
Dentro do CScanAgent::P rocessScanRequest() ScanAgent
CScanJobManager::Scan- inserido ScanAgent
ScanJob({4CD06388-D509-46E4-8C00-75909EDD9EE8}): CScanJob::Initialize- inserido ScanAgent
ScanJob({4CD06388-D509-46E4-8C00-75909EDD9EE8}): CScanJob::Scan- inserido ScanAgent
ScanJob({4CD06388-D509-46E4-8C00-75909EDD9EE8}): CScanJob::RequestLocations- inserido ScanAgent
- - - - - - -Solicitando localizações de servidor WSUS do LS para {C2D17964-BBDD-4339-B9F3-12D7205B39CC} versão 38 ScanAgent
- - - - - -ID da solicitação de localização = {C2BB9710-C548-49D0-9DF8-5F9CFC5F3862} ScanAgent
CScanAgentCache::P ersistInstanceInCache- Instância persistente CCM_ScanJobInstance ScanAgent
ScanJob({4CD06388-D509-46E4-8C00-75909EDD9EE8}): - - - - - -Locais solicitados para ScanJobID={4CD06388-D509-46E4-8C00-75909EDD9EE8} (LocationRequestID={C2BB9710-C548-49D0-9DF8-5F9CFC5F3862}), processará a solicitação de verificação assim que os locais estiverem disponíveis. Agente de varredura
Cada trabalho de verificação é armazenado no WMI na CCM_ScanJobInstance
classe:
Namespace: root\CCM\ScanAgent
Classe: CCM_ScanJobInstance
Etapa 3: Os Serviços de Localização enviam a solicitação de localização para o ponto de gerenciamento
Os Serviços de Localização criam uma solicitação de localização e a enviam para o ponto de gerenciamento. A ID do pacote para uma solicitação de local do WSUS é a ID exclusiva UpdateSource. Os seguintes itens estão conectados LocationServices.log:
CCCMWSUSLocation::GetLocationsAsyncEx LocationServices
Tentando persistir a solicitação de localização do WSUS para ContentID='{C2D17964-BBDD-4339-B9F3-12D7205B39CC}' e ContentVersion='38' LocationServices
Solicitação de localização persistente do WSUS LocationServices
Tentando enviar a solicitação de localização do 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> LocalizaçãoServiços
Solicitação de local criada e enviada '{C2BB9710-C548-49D0-9DF8-5F9CFC5F3862}' para o pacote {C2D17964-BBDD-4339-B9F3- 12D7205B39CC} LocationServices
Etapa 4: O sistema de mensagens do CCM envia a mensagem de solicitação de localização para o ponto de gerenciamento
Os seguintes itens estão conectados CcmMessaging.log:
Enviando a mensagem assíncrona '{76453CC6-76BA-4B68-BE30-BA70754570BB}' para a fila de saída 'mp:[http]mp_locationmanager' CcmMessaging
Enviando a mensagem de saída '{76453CC6-76BA-4B68-BE30-BA70754570BB}'. Sinaliza 0x200, conta do remetente CcmMessaging vazia
Etapa 5: O ponto de gerenciamento analisa a solicitação, obtém o local do WSUS do banco de dados e envia uma resposta
O ponto de gerenciamento analisa essa solicitação e chama o MP_GetWSUSServerLocations
procedimento armazenado para obter os locais do WSUS do banco de dados. Os seguintes itens estão conectados MP_Location.log:
MP LM: Corpo da mensagem: <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_ Gerente de localização
MP LM: chamando MP_GetWSUSServerLocations MP_LocationManager
No rastreamento do 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'
Depois de obter os resultados do procedimento armazenado, o ponto de gerenciamento envia uma resposta ao cliente. O seguinte é registrado MP_Location.log:
MP LM: Corpo da mensagem de resposta:
<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><><><
Etapa 6: o CCM Messaging recebe a resposta e a envia de volta aos Serviços de Localização
O arquivo CcmMessaging.log no cliente mostra que uma resposta foi recebida. Esta mensagem foi entregue aos Serviços de Localização:
Mensagem '{76453CC6-76BA-4B68-BE30-BA70754570BB}' obteve a resposta '{8E6D05EF-B77F-4AD0-AF64-1C6F3069A29C}' para a fila de endpoint local 'LS_ReplyLocations' CcmMessaging
OutgoingMessage(Queue='mp_[http]mp_locationmanager', ID={76453CC6-76BA-4B68-BE30-BA70754570BB}): Entregue com êxito ao host 'PS1SYS.CONTOSO.COM'. CcmMessaging
Mensagem '{8E6D05EF-B77F-4AD0-AF64-1C6F3069A29C}' entregue ao endpoint 'LS_ReplyLocations' CcmMessaging
Etapa 7: Os Serviços de Localização analisam a resposta e enviam o local de volta para o Agente de Verificação
Os seguintes itens estão conectados LocationServices.log:
Processando a mensagem de resposta do local LocationServices 20/01/2014 12:18:09
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
Chamando de volta com os seguintes locais do WSUS: LocationServices
Caminho do WSUS='http://PS1SITE.CONTOSO.COM:8530
', Servidor='PS1SITE. CONTOSO. COM', Version='38' LocationServices
Caminho do WSUS='https://PS1SYS.CONTOSO.COM:8531
', Servidor='PS1SYS. CONTOSO. COM', Version='38' LocationServices
Chamando de volta com locais para solicitação do WSUS {C2BB9710-C548-49D0-9DF8-5F9CFC5F3862} LocationServices
Etapa 8: O Agente de Verificação notifica o WUAHandler para adicionar a fonte de atualização ao Registro
O Agente de Verificação agora tem a política e o local de origem da atualização com a versão de conteúdo apropriada. Os seguintes itens estão conectados ScanAgent.log:
WSUSLocationUpdate recebido para solicitação de localização guid={C2BB9710-C548-49D0-9DF8-5F9CFC5F3862} ScanAgent
ScanJob({4CD06388-D509-46E4-8C00-75909EDD9EE8}): CScanJob::OnLocationUpdate- Local Recebido=http://PS1SITE.CONTOSO.COM:8530
, Versão=38 ScanAgent
ScanJob({4CD06388-D509-46E4-8C00-75909EDD9EE8}): CScanJob::Execute- Adicionando UpdateSource={C2D17964-BBDD-4339-B9F3-12D7205B39CC}, ContentType=2, ContentLocation=http://PS1SITE.CONTOSO.COM:8530
, ContentVersion=38 ScanAgent
O Agente de Verificação notifica o WUAHandler para adicionar a fonte de atualização. WUAHandler adiciona a fonte de atualização ao registro e inicia uma atualização de Política de Grupo (se o cliente estiver no domínio) para ver se a Política de Grupo substitui o servidor de atualização que acabamos de adicionar. Os itens a seguir estão conectados WUAHandler.log em um novo cliente mostrando uma nova fonte de atualização sendo adicionada:
É um tipo de fonte de atualização do WSUS ({C2D17964-BBDD-4339-B9F3-12D7205B39CC}), adicionando-o. WUAHandler
É uma fonte de atualização WSUS completamente nova. WUAHandler
Habilitando a política de servidor gerenciado do WUA para usar o servidor:http://PS1SITE.CONTOSO.COM:8530
WUAHandler
Atualização de política forçada. WUAHandler
Aguardando 2 minutos para que a Política de Grupo notifique sobre a alteração da política da WUA... WUAHandler
Aguardando 30 segundos para que a política entre em vigor no WU Agent. WUAHandler
Adicionada fonte de atualização ({C2D17964-BBDD-4339-B9F3-12D7205B39CC}) do tipo de conteúdo: 2 WUAHandler
Durante esse tempo, o Windows Update Agent vê uma alteração de configuração do WSUS. Os seguintes itens estão conectados WindowsUpdate.log:
2014-01-20 12:18:11:520 968 9d0 Agente * Servidor WSUS:
http://PS1SITE.CONTOSO.COM:8530
(Alterado)
2014-01-20 12:18:11:520 968 9d0 Agente * Servidor de status do WSUS:http://PS1SITE.CONTOSO.COM:8530
(Alterado)
2014-01-20 12:18:11:520 968 9d0 AU Sus servidor alterado através da política.
As seguintes chaves do Registro são verificadas e definidas:
Subchave do Registro | Nome do valor | Tipo | Dados |
---|---|---|---|
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\WindowsUpdate |
WUServer | REG_SZ | A URL completa do servidor WSUS, incluindo a porta. Por exemplo, http://PS1Site.Contoso.com:8530 |
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\WindowsUpdate |
WUStatusServer | REG_SZ | A URL completa do servidor WSUS, incluindo a porta. Por exemplo, http://PS1Site.Contoso.com:8530 |
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\WindowsUpdate\AU |
UseWUServer | REG_DWORD | 0x1 |
Para um cliente existente, podemos esperar ver o seguinte em WUAHandler.log para indicar quando a versão do conteúdo foi incrementada:
É um tipo de fonte de atualização do WSUS ({C2D17964-BBDD-4339-B9F3-12D7205B39CC}), adicionando-o. WUAHandler
A fonte de atualização do WSUS já existe, aumentou a versão para 38. WUAHandler
Etapa 9: O Agente de Verificação inicia a verificação
Depois que a fonte de atualização for adicionada com êxito, o Agente de Verificação gerará uma mensagem de estado e iniciará a verificação. Os seguintes itens estão conectados ScanAgent.log:
ScanJob({4CD06388-D509-46E4-8C00-75909EDD9EE8}): Mensagem de estado UpdateSource ({C2D17964-BBDD-4339-B9F3-12D7205B39CC}) gerada com êxito. StateId = 2 ScanAgent
ScanJob({4CD06388-D509-46E4-8C00-75909EDD9EE8}): CScanJob::Execute - Verificação solicitada com êxito, ScanType=1 ScanAgent
Verificação de atualização de software em clientes
Depois que a política de origem de atualização e o local de origem de atualização estiverem disponíveis, o Agente de Verificação iniciará a verificação. A verificação de atualização de software é realmente executada pelo Windows Update Agent. No entanto, o cliente do Configuration Manager interage com o Windows Update Agent para executar uma verificação e obter os resultados da verificação. Essa interação é manipulada pelo componente WUAHandler (Manipulador do Agente do Windows Update), que se comunica com o Agente do Windows Update.
Etapa 1: O Agente de Verificação solicita a verificação e o WUAHandler inicia a verificação
O Agente de Verificação solicita a verificação do WUAHandler, que usa a API do Windows Update Agent para solicitar uma verificação de atualização de software do Windows Update Agent. O seguinte está conectado ScanAgent.log:
ScanJob({4CD06388-D509-46E4-8C00-75909EDD9EE8}): CScanJob::Execute - Verificação solicitada com êxito, ScanType=1 ScanAgent
Os seguintes itens estão conectados WUAHandler.log:
Os resultados da verificação incluirão atualizações substituídas somente quando forem substituídas por service packs e atualizações de definição. WUAHandler
Os critérios de pesquisa são (DeploymentAction=* AND Type='Software') OR (DeploymentAction=* AND Type='Driver') WUAHandler
Execução de verificação de chamadas únicas de atualizações. WUAHandler
A pesquisa assíncrona de atualizações usando o WUAgent foi iniciada. WUAHandler
Etapa 2: Windows Update Agent (WUA) inicia a verificação no computador WSUS
O Windows Update Agent inicia uma verificação depois de receber uma solicitação do cliente do Configuration Manager (CcmExec). Como o valor do Windows Update Server já foi definido como o servidor SUP, essa verificação é executada no servidor WSUS que tem a função SUP instalada. Os seguintes itens estão conectados WindowsUpdate.log:
2014-01-20 12:18:42:694 3856 708 COMAPI -- INÍCIO -- COMAPI: Pesquisar [ClientId = CcmExec]
2014-01-20 12:18:42:752 3856 708 COMAPI <<-- SUBMETIDO -- COMAPI: Pesquisa [ClientId = CcmExec]
2014-01-20 12:18:47:511 968 f58 PT + ServiceId = {3DA21691-E39D-4DA6-8A4B-B43877BCB1B7}, URL do servidor =http://PS1SITE.CONTOSO.COM:8530/ClientWebService/client.asmx
2014-01-20 12:18:48:662 968 f58 Agente ** START ** Agente: Localizando atualizações [CallerId = CcmExec]
2014-01-20 12:18:48:662 968 f58 Agente * Incluir atualizações potencialmente substituídas
2014-01-20 12:18:48:662 968 f58 Agente * Online = Sim; Ignorar prioridade de download = Sim
2014-01-20 12:18:48:662 968 f58 Agente * Critérios = "(DeploymentAction=* AND Type='Software') OR (DeploymentAction=* AND='Driver')"
2014-01-20 12:18:48:662 968 f58 Agente * ServiceID = {3DA21691-E39D-4DA6-8A4B-B43877BCB1B7} Gerenciado
2014-01-20 12:18:48:662 968 f58 Agente * Escopo de pesquisa = {Máquina}
O Windows Update Agent agora verifica o servidor WSUS e relata os resultados ao CcmExec (especificamente ao WUAHandler). Os seguintes itens estão conectados WindowsUpdate.log:
2014-01-20 12:18:49:175 968 f58 PT + ServiceId = {3DA21691-E39D-4DA6-8A4B-B43877BCB1B7}, URL do servidor =
http://PS1SITE.CONTOSO.COM:8530/ClientWebService/client.asmx
2014-01-20 12:18:52:680 968 f58 Agente * Adicionada atualização {4AE85C00-0EAA-4BE0-B81B-DBD7053D5FAE}.104 toresultado da pesquisa
2014-01-20 12:18:52:683 968 f58 Agente * Adicionada atualização {57260DFE-227C-45E3-9FFC-2FC77A67F95A}.104 ao resultado da pesquisa
2014-01-20 12:18:52:694 968 f58 Agente * Encontrado 163 atualizações e 70 categorias na pesquisa; Regras de aplicação avaliadas de 622 de 1150 entidades implantadas
2014-01-20 12:18:52:745 968 f58 Agente ** END ** Agente: Localizando atualizações [CallerId = CcmExec]
2014-01-20 12:18:52:755 3856 708 COMAPI >>-- RETOMADO -- COMAPI: Pesquisa [ClientId = CcmExec]
2014-01-20 12:18:53:137 3856 708 COMAPI - Atualizações encontradas = 163
2014-01-20 12:18:53:137 3856 708 COMAPI -- FIM -- COMAPI: Pesquisar [ClientId = CcmExec]
Etapa 3: WUAHandler recebe os resultados do Windows Update Agent e marca a verificação como concluída
Os seguintes itens estão conectados WUAHandler.log:
Pesquisa assíncrona concluída. WUAHandler
Terminei de pesquisar tudo em uma única chamada. WUAHandler
Etapa 4: WUAHandler analisa os resultados da verificação
Em seguida, o WUAHandler analisa os resultados, que incluem o estado de aplicabilidade para cada atualização. Como parte desse processo, as atualizações substituídas são removidas. Os seguintes itens estão conectados WUAHandler.log:
Poda: a ID de atualização (70f4f236-0248-4e84-b472-292913576fa1) foi substituída por (726b7201-862a-4fde-9b12-f36b38323a6f). WUAHandler
...
Atualização (instalada): Atualização de segurança para Windows 7 para sistemas baseados em x64 (KB2584146) (4ae85c00-0eaa-4be0-b81b-dbd7053d5fae, 104) WUAHandler
Atualização (ausente): Atualização de segurança do Windows 7 para sistemas baseados em x64 (KB2862152) (505fda07-b4f3-45fb-83d9-8642554e2773, 200) WUAHandler
...
Verificação concluída com êxito. WUAHandler
Etapa 5: O repositório de atualizações registra o status e gera uma mensagem de estado para cada atualização no WMI
Depois que os resultados da verificação estiverem disponíveis, esses resultados serão armazenados no repositório de atualizações. O repositório de atualizações registra o estado atual de cada atualização e cria uma mensagem de estado para cada atualização. Essas mensagens de estado são encaminhadas para o servidor do site em massa no final do ciclo de relatório de mensagens de status (que é de 15 minutos, por padrão).
UpdatesStore.log mostrando o estado da atualização ausente (KB2862152) sendo registrada e uma mensagem de estado sendo gerada:
Processando o status de atualização da atualização (505fda07-b4f3-45fb-83d9-8642554e2773) com ProductID = 0fa1201d-4330-4fa8-8ae9- b877473b6441 UpdatesStore
O status da atualização da atualização (505fda07-b4f3-45fb-83d9-8642554e2773) não foi relatado antes, criando uma nova instância. UpdatesStore
Mensagem de estado gerada com êxito para atualização (505fda07-b4f3-45fb-83d9-8642554e2773) com o estado (Ausente). UpdatesStore
Adicionada com êxito a instância WMI do status de atualização (505fda07-b4f3-45fb-83d9-8642554e2773). UpdatesStore
StateMessage.log mostrando a mensagem de estado que está sendo gravada com o ID de estado 2 (ausente):
Adicionando mensagem com TopicType 500 e TopicId 505fda07-b4f3-45fb-83d9-8642554e2773 para WMI StateMessage
A mensagem de estado (ID do estado: 2) com TopicType 500 e TopicId 505fda07-b4f3-45fb-83d9-8642554e2773 foi registrada para SYSTEM StateMessage
Para cada atualização, uma instância da CCM_UpdateStatus
classe é criada ou atualizada, e isso armazena o status atual da atualização. A classe CCM_UpdateStatus
está no namespace ROOT\CCM\SoftwareUpdates\UpdatesStore
.
Da mesma forma, uma instância da CCM_StateMsg
classe é criada ou atualizada e armazena o estado atual da atualização. A classe CCM_StateMsg
está no namespace ROOT\CCM\StateMsg
.
Etapa 6: As mensagens de estado são enviadas para o ponto de gerenciamento
Conforme mencionado anteriormente, as mensagens de estado são enviadas para o ponto de gerenciamento com base no agendamento do ciclo de relatório de mensagens de estado, que é configurado para 15 minutos por padrão. Depois que uma mensagem de estado é enviada para o ponto de gerenciamento, a MessageSent
propriedade da instância de mensagem de estado na CCM_StateMsg
classe é definida como True.
Em StateMessage.log:
StateMessage body: <Corpo do relatório XML StateMessage truncado>
Mensagens de estado encaminhadas com êxito para o MP StateMessage
Veja a seguir a aparência do corpo da mensagem de estado para nossa atualização. Normalmente, esse corpo XML é muito grande para o log e é truncado no CMTrace. No entanto, você pode ver todo o corpo XML no Bloco de Notas.
StateMessage body: <?xml version="1.0" encoding="UTF-16"?>
<Relatório do relatórioComputador de identificação><de cabeçalho><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</><>< Prioridade></Máquina></Identificação><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 do tópico="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
Mensagens de estado encaminhadas com êxito para o MP StateMessage
Fluxo de processamento de mensagens de estado
Agora sabemos como uma mensagem de estado é registrada e o local WMI onde essas mensagens de estado são armazenadas. Também sabemos que as mensagens de estado não enviadas em um cliente são enviadas para o ponto de gerenciamento a cada 15 minutos por padrão, de acordo com o ciclo de relatório de mensagens de estado. Esse agendamento pode ser modificado nas Mensagens de Estado das configurações personalizadas ou padrão do cliente.
Embora StateMessage.log relate mensagens de estado encaminhadas com êxito para o MP, o componente Mensagem de Estado não está realmente enviando essas mensagens. Todas as mensagens enviadas e recebidas do ponto de gerenciamento são manipuladas pelo componente Mensagens do CCM no cliente. O Sistema de Mensagens CCM é o componente real que se comunica com o ponto de gerenciamento para enviar e receber dados. O ponto de gerenciamento tem várias filas definidas para lidar com diferentes tipos de tráfego de entrada. Para mensagens de estado, a fila que lida com esse tráfego é a MP_RelayEndpoint
fila.
Etapa 1: O componente Mensagem de Estado começa a enviar mensagens para o ponto de gerenciamento
Em StateMessage.log:
StateMessage body: <?xml version="1.0" encoding="UTF-16"?><Relatório de relatórioIdentificação de cabeçalho><Máquina><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</><>< Prioridade></Máquina></Identificação><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 do tópico="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
Mensagens de estado encaminhadas com êxito para o MP StateMessage
Etapa 2: O sistema de mensagens do CCM envia uma mensagem contendo o corpo XML da mensagem de estado para o ponto de gerenciamento
O CCM Messaging envia uma mensagem para a MP_RelayEndpoint
fila com êxito. Essa mensagem não tem uma resposta, ao contrário da que observamos anteriormente na seção Solicitação de Localização do WSUS, em que a mensagem com a Solicitação de Local recebeu uma resposta.
Em CcmMessaging.log:
Enviando a mensagem assíncrona '{95F79010-D0EB-49A6-8A1E-3897883105F2}' para a fila de saída 'mp:mp_relayendpoint' CcmMessaging
Enviando a mensagem de saída '{95F79010-D0EB-49A6-8A1E-3897883105F2}'. Sinaliza 0x200, conta do remetente CcmMessaging vazia
POST: Host = PS1SYS. CONTOSO.COM, Caminho = / ccm_system / solicitação, Porta = 443, Protocolo = https, Sinalizadores = 512, Opções = 480 CcmMessaging
A mensagem '{95F79010-D0EB-49A6-8A1E-3897883105F2}' não tem resposta CcmMessaging
OutgoingMessage(Queue='mp_mp_relayendpoint', ID={95F79010-D0EB-49A6-8A1E-3897883105F2}): Entregue com êxito ao host 'PS1SYS.CONTOSO.COM'. CcmMessaging
Etapa 3: A mensagem é recebida no ponto de gerenciamento e, em seguida, MP_Relay processa a mensagem e cria um arquivo SMX
Como todas as mensagens são enviadas usando HTTP/HTTPS e são recebidas pelo IIS. Neste exemplo, essa solicitação é feita para o diretório virtual CCM_System.
No log do IIS:
192.168.2.12 CCM_POST /ccm_system/request - 443 - 192.168.2.62 ccmhttp - 200 0 0 542 31
Depois que a mensagem é recebida com êxito no ponto de gerenciamento, o MP_Relay
componente processa essa mensagem, converte a mensagem em um arquivo SMX e move o arquivo SMX para o local apropriado, dependendo se o ponto de gerenciamento está colocado no servidor do site ou não.
- Em um ponto de gerenciamento remoto: \SMS\mp\outboxes\StateMsg.box
- Em um ponto de gerenciamento colocado no servidor do site: \inboxes\auth\StateSys.box\incoming
Em MP_Relay.log em um ponto de gerenciamento colocalizado no servidor do site:
Mp Message Handler: inicia o processamento de mensagens para Relay----------------------- MP_RelayEndpoint
Manipulador de mensagens MP: FileType=SMX MP_RelayEndpoint
Corpo da mensagem: <Corpo XML truncado> MP_RelayEndpoint
Retransmissão: Diretório da caixa de saída: E: \ ConfigMgr \ inboxes \ auth \ statesys.box \ MP_RelayEndpoint de entrada
Prioridade na mensagem = 5 MP_RelayEndpoint
Diretório de prioridade de estado = E:\ConfigMgr\inboxes\auth\statesys.box\MP_RelayEndpoint de entrada
Inv-Relay: Tarefa concluída com sucesso MP_RelayEndpoint
Em MP_Relay.log em um ponto de gerenciamento remoto:
Mp Message Handler: inicia o processamento de mensagens para Relay------------------------------ MP_RelayEndpoint
Manipulador de mensagens MP: FileType=SMX MP_RelayEndpoint
Corpo da mensagem:
<?xml version="1.0" encoding="UTF-16"?>
<Relatório do relatórioComputador de identificação><de cabeçalho><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</><>< Prioridade></Máquina></Identificação><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 do tópico="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
Tarefa Inv-Relay: Processando o corpo da mensagem MP_RelayEndpoint
Retransmissão: Diretório da caixa de saída: C:\SMS\mp\outboxes\StateMsg.box MP_RelayEndpoint
Prioridade na mensagem = 5 MP_RelayEndpoint
Diretório de prioridade de estado = C:\SMS\mp\outboxes\StateMsg.box MP_RelayEndpoint
Inv-Relay: Tarefa concluída com sucesso MP_RelayEndpoint
O corpo XML parece idêntico ao que está conectado StateMessage.log no cliente.
Etapa 4: MP File Dispatch Manager envia o arquivo SMX para o servidor do site (somente quando o ponto de gerenciamento não está colocado no servidor local)
Quando o ponto de gerenciamento é remoto para o servidor do site, depois que o arquivo chega em outboxes\StateMsg.box, o MPFDM (Gerenciador de Expedição de Arquivos MP) é responsável por mover esses arquivos para a caixa de entrada StateMsg.box no servidor do site. Quando o ponto de gerenciamento é colocado no servidor do site, esses arquivos são movidos diretamente para a pasta Caixa de Entrada apropriada, portanto, o MPFDM não está envolvido.
Em MPFDM.log em um ponto de gerenciamento remoto:
Arquivo movido C:\SMS\MP\OUTBOXES\statemsg.box\TAZGYTSJ. SMX para \\PS1SITE.CONTOSO.COM\SMS_PS1\inboxes\auth\statesys.box\incoming\TAZGYTSJ. SMX SMS_MP_FILE_DISPATCH_MANAGER
Para que o MPFDM mova os arquivos para a caixa de entrada apropriada, o ponto de gerenciamento remoto deve ser capaz de acessar o registro do servidor do site para determinar os locais de origem da Caixa de Entrada. Portanto, o serviço de Registro Remoto deve estar em execução e o Acesso ao Registro não deve ser bloqueado pela Política de Grupo. O MPFDM determina os locais da Caixa de Entrada acessando a seguinte chave do Registro no servidor do site:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Inbox Source
Etapa 5: O componente StateSys no servidor do site processa a mensagem de estado para o banco de dados
Depois que o arquivo chega em \inboxes\auth\StateSys.box no servidor do site, o componente State System Manager (StateSys) é ativado e processa o(s) arquivo(s) SMX.
No StateSys.log com o registro detalhado ativado:
Notificação da caixa de entrada acionada, pausa de 10 segundos...... SMS_STATE_SYSTEM
Encontradas novas mensagens de estado para processar, iniciando o processamento de thread SMS_STATE_SYSTEM
Thread "Tópico de processamento de mensagens de estado #0" id:4316 iniciado SMS_STATE_SYSTEM
Total de mandris carregados (1) SMS_STATE_SYSTEM
CMessageProcessor - Arquivo de processamento: YCE2H3VD. SMX SMS_STATE_SYSTEM
CMessageProcessor - Processou 1 registros com 0 registros inválidos. SMS_STATE_SYSTEM
CMessageProcessor - Processou 1 arquivo de mensagem neste lote, com 0 arquivos inválidos. SMS_STATE_SYSTEM
Total de mandris carregados (0) SMS_STATE_SYSTEM
Thread "Thread de processamento de mensagens de estado #0" id:4316 encerrado normalmente SMS_STATE_SYSTEM
No StateSys.log sem log detalhado habilitado:
Encontradas novas mensagens de estado para processar, iniciando o processamento de thread SMS_STATE_SYSTEM
Thread "State Message Processing Thread #0" id:1988 iniciado SMS_STATE_SYSTEM
Total de mandris carregados (1) SMS_STATE_SYSTEM
Total de mandris carregados (0) SMS_STATE_SYSTEM
Thread "Thread de processamento de mensagens de estado #0" id:1988 encerrado normalmente SMS_STATE_SYSTEM
O arquivo StateSys.log não registra o nome do arquivo, a menos que o log detalhado esteja habilitado para o State System Manager.
O arquivo SMX movido para a pasta StateSys.box contém o XML do corpo da mensagem. Quando o StateSys processa esse arquivo, ele chama o spProcessStateReport
procedimento armazenado e passa esse corpo XML para o procedimento armazenado como um parâmetro.
No rastreamento do SQL Server Profiler:
exec dbo.spProcessStateReport N'?xml version="<1.0" encoding="UTF-16"?>
<Relatório do relatórioComputador de identificação><de cabeçalho><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</><>< Prioridade></Máquina></Identificação><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 do tópico="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
é um procedimento armazenado CLR e a definição CLR tem a lógica para determinar o tipo de mensagem de estado que está sendo processada. Dependendo do tipo de mensagem de estado, ele processa a mensagem de estado adequadamente e insere os dados no banco de dados.
Você pode encontrar nomes amigáveis de todos os tipos de tópicos e IDs de mensagens de estado consultando a SR_StateNames
tabela com o seguinte comando:
SELECT * FROM SR_StateNames
Resumo de atualização de software
Antes que os dados de conformidade de atualização de software possam ser apresentados no console ou nos relatórios, os dados de conformidade de atualização de software devem ser resumidos. Isso é necessário porque o console e os relatórios geralmente exibem apenas dados resumidos. O componente Sistema de Estado no servidor do site executa o resumo da atualização de software junto com o resumo de outros componentes, como aplicativos, implantações do DCM e integridade do cliente. Você pode encontrar informações sobre todas as tarefas de resumo que o Sistema de Estado executa consultando a vSR_SummaryTasks
exibição no banco de dados do Configuration Manager. O Sistema de Estado executa essas tarefas em um agendamento configurado e registra detalhes sobre cada tarefa em StateSys.log:
Tarefa iniciada '<TaskName>' SMS_STATE_SYSTEM
A tarefa '<TaskName>' foi concluída com êxito após ser executada por 15 segundos, com status 8. SMS_STATE_SYSTEM
Para a maioria dessas tarefas, o status registrado pelo StateSys.log não é um código de erro. Em vez disso, é o número de linhas retornadas pelo procedimento armazenado apropriado do SQL Server que executa o resumo.
As tarefas de resumo específicas para atualizações de software são:
Avaliador de Conformidade de Atribuição de SUM
Resume as mensagens de estado para todas as atribuições de grupo de atualização de software (implantações). Essa tarefa é executada a cada hora por padrão. Ele pode ser iniciado manualmente para uma implantação específica no console >do Configuration Manager Monitorando>Implantações, clique com o botão direito do mouse na implantação e clique em Executar Resumo.
Resumidor de status do grupo de atualização de soma
Resume o status dos grupos de atualização. Essa tarefa é executada a cada hora por padrão. Ele pode ser iniciado manualmente para um Grupo de Atualização específico no console >do Configuration Manager Biblioteca>de Software Atualizações>de Software Grupos de Atualização de Software, clique com o botão direito do mouse no grupo de atualização e clique em Executar Resumo.
Você também pode alterar o agendamento dessa tarefa clicando com o botão direito do mouse em Grupos de Atualização de Software ou selecionando Resumo de Agendamento na faixa de opções.
Resumidor de status de atualização de SOMA
Resume o status das atualizações para todos os clientes. Essa tarefa é executada a cada hora por padrão. Ele pode ser iniciado manualmente no console >do Configuration Manager Biblioteca>de Software Atualizações de Software e, em seguida, clique em Executar Resumo. Você também pode alterar o agendamento padrão selecionando Resumo de agendamento.
Status de atualização do SUM Migrate
Migra o status de atualização internamente no banco de dados. Essa tarefa é executada a cada 24 horas por padrão. Ele não pode ser iniciado manualmente no console do Configuration Manager.
SOMA Excluir Status Antigo
Exclui o status antigo de tabelas específicas de atualização de software no banco de dados. Essa tarefa é executada a cada 24 horas por padrão. Ele não pode ser iniciado manualmente no console do Configuration Manager.
Mudança de ponto de atualização de software
No System Center 2012 Configuration Manager SP1 e versões posteriores, um site pode ter vários SUPs. Isso fornece tolerância a falhas para situações em que um SUP fica indisponível. Para obter mais informações sobre failover e comutação de SUPs