Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 获取事件日志消息获取一行_Powershell_Event Log - Fatal编程技术网

Powershell 获取事件日志消息获取一行

Powershell 获取事件日志消息获取一行,powershell,event-log,Powershell,Event Log,我想知道是否有一种方法可以从Get EventLog的消息中获取信息。到目前为止,我正在使用这行代码来获取以下信息: (Get-EventLog -Logname Security -InstanceId 4625 -Newest 1).Message 这将从实例ID 4625中提取消息,但会提取整个消息。我想抓取:帐户名(第二个)、帐户域(第二个)和工作站名 以下是运行命令时的显示: 突出显示的区域是我想要显示的内容。它可以一次执行所有操作,也可以只为每个高亮显示的对象发出不同的命令 编辑

我想知道是否有一种方法可以从
Get EventLog
的消息中获取信息。到目前为止,我正在使用这行代码来获取以下信息:

(Get-EventLog -Logname Security -InstanceId 4625 -Newest 1).Message
这将从实例ID 4625中提取消息,但会提取整个消息。我想抓取:
帐户名
(第二个)、
帐户域
(第二个)和
工作站名

以下是运行命令时的显示:


突出显示的区域是我想要显示的内容。它可以一次执行所有操作,也可以只为每个高亮显示的对象发出不同的命令

编辑:输出是一个字符串,因此以下内容不起作用:

|选择对象
有效吗?我没有使用此cmdlet,无法测试我的答案

因此,您的完整行可以是:

(获取事件日志-日志名安全性-InstanceId 4625-最新1)。消息|选择对象帐户名、域名

编辑内容

安斯加比我先提出了建议。对混乱表示歉意。我缺乏相关知识。

用于从邮件中提取信息。提取帐户和域名的示例:

$msg = (Get-EventLog ...).Message

$re = 'Logon Failed:[\s\S]+?Account Name:\s+(.*)\s+Account Domain:\s+(.*)'
if ($msg -match $re) {
  $account = $matches[1]
  $domain  = $matches[2]
}
$matches[1]
$matches[2]
指表达式中的两个捕获组(
(.*)


可以使用类似的表达式提取工作站名称。

Eventlog消息是字符串,因此这不可能工作。抱歉,我将修改上述内容。这甚至不起作用