首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell安全日志Get-EventLog

Powershell安全日志Get-EventLog
EN

Stack Overflow用户
提问于 2011-02-17 13:11:24
回答 3查看 20.4K关注 0票数 1

我正在尝试写一些东西在powershell和完全陌生的powershell,我需要帮助。我要做的是从安全日志中获取信息。具体地说,是用户在过去两周内的最后一次登录。到目前为止,我拥有的代码是根据最近100个事件获取事件ID 4624的登录名。这不仅会返回用户,还会返回计算机。如何在两周的时间内将结果限制为仅限用户?这有可能吗?

代码语言:javascript
复制
$eventList = @()
Get-EventLog "Security" -After $Date `
    | Where -FilterScript {$_.EventID -eq 4624 -and $_.ReplacementStrings[4].Length -gt 10} `
    | foreach-Object {
        $row = "" | Select UserName, LoginTime
        $row.UserName = $_.ReplacementStrings[5]
        $row.LoginTime = $_.TimeGenerated
        $eventList += $row
        }
$eventList

编辑:使用代码解决

代码语言:javascript
复制
$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
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-17 22:40:42

使用-before-after参数按日期过滤日志。使用get-help get-eventlog -full查看所有参数。

票数 1
EN

Stack Overflow用户

发布于 2011-02-17 19:42:42

用户的上次登录存储在Active Directory中。从那里提取数据似乎要比仔细阅读事件日志容易得多。

票数 0
EN

Stack Overflow用户

发布于 2011-02-18 05:17:36

使用PowerShell搜索活动目录:

代码语言:javascript
复制
Import-Module ActiveDirectory

Get-QADComputer -ComputerRole DomainController | foreach {
(Get-QADUser -Service $_.Name -SamAccountName username).LastLogon.Value
} | Measure-Latest
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5025290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档