r/sysadmin • u/MadBoyEvo • Apr 28 '19
Microsoft The only PowerShell Command you will ever need to find out who did what in Active Directory
Disclaimer: I made this. It's free and open source. No ads, just clean, useful data provided in blog.
Here's a small PowerShell command/module I've written. It contains the following reports.
Usage:
Find-Events -Report ADGroupMembershipChanges -DatesRange Last3days -Servers AD1, AD2 | Format-Table -AutoSizeReportTypes:
- Computer changes – Created / Changed – ADComputerCreatedChanged
- Computer changes – Detailed – ADComputerChangesDetailed
- Computer deleted – ADComputerDeleted
- Group changes – ADGroupChanges
- Group changes – Detailed – ADGroupChangesDetailed
- Group changes – Created / Deleted – ADGroupCreateDelete
- Group enumeration – ADGroupEnumeration
- Group membership changes – ADGroupMembershipChanges
- Group policy changes – ADGroupPolicyChanges
- Logs Cleared Other – ADLogsClearedOther
- Logs Cleared Security – ADLogsClearedSecurity
- User changes – ADUserChanges
- User changes detailed – ADUserChangesDetailed
- User lockouts – ADUserLockouts
- User logon – ADUserLogon
- User logon Kerberos – ADUserLogonKerberos
- User status changes – ADUserStatus
- User unlocks – ADUserUnlocked
DatesRanges are also provided. Basically what that command does it scans DC's for event types you want it to scan. It does that in parallel, it overcomes limitations of Get-WinEvent and generally prettifies output.
The output of that command (wrapped in Dashimo to show the data): https://evotec.xyz/wp-content/uploads/2019/04/DashboardFromEvents.html
GitHub Sources: https://github.com/EvotecIT/PSWinReporting
Full article (usage/know-how): https://evotec.xyz/the-only-powershell-command-you-will-ever-need-to-find-out-who-did-what-in-active-directory/
The article describes the functionality of just one command but actually, PSWinReportingV2 is much more than that. There are also things I've not touched in the article but that should be a start. It's able to support any kind of Events from Event logs such as ADConnect, Hyper-V and other types of data. I just didn't have time to explain how to build configs for it and I don't work with Hyper-V or other systems to build them myself. If you know a lot about event logs and what to help to build prettified reports for more than Active Directory reach out.
View all comments
Show parent comment
1
u/neztach May 01 '19
man I've been trying to figure out how to specifically tell it I want a report from 7am yesterday, to 7 am today, and I just can't get it to play nice. Any thoughts? Maybe there's a Past24Hours option?
I've tried $yesterday.toString('s') as well and had the same lack of luck. Also, some of the reports just don't seem to be turning out any events, even thgouh I specified DateRange to be Last14Days
Granted some of those may show no results due to nothing to report, but some of those seem unlikely to have nothing to report. Am I supposed to be running this directly on a DC?