检索远程计算机的上次登录用户和登录时间



我有以下代码。除了"消息"属性中的"帐户名称"之外,我没有看到任何保存登录用户名称的 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]}}

似乎相当迂回,但它有效。 FilterHashTable中有一个Data=选项,但我不知道如何使用它。[脸红]

在任何情况下,这会在 .Message 属性中搜索Account Name并将结果放入命名的 match 属性 .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这样的帐户 - 这很容易做到。[咧嘴一笑]

相关内容

  • 没有找到相关文章

最新更新