远程 PowerShell,查找最近 5 个用户登录

2024-04-14

我尝试在安全事件发生后以管理员身份查看企业计算机上的最后 5 个登录事件。我进行了初步调查,并试图找到一种方法来快速列出潜在的“嫌疑人”名单。

我已经能够生成列出日志文件的输出,但在您通常会看到的帐户名称下\域名\用户名我只得到输出“SYSTEM”或类似的输出。

如果我最近远程连接到机器,它会拉动我的\域名\用户名并且显示没有问题。

理想情况下,我想制作一个脚本,从网络上的计算机中提取登录事件,并列出最近登录的人员和时间。

这是我到目前为止所拥有的:

Get-EventLog -LogName security -InstanceId 4624 -ComputerName $_Computer -Newest 5 | Export-Csv C:\Users\username\Documents\filename

这使用速度更快Get-WinEventcmdlet 和-FilterHashtable参数可以加快速度并添加更多选择器。您可能想删除一些过滤器 - 这是很久以前为另一个项目编写的。 [grin]

#requires -RunAsAdministrator

# there REALLY otta be a way to get this list programmatically
$LogonTypeTable = [ordered]@{
    '0' = 'System'
    '2' = 'Interactive'
    '3' = 'Network'
    '4' = 'Batch'
    '5' = 'Service'
    '6' = 'Proxy'
    '7' = 'Unlock'
    '8' = 'NetworkCleartext'
    '9' = 'NewCredentials'
    '10' = 'RemoteInteractive'
    '11' = 'CachedInteractive'
    '12' = 'CachedRemoteInteractive'
    '13' = 'CachedUnlock'
    }
$EventLevelTable = [ordered]@{
    LogAlways = 0
    Critical = 1
    Error = 2
    Warning = 3
    Informational = 4
    Verbose = 5
    }


$WantedLogonTypes = @(2, 3, 10, 11)
$AgeInDays = 15
$StartDate = (Get-Date).AddDays(-$AgeInDays)

$ComputerName = $env:COMPUTERNAME
$GWE_FilterHashTable = @{
    Logname = 'Security'
    ID = 4624
    StartTime = $StartDate
    #Level  = 2
    }
$GWE_Params = @{
    FilterHashtable = $GWE_FilterHashTable
    ComputerName = $ComputerName
    MaxEvents = 100
    }
$RawLogonEventList = Get-WinEvent @GWE_Params

$LogonEventList = foreach ($RLEL_Item in $RawLogonEventList)
    {
    $LogonTypeID = $RLEL_Item.Properties[8].Value
    if ($LogonTypeID -in $WantedLogonTypes)
        {
        [PSCustomObject]@{
            LogName = $RLEL_Item.LogName
            TimeCreated = $RLEL_Item.TimeCreated
            UserName = $RLEL_Item.Properties[5].Value
            LogonTypeID = $LogonTypeID
            LogonTypeName = $LogonTypeTable[$LogonTypeID.ToString()]
            }
        }
    }

$NewestLogonPerUser = $LogonEventList |
    Sort-Object -Property UserName |
    Group-Object -Property UserName |
    ForEach-Object {
        if ($_.Count -gt 1)
            {
            $_.Group[0]
            }
            else
            {
            $_.Group
            }
        }

$NewestLogonPerUser

我的系统上的当前输出...

LogName       : Security
TimeCreated   : 2019-01-24 1:50:44 PM
UserName      : ANONYMOUS LOGON
LogonTypeID   : 3
LogonTypeName : Network

LogName       : Security
TimeCreated   : 2019-01-24 1:50:50 PM
UserName      : [MyUserName]
LogonTypeID   : 2
LogonTypeName : Interactive
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

远程 PowerShell,查找最近 5 个用户登录 的相关文章

