Erro WMI no log de eventos a cada inicialização: EventID 5605

2

Tenho alguns servidores que continuo recebendo o erro EventID 5605

The root\cimv2\TerminalServices namespace is marked with the RequiresEncryption flag. Access to this namespace might be denied if the script or application does not have the appropriate authentication level. Change the authentication level to Pkt_Privacy and run the script or application again.

O problema é que não tenho ideia de onde esse script está sendo executado, por isso não posso atualizar o script para resolver o problema como todos os outros postes que encontrei no Evento 5605. Verifiquei o GPO dos scripts de inicialização, verifiquei todo o compartilhamento SYSVOL do meu domínio para um script VBScript ou Powershell. Não consigo encontrar esse script em lugar algum. Como posso rastrear este script e corrigi-lo para que ele pare de gerar esse erro?

    
por Scott Chamberlain 22.06.2012 / 20:25

2 respostas

1

Use Rastreamento de eventos WMI no Visualizador de eventos, permitirá que você vincule as consultas do WMI a um processo específico.

  1. Abra o Visualizador de Eventos.
  2. No menu Exibir, clique em Mostrar analítico e depurar Logs
  3. Localize o log do canal de rastreamento para WMI em Aplicativos e Logs de serviço | Microsoft | Windows | Atividade do WMI.
  4. Clique com o botão direito do mouse no log de rastreamento e selecione Propriedades do log.
  5. Clique na caixa de seleção Ativar registro em log para iniciar o rastreio do evento WMI.

Os eventos WMI aparecem na janela do evento para a atividade WMI.

Este registro de eventos às vezes é difícil de usar, portanto, é possível usar um script como este para iniciar o rastreamento e exibir eventos, com o nome do processo anexado às consultas do WMI:

$wmiLog = "Microsoft-Windows-WMI-Activity/Trace"
echo y | Wevtutil.exe sl $wmiLog /e:true
Read-Host -Prompt "Tracing WMI Started. Press [ENTER] to stop"
echo y | Wevtutil.exe sl $wmiLog /e:false
$events = Get-WinEvent -LogName $wmiLog -Oldest | Where-Object {$_.message.Contains("Operation = Start") -or $_.message.Contains("Operation = Provider") }

if ($events -eq $null)
{
    Write-Host "No WMI events in trace!"
    return
}

$table = New-Object System.Data.DataTable
[void]$table.Columns.Add("Computer")
[void]$table.Columns.Add("Namespace")
[void]$table.Columns.Add("Type")
[void]$table.Columns.Add("Query")
[void]$table.Columns.Add("UserName")
[void]$table.Columns.Add("Process")

ForEach ($event in $events)
{
    switch ($event.Properties.Count)
    {
        6 {
            $typeStart = $event.Properties[1].Value.IndexOf("::")+2
            $typeEnd = $event.Properties[1].Value.IndexOf(" ",$typeStart) 
            $type = $event.Properties[1].Value.Substring($typestart,$typeEnd-$typeStart)
            $query = $event.Properties[1].Value.Substring($event.Properties[1].Value.IndexOf(":",$typeEnd)+2)
            $process = Get-Process -Id ($event.Properties[2].Value) -ErrorAction SilentlyContinue
            if ($process -eq $null) 
            { 
                $process = "($($event.Properties[2].Value))"
            }
            else
            {
                $process = "$($process.Name) ($($process.Id))"
            }      

            [void]$table.Rows.Add('
                $env:COMPUTERNAME,'
                "\.\root\cimv2",'
                $type,'
                $query,'
                "N/A",
                $process)
        }
        8 {
            $typeStart = $event.Properties[3].Value.IndexOf("::")+2
            $typeEnd = $event.Properties[3].Value.IndexOf(" ",$typeStart) 
            $type = $event.Properties[3].Value.Substring($typestart,$typeEnd-$typeStart)
            $query = $event.Properties[3].Value.Substring($event.Properties[3].Value.IndexOf(":",$typeEnd)+2)
            $process = Get-Process -Id ($event.Properties[6].Value) -ErrorAction SilentlyContinue
            if ($process -eq $null) 
            { 
                $process = "($($event.Properties[6].Value))"
            }
            else
            {
                $process = "$($process.Name) ($($process.Id))"
            }

            [void]$table.Rows.Add('
                $event.Properties[4].Value,'
                $event.Properties[7].Value,'
                $type,'
                $query,'
                $event.Properties[5].Value,
                $process)
        }
        default
        {
            Write-Error "Unexpected number of event properties."
            Write-Host $event
            Write-Host $event.Properties
        }
    }
}

$table | Out-GridView

Tracelog.exe e tracefmt.exe do Windows Driver Kit (WDK) também podem ser usados para rastreio WMI.

    
por 03.08.2017 / 13:25
0

Como este é o WMI, ele geralmente reflete uma chamada remota. Por exemplo, os scanners Lansweeper acionam esse erro, mas para um namespace diferente: root \ cimv2 \ Security \ MicrosoftTPM. Pode ser necessário monitorar o tráfego da rede que chega ao servidor afetado para identificar a origem da consulta WMI, se não for nada local.

    
por 23.07.2015 / 15:33