我有以下代码。除了“消息”属性中的“帐户名称”外,我看不到Win-Event的任何属性,该属性保留已登录用户的名称。如何仅提取“邮件”属性的“帐户名称”部分?
Get-WinEvent -Computer $computer -FilterHashtable @{Logname='Security';ID=4672} -MaxEvents 1 | Select-Object -Property Message
编辑:我也尝试了以下方法,但是返回了空字符串
Get-WinEvent -Computer $computer -FilterHashtable @{Logname='Security';ID=4672} -MaxEvents 3 | Select @{Name = "Username";Expression = {$_.ReplacementStrings[1]}}
答案 0 :(得分:0)
这似乎是回旋处,但是可以。 Data=
中有一个FilterHashTable
选项,但是我不知道如何使用它。 [脸红]
在任何情况下,这都会在.Message
属性中搜索Account Name
,并将结果放入命名的匹配属性.AccountName
中。
$ComputerName = $env:COMPUTERNAME
$GWE_Params = @{
Computer = $ComputerName
FilterHashtable = @{
Logname = 'Security'
ID = '4672'
}
MaxEvents = 3
}
$EventInfo = @(Get-WinEvent @GWE_Params)
[void]($EventInfo[0].Message -match 'Account Name:\s{1,}(?<AccountName>.+)')
$Matches.AccountName
输出...
SYSTEM
我假设您希望过滤掉system
之类的帐户-这很容易做到。 [咧嘴]