问题标签 [get-winevent]

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 回答
1493 浏览

powershell - Powershell - 获取 WinEvent

我一直在到处寻找,只是想弄清楚这个“级别”是什么意思运行 Get-WinEvent。

例如,

这里代表什么level=2?我问的原因是我正在尝试验证每个日志的严重性,并且它是否level=2代表与严重性相关的任何内容。

0 投票
1 回答
375 浏览

powershell - 将过滤器添加到 Get-EventLog(服务器端),仅返回最新的 N 条记录

有没有办法在检索事件日志条目之前使用 PowerShell 过滤它们?

IE

代替:

就像是:

更多信息

我知道我可以添加一个where-object语句来过滤拉回的结果;但这比在服务器端进行过滤效率低,这意味着诸如此类的命令在-Newest 100过滤后不一定会返回 100 个结果(即,我必须拉回整个事件日志以确保获得最新的

我也知道,对于日期,这可以通过-Afterand-Before属性实现,并且可以提供-Username's 和-Source's 的列表来限制这些。但是,如果我想排除 1 个源,或过滤一系列事件 ID,目前似乎没有办法。

我已经研究过使用Get-WmiObject而不是Get-EventLog,但是虽然这允许在服务器端进行过滤,但我无法确定限制返回结果数量的方法(即在排序之前返回到我的机器,然后使用select-object's-first进行过滤下结果)。

0 投票
1 回答
1092 浏览

powershell - PS Get-WinEvent 抛出“句柄无效”

我有一个主机名列表,我想从中提取所有与 AppLocker 相关的事件日志,尤其是具有级别警告和/或错误的事件日志。我制作了这个脚本:

这工作了一段时间,但在一定的时间后,我得到了一个错误:

在脚本开始给出这样的错误之后:

我的第一个想法是它与脚本试图到达的主机有关,但列表中的下一个与上一个是相同的类型(Os,甚至是相同的型号)。

我运行了脚本 3 次,每次输出大小都不同(可能是因为不同的主机在线并具有相同数量的日志)。该脚本应针对 700 多个主机运行,需要一个特殊帐户,我通过 Get-Credential 提示,将其存储在一个变量中并将 Get-WinEvent 作为参数传递给它。

老实说,我坚持这个问题,不确定是什么原因造成的,为什么。

如果有人有想法,请与我分享:)

0 投票
1 回答
2215 浏览

powershell - 从PowerShell中的Get-Winevent消息中选择特定的行/数据

我正在尝试从 get-winevent cmdlet 的消息输出中提取特定行,但无法找到执行此操作的方法(我可能搜索不正确,但仍在学习更高级的脚本编写方法)。我正在运行的是:

这将返回与此类似的消息(将一些信息更改为通用信息):

我正在尝试创建一种简单的方法来查找上次登录的计算机以便更快地进行故障排除,但是我无法仅过滤掉 Source Workstation 行,我只是没有正确的语法来进行良好的搜索以找到我的结果正在寻找,但我一直在寻找大约一个星期,但没有找到任何接近我正在寻找的东西,任何帮助都会很棒!

0 投票
2 回答
3637 浏览

powershell - 使用 powershell 提取登录/注销事件

我需要从 Windows 7 工作站中提取本地登录/注销列表。我已经保存了 evtx 格式的安全事件日志副本,但我遇到了一些问题。

以下 powershell 提取 ID4624或的所有事件4634

然后我只想过滤logon type = 2 (local logon). 管道到:

但是似乎删除了所有id=4634(注销)事件。

即使对于事件id = 4624事件,也不存在用户 ID。例如管道:

或以其他方式连接到Export-Csvuserid则为空白。

两个问题是:

  1. 为什么 id 为 4634 的事件在通过管道传输到 where 时会丢失{$_.properties[8].value -eq 2}
  2. 为什么是userid空的?我怎样才能得到userid
0 投票
1 回答
1971 浏览

powershell - 使用 Get-WinEvent 监控多台计算机的日志

从下面的代码行中,有没有办法调用 .txt 文件来查看要查看的计算机列表?我希望它不仅在一台计算机上查找日志,而且从计算机列表中查找日志。

希望早日收到你的消息!谢谢。

0 投票
2 回答
2849 浏览

windows - 如何通过 `Get-WinEvent` 和 DateCreated 事件的属性获取准确的事件系统时间?

我正在编写一个必须将事件导出到 CSV 文件的脚本。我想添加具有准确系统时间的行。我不明白的是如何提取SystemTime. TimeCreated即这个:

这是当前输出的示例:

更新

我可以添加-ExpandProperty TimeCreated,但这会导致添加额外的列,例如Day, DayOfWeek, DayOfYear, Hour, Kind, Milliseconds, Minute, Month, Second, Ticks, TimeOfDay,它似乎不适-ExcludeProperty用于它们。

0 投票
0 回答
225 浏览

event-log - 从事件中获取 sid 并将其转换回用户名

我尝试使用下面的命令从特定事件中获取用户 sid,将其转换为用户名,然后输出其值。

我找不到它不起作用的原因。它无法解码用户名。 $objUser应该存储 SID 的用户名。我尝试将它用于域用户。SID 应该是有效的,因为我是从现有事件中获取的。

0 投票
1 回答
1537 浏览

powershell - Powershell get-winevent filterxpath 通配符

我正在尝试查询 DNS 日志以查看哪台本地计算机请求了包含 38.93.53.202-in-addr.arpa-nettlinx.com 的网站地址。我不知道这将在日志中采用什么形式,并且使用事件日志进行过滤让我无处可去(太慢了)。

我认为powershell可以帮助我解决这个问题!我已经导出了日志,这样我就可以在我每天做的时候留下一个备用系统来解析它。

到目前为止,我找到了一个几乎可以满足我要求的脚本。我使用日志中最重要的条目之一选择了我的测试:

我发现几乎可行的代码是:

Get-WinEvent -Path 'C:\users\user\desktop\evtlog.evtx' -FilterXPath "*[EventData[ Data[@Name='qname']='rss.weather.com.']]"

现在,我希望能够使用通配符,而不是 'rss.weather.com.'。例如,“天气”。但是,据我所知, filterxpath 标志不允许这样做。

我尝试添加我在互联网上看到的最常见的条目:

contains(.,'weather')

contains(text(),'weather')

我几乎在代码的每个部分都尝试过这个,有括号,没有括号,有等号,没有,在 data[] 内部......我已经用尽了我能想到或找到参考的所有可能性XML 解析语言。

什么方法可以执行我正在尝试的查询类型?我正在尝试找到一种方法来执行此预管道,因为日志的大小相当吓人。

编辑:这是我能想到的我尝试过的大部分迭代:

0 投票
0 回答
931 浏览

powershell - 从 System.Diagnostics.Eventing.Reader.EventLogRecord 转换为 XML 时出现 System.Management.Automation.RuntimeException

我遇到了与 https://serverfault.com/questions/743515/my-event-log-has-corrupted-dacl-write-attributes-in-4656-file-audit-events/852636#中提到的相同的问题852636事件日志中有一些无效字符,因此使用 .ToXML() 失败,但有以下例外:

System.Management.Automation.RuntimeException 无法转换值“http://schemas.microsoft.com/win/2004/08/events/event'>

省略不相关数据

键入“System.Xml.XmlDocument”。错误:“'',十六进制值 0x04,是无效字符。第 19 行,位置 117。”

我怎样才能去掉无效字符?我认为以下可能是过程:

  1. 转换为字符串(ToString() 似乎不起作用,当通过 Write-Host 输出时,它只是输出对象类型的名称)
  2. 使用 .replace 和 regex 删除无效的 XML 字符
  3. 转换回/序列化为 System.Diagnostics.Eventing.Reader.EventLogRecord 对象(不知何故?)
  4. 转换为 XML(使用 .ToXML())

我将如何实现此过程的第 1 步和第 3 步?