gpt4 book ai didi

powershell - 过滤最新的安全事件记录

转载 作者:行者123 更新时间:2023-12-04 02:23:42 24 4
gpt4 key购买 nike

我发现了一些关于如何显示过去 14 天的用户登录的非常好的代码: Powershell Security Log Get-EventLog

$Date = [DateTime]::Now.AddDays(-14)
$Date.tostring("MM-dd-yyyy"), $env:Computername
$eventList = @()
Get-EventLog "Security" -After $Date `
| Where -FilterScript {$_.EventID -eq 4624 -and $_.ReplacementStrings[4].Length -gt 10 -and $_.ReplacementStrings[5] -notlike "*$"} `
| foreach-Object {
$row = "" | Select UserName, LoginTime
$row.UserName = $_.ReplacementStrings[5]
$row.LoginTime = $_.TimeGenerated
$eventList += $row
}
$eventList

但我的问题是,如何修改这段代码以便它选择两条最新的记录?

我尝试了以下方法:

Get-EventLog "Security" -After $Date `
| Where -FilterScript {$_.EventID -eq 4624 -and $_.ReplacementStrings[4].Length -gt 10 -and $_.ReplacementStrings[5] -notlike "*$"} `
| {-Newest 2}

我得到错误:Missing expression after unary operator '-'.

获取最后两次登录的干净方法是什么,即当前登录和在当前用户之前登录的最后一个人?

编辑:问题已解决,这里是完整的代码

$Date = [DateTime]::Now.AddDays(-14)
$Date.tostring("MM-dd-yyyy"), $env:Computername
$eventList = @()
Get-EventLog "Security" -After $Date `
| Where -FilterScript {$_.EventID -eq 4624 -and $_.ReplacementStrings[4].Length -gt 10 -and $_.ReplacementStrings[5] -notlike "*$"} `
| Select-Object -First 2 `
| foreach-Object {
$row = "" | Select UserName, LoginTime
$row.UserName = $_.ReplacementStrings[5]
$row.LoginTime = $_.TimeGenerated
$eventList += $row
}
$eventList

最佳答案

代替:

| {-Newest 2} 

试试这个:

| Select-Object -first 2

关于powershell - 过滤最新的安全事件记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17952405/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com