随机推荐

  • 如何循环访问类的属性?

    C 有没有办法循环遍历类的属性 基本上我有一个包含大量属性的类 它基本上保存大型数据库查询的结果 我需要将这些结果输出为 CSV 文件 因此需要将每个值附加到一个字符串中 最明显的方法是将每个值手动附加到字符串中 但是有没有一种方法可以有效
  • 如何对一组和进行求和? SQL Server 2008

    我有一个查询sum像这样 SELECT Table1 ID SUM Table2 Number1 Table2 Number2 AS SumColumn FROM Table1 INNER JOIN Table3 ON Table1 ID
  • 如何在 Spring Hibernate 运行时设置数据库名称

    问题描述 Spring中有一个类叫做AbstractRoutingDataSource这将适合您的要求 浏览文档 您将找到一些有关如何实现具体类的帮助 您需要更改 或添加 现有代码的某些部分才能配置动态Data source 这个博客 ht
  • 在数据库中实施审查标志;最佳实践

    我需要存储一些与某些实体相关的评论标志 每个审核标志只能与单个实体属性组相关 例如表Parents has a ParentsStatus旗帜和桌子Children有一组ChildrenStatus flags 在当前的设计方案中 我有三个
  • 保留大小相等的分割视图

    我在非最大化窗口模式下启动 GVIM 并水平分割其窗口 确保窗口大小相等 当我最大化主 GVIM 窗口时 如何保留这个大小相等的分割视图 每当我最大化 GVIM 时 都会忘记窗口已被平均分割 Thanks 均衡分割的命令是 W ctrl W
  • 使自定义图像尊重tintColor属性iOS

    我必须想象这个问题已经被问过好几次了 但我的问题措辞一定不正确 我有自己在 Photoshop 中制作的自定义图像 并将其设置为按钮的图像属性 这里正常显示 背景是透明的 但它是 44x44 其中三个点是 88x88 像素的 png 文件
  • 使用 CSS 时链接不起作用

    我遇到了一个无法通过谷歌搜索解决的问题 我有一个静态 HTML
  • 一个关于二分查找的问题

    为什么人们通常使用二分搜索而不是三重搜索 将 每次分成三份 或者甚至每次分成十份 因为二分查找会产生最少数量的比较和查找 为了简单直观 请考虑每次分为 4 部分 v1 v2 v3 您现在已经完成了 3 次查找 并且必须将您正在搜索的最坏值与
  • 使用实体框架代码优先的 FSharp 记录类型

    我正在一个业务应用程序中进行概念验证 我想用 F 替换当前的 C 代码优先实体框架实现 我正在关注this http blogs msdn com b visualstudio archive 2011 04 04 f code first
  • 干净的架构,用例依赖关系

    最近 我找到了方法干净的架构 https 8thlight com blog uncle bob 2012 08 13 the clean architecture html鲍勃叔叔的帖子 但是 当我尝试将其应用到当前项目时 当一个用例需要
  • 更改 SQL Server 2012 数据库的排序规则

    更改排序规则 我需要更改特定服务器上的一个数据库的排序规则Latin1 General CI AS to SQL Latin1 General CP1 CI AI以便它与我们数据库的其余部分相匹配 问题 但是 当我尝试执行此操作时 出现以下
  • 以最小的质量损失调整大小

    我需要调整图像大小 但图像质量不会受此影响 图像将从 10x10 到 1000x1000 它会有一些严重的拥塞和一些空白时间 它必须同时放大和缩小 可能会损失一些图像质量 可以 但必须至少是 所有东西都确实带有光栅图形 请不要使用库或其他外
  • MyPy 不允许受约束的 TypeVar 是协变的?使用受约束但协变的键值类型定义通用字典

    我正在尝试定义一个自定义通用字典 其键的类型T key并且值的类型T val 我也想限制一下T key and T val 使得T key只能是类型A or B或其子类 我该如何实现这个目标 from typing import TypeV
  • 在不改变我的位置的情况下获取当前位置的经度和纬度

    我可以找到当前位置的纬度和经度 但是这些数据在更改我的当前位置之前不会显示 我想在不更改我的位置的情况下获取当前位置的经度和纬度 package com example gps import android app Activity imp
  • 如何对 HashMap 键进行排序[重复]

    这个问题在这里已经有答案了 我有一个问题 HashMap
  • Google 地图 (Android) 中的位置更新率

    我正在编写一个简单的基于 GPS 的应用程序 用于位置感知 每当启用 GPS 时 应用程序都会请求位置更新并以格式打印纬度和经度 TextView 如果 GPS 被禁用 位置提供商会回退到LocationManager NETWORK PR
  • 两个托管对象上下文可以共享一个持久存储协调器吗?

    示例 我有一个持久存储协调器 它使用一个持久存储 现在有两个托管对象上下文 并且都希望使用相同的持久存储 两者都可以简单地使用相同的持久存储协调器 还是我必须创建 NSPersistentStoreCoordinator 的两个实例 如果我
  • 如何让 PreOrder、InOrder、PostOrder 正常工作?

    如何让 PreOrder InOrder PostOrder 正常工作 这是我当前的代码和实现 请参阅 InOrder PreOrder PostOrder 我有来自 Geek4Geek 的参考 https www geeksforgeek
  • 环形缓冲区和 DMA

    我试图了解从数据包到达网卡到目标应用程序收到数据包之间发生的所有事情 假设 缓冲区足够大 可以容纳整个数据包 我知道情况并非总是如此 但我不想介绍太多技术细节 一种选择是 1 Packet reaches the NIC 2 Interru
  • 远程 PowerShell,查找最近 5 个用户登录

    我尝试在安全事件发生后以管理员身份查看企业计算机上的最后 5 个登录事件 我进行了初步调查 并试图找到一种方法来快速列出潜在的 嫌疑人 名单 我已经能够生成列出日志文件的输出 但在您通常会看到的帐户名称下 域名 用户名我只得到输出 SYST