AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 401417
Accepted
Scott Chamberlain
Scott Chamberlain
Asked: 2012-06-23 10:25:10 +0800 CST2012-06-23 10:25:10 +0800 CST 2012-06-23 10:25:10 +0800 CST

每次启动时事件日志中的 WMI 错误:EventID 5605

  • 772

我有几台服务器不断收到EventID 错误 5605

root\cimv2\TerminalServices 命名空间标有 RequiresEncryption 标志。如果脚本或应用程序没有适当的身份验证级别,则可能会拒绝访问此命名空间。将身份验证级别更改为 Pkt_Privacy 并再次运行脚本或应用程序。

问题是我不知道这个脚本是从哪里运行的,所以我无法更新脚本来解决这个问题,就像我在事件 5605 上找到的所有其他帖子一样。我检查了启动脚本的 GPO,我检查了我所有的VBScript 或 Powershell 脚本的域的 SYSVOL 共享。我在任何地方都找不到这个脚本。我怎样才能找到这个脚本并修复它,让它停止抛出这个错误?

wmi windows-event-log
  • 2 2 个回答
  • 3599 Views

2 个回答

  • Voted
  1. Best Answer
    Malcolm McCaffery
    2017-08-04T03:25:53+08:002017-08-04T03:25:53+08:00

    在事件查看器中使用WMI 事件跟踪,这将允许您将 WMI 查询链接到特定进程。

    1. 打开事件查看器。
    2. 在“查看”菜单上,单击“显示分析和调试日志”。
    3. 在应用程序和服务日志 | 下找到 WMI 的跟踪通道日志 微软 | 视窗 | WMI 活动。
    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
    

    Windows 驱动程序工具包 (WDK)中的 Tracelog.exe 和 tracefmt.exe也可用于 WMI 跟踪。

    • 1
  2. Mariyan Ivanov
    2015-07-24T05:33:28+08:002015-07-24T05:33:28+08:00

    由于这是 WMI,它通常反映远程调用。例如,Lansweeper 扫描器触发此错误,但针对不同的命名空间:root\cimv2\Security\MicrosoftTPM。您可能需要监视进入受影响服务器的网络流量,以便识别 WMI 查询的来源(如果它不是本地的)。

    • 0

相关问题

  • 我仍然可以使用 WMI 来管理 SQL Server 2005 和 2008 吗?

  • Windows 环境变量:“默认用户”与“系统”

  • WMI - Win 2k8 - 我如何判断它的依赖项是什么?

  • 有用的 WMI 管理脚本

  • 使用 JMX 和 WMI 管理多个系统

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve