Назад | Перейти на главную страницу

Ошибка WMI в журнале событий при каждой загрузке: EventID 5605

У меня есть несколько серверов, которые я продолжаю получать Ошибка EventID 5605

Пространство имен root \ cimv2 \ TerminalServices отмечено флагом RequiresEncryption. В доступе к этому пространству имен может быть отказано, если сценарий или приложение не имеют соответствующего уровня проверки подлинности. Измените уровень аутентификации на Pkt_Privacy и снова запустите скрипт или приложение.

Проблема в том, что я понятия не имею, откуда запускается этот сценарий, поэтому я не могу обновить сценарий, чтобы решить проблему, как и любой другой пост, который я нашел по событию 5605. Я проверил GPO на предмет сценариев запуска, я проверил все свои общий ресурс SYSVOL домена для сценария VBScript или Powershell. Я нигде не могу найти этот сценарий. Как я могу отследить этот скрипт и исправить его, чтобы он перестал выдавать эту ошибку?

Использовать Отслеживание событий WMI в средстве просмотра событий это позволит вам связать запросы WMI с конкретным процессом.

  1. Откройте средство просмотра событий.
  2. В меню «Вид» выберите «Показать аналитические журналы и журналы отладки».
  3. Найдите журнал каналов трассировки для WMI в разделе «Журналы приложений и служб» | Microsoft | Windows | WMI Activity.
  4. Щелкните правой кнопкой мыши журнал трассировки и выберите Свойства журнала.
  5. Установите флажок Включить ведение журнала, чтобы начать трассировку событий WMI.

События WMI появляются в окне событий для WMI-Activity.

Этот журнал событий иногда неудобно использовать, поэтому вы можете использовать такой сценарий, чтобы начать отслеживание и просмотр событий с именем процесса, прикрепленным к запросам 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 и tracefmt.exe из Комплект драйверов Windows (WDK) также может использоваться для трассировки WMI.

Поскольку это WMI, он часто отражает удаленный вызов. Например, сканеры Lansweeper вызывают эту ошибку, но для другого пространства имен: root \ cimv2 \ Security \ MicrosoftTPM. Возможно, вам потребуется отслеживать сетевой трафик, поступающий на затронутый сервер, чтобы определить источник запроса WMI, если он не является чем-то локальным.