返回
顶部

获取主机交互式登录日志

powershell脚本

脚本下载链接:log_export.ps1

运行完成之后会生成一个包含登录日志的csv文件,我这里是在我自己的机器上演示的,所以没有登录IP,在实际环境中如果存在3389登录,则会显示出登录IP

1608619334486

可以注意到我上面运行的命令为:powershell -executionpolicy bypass -command "& { C:\Users\x\AppData\Local\Temp\log_export.ps1 }",这样可以直接在shell环境下绕过powershell脚本执行限制策略运行ps1脚本,可参考我的这篇文章:在cmd中导入powershell module并执行

同时我们也可以指定时间范围来对查询结果进行限制,用法:

powershell -executionpolicy bypass -command "& { C:\Users\x\AppData\Local\Temp\log_export.ps1 -StartTime \"December 11, 2020\" -EndTime \"December 22, 2020\" }"

上面这条命令会导出2020-12-112020-12-22之间的登录日志,指定时间范围是需要注意格式:November 1, 2020,月份为英文全写,首字母大写,然后空格跟上日期,最后是英文的,加空格再跟上年份

1608627072531

我对脚本进行了更改,如果不指定日期,则默认时间范围是1970-1-1~1970-1-2,即导出数据为空

$ powershell -executionpolicy bypass -command "& { C:\Users\x\AppData\Local\Temp\log_export.ps1 }"
Get-WinEvent : 找不到任何与指定的选择条件匹配的事件。
所在位置 C:\Users\x\AppData\Local\Temp\log_export.ps1:46 字符: 23
+ ... llEntries = Get-WinEvent -FilterHashtable $LogFilter -ComputerName $S ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (:) [Get-WinEvent], Exception
    + FullyQualifiedErrorId : NoMatchingEventsFound,Microsoft.PowerShell.Commands.GetWinEventCommand

Writing File: C:\Users\x\2020-12-22T16.51.49_RDP_Report.csv
Done!

此时导出的csv文件中将不包含任何有效记录!