问题标签 [get-eventlog]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2906 浏览

powershell - Powershell Get-EventLog 在 RemoteComputer 上挂起

以下在本地计算机上运行良好,但是当我输入 -ComputerName "myRemoteName" 时,它挂起并且即使在大约 5 分钟后也不返回任何内容;但程序似乎仍在运行。

它是否试图通过“线路”返回大量数据?理论上,我在过去 2 小时内远程计算机上的错误应该少于 10 个。

之后的代码构建一封电子邮件并发送它......

我看过其他建议切换到 Get-WinEvents 的帖子,但我认为这需要我一两个小时来重写(由于我缺乏使用 Powershell 的经验);我上面的内容在本地计算机上运行良好。

结论,改变 $minutes 的范围似乎并没有真正影响响应时间;两者都很慢。

0 投票
2 回答
2893 浏览

powershell - Powershell Get-eventlog 查询。如何返回 X 个符合条件的条目

我想找到多个服务器的某个事件 ID 列表的最近一次出现。我没有看到一个很好的方法来做到这一点。如果我使用-newest开关,我必须根据每个服务器事件日志的相对大小以及我感兴趣的事件在该数量的条目中发生的机会来处理数字。在下面的示例中,服务器F6WINMSSTEST3在前 10,000 个条目中没有我要查找的内容。有人知道这样做的好方法吗?

我想要的是为每个服务器列出我正在寻找的事件的每个 ID 的最新条目的单个实例,以便我可以看到它们何时发生。在理想情况下,每台服务器都会列出最近的 3 个 ID。

样本输出:

0 投票
2 回答
538 浏览

powershell - 在 PowerShell 中使用 Get-EventLog 如何在消息中仅显示 10 个字符

我目前有以下代码:

所以我的问题是如何只显示消息的前 10 个字符?

0 投票
1 回答
317 浏览

json - Foreach-Object 在 PowerShell 中制作 $_ 的可变副本

我想将 Windows 事件日志中的条目转换为 JSON。但我想预先格式化一些字段。使用 ForEach-Object 对我来说看起来很自然,但是当我尝试像这样更改属性时:

它给了我错误:

如何在转换为 JSON 之前制作 $_ 对象的可写副本或预格式化对象?

0 投票
1 回答
774 浏览

powershell - Powershell Get-EventLog - 未找到参数之前

我在这里有这段代码:

我有一台运行整个脚本的本地机器,它可以 100% 正常工作。当我通过远程桌面在 Windows Server 标准上运行此代码时,我得到以下信息:

“Get-EventLog:找不到与参数名称'before'匹配的参数”它指的是“$errorCommand =”,我一生都无法弄清楚为什么它找不到这个参数,是我的powershell设置不正确?

0 投票
3 回答
3079 浏览

powershell - Powershell:如何从事件日志的消息字段中提取时间?

我试图通过Get-EventLog在 Powershell 中获得 Windows Sever 2008 机器的意外关机时间。我可以通过搜索带有EventID6008 的事件并选择 only来接近message,但我需要在字段内解析以获取它发生的时间(而不是事件触发的时间)。

我尝试使用replacementstrings[x],但找不到如何指定要使用的字段 ( messages) 并且无法获得结果。

get-eventlog -LogName System -ComputerName svr-name | Where-Object {$_.EventID -eq 6008 -AND $_.timegenerated -gt (get-date).adddays(-30)}| select message

产生这个:

0 投票
2 回答
289 浏览

arrays - Powershell:将数组拆分成对并在不交替时丢弃

我有一个 Powershell 脚本,用于在远程服务器上Get-EventLog搜索事件6005、、6006和;6008经过一些操作后,它以数组的形式返回结果。

我遍历结果,然后将其中一个down或分配up给该$eventData.message字段并再次对其进行排序timegenerated返回一个像这样的数组(为格式化道歉):

TimeGenerated EventID 消息索引
------------- ------- ------- ----- --------
8/3/2014 5 :30:02 AM 6006 向下 0
8/3/2014 5:30:47 AM 6005 向上 0 8/24/2014
5:31:00 AM 6005 向上 0
2014 年 8 月 31 日上午2:34:59 6008 下降 1 2014 年 8 月 31
日上午 5:30:04 6006 下降 0 2014 年 8
月 31 日上午 5:30:59 6005 上升 0 2014 年8 月 31
日 5:36 :26 AM 6005 向上 0

如何从这些结果中创建一个新数组并将它们排列成TimeGenerated上/下对?如果数组的第一个事件是一个,我宁愿忽略它up(所以总是成对出现),但我down可以up解决这个问题。更重要的是永远不要有两个连续的downup事件,如上面的示例输出所示。

我在考虑可能遍历事件并在1and 0(或upand down)之间切换临时变量,但这似乎很笨拙,我无法使任何工作。这不应该这么难,但这就是我寻求帮助的原因。让我知道提供更多代码是否有用;它有很多,我不想只是转储它的页面。

这是我想要的数组格式的示例。我使用的方法将这些事件配对为 12121212,而无需查看它们是什么类型的事件。所以在上面的例子中,最后一个事件对将计算它不存在的停机时间,因为有两个up(6005) 事件。

0 投票
2 回答
635 浏览

powershell - Try/Catch 块实际上并不执行 get-eventlog cmdlet

出于某种原因,当我尝试使用安全选项时,它实际上并没有执行 get-eventlog cmdlet,而是将其写入屏幕,就像它被引用一样。其他日志在没有 try catch 块的情况下工作,但每当我使用 try catch 块设置它们时,它们仍然像引用 cmdlet 一样运行。

0 投票
1 回答
147 浏览

powershell - PowerShell 新手

我对 PowerShell 非常陌生,我正在尝试创建一个脚本,该脚本看起来像系统事件日志并提取与 Error、Verbose 和 Warnings 匹配的项目;然后我想将它们导出到 CSV 文件。

我能够获取为 $errorlog、$verboselog 和 $warninglog(如下所示)创建的每个变量。

当我继续尝试将它们导出到一个 CSV 文件时,它只会显示 $errorlog。根据我从各个网站收集的信息,我正在使用的命令应该可以正常工作。

它告诉我它是否缺少'-inputobject',所以我将变量移动到如下所示。

它没有错误地导出,但没有在文件中显示我想要的数据。

我提前感谢您的帮助。

0 投票
1 回答
1555 浏览

powershell - PowerShell - 在特定字符后从事件日志输出消息子字符串

我需要在 PowerShell 中显示事件日志消息的最后一行(“:”之后的几乎所有内容。我无法做到这一点,所以我的替代方法是输出消息和子字符串。“: " 在我的消息中位于 200-ish 位置。下面的代码在 ":"-ish 之后显示 56 个字符。

如何让它显示“:”之后的所有内容?

如果有帮助,这是示例消息:

在源“帮助”中找不到事件 ID“1234567890”的描述。本地计算机可能没有必要的注册表信息或消息 DLL 文件来显示消息,或者您可能没有访问它们的权限。以下信息是活动的一部分**:** 'Blah'、'Blahh'、'Blahhh'

我只需要代码来显示时间和'Blah','Blahh','Blahhh'。