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

时间:2019-01-04 18:20:07

标签: powershell get-winevent

我有以下代码。除了“消息”属性中的“帐户名称”外,我看不到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]}}

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之类的帐户-这很容易做到。 [咧嘴]