What

Use a Powershell script via Scheduled Task to audit files that are remotely modified, deleted, renamed, or moved on a file server running Microsoft Windows Server 2008 R2, 2012, or 2012 R2.  It's been tested via Windows 7 and 2012 R2.

 

Sample report:

Why

Auditing (metaphorically) positions your finger closer to the pulse of a file server, helps assist users who've misplaced files, and serves up the answer when a manager asks "Who deleted it?"

 

Further reading

 

How to deploy

 

schtasks /create /ru SYSTEM /tn "Monitor file server activity" /sc daily /tr "Powershell.exe -nologo -noprofile -noninteractive -ExecutionPolicy Bypass -File C:\Audit\Monitor-File-Server-Activity.ps1" /ST 23:45

 

 

Pseudo code:

 

XML
Edit|Remove
Backup and clear the Windows Security Event Log. 
For Each (security event log that was modified today) 
  Import selected events 
  For Each (imported event from the log file) 
    Convert the event data to XML 
    If Event ID = 4656 (handle requested): 
      The object still exists (not deleted). 
    If Event ID = 4663 and AccessMask = "Delete": 
      The object was deleted, overwritten, moved, or renamed. 
    If Event ID = 4663 and AccessMask = "Modified": 
      The object was modified. 
    If Event ID = 4663 and AccessMask = "Read Attributes": 
      An extremely common event. 
      Decide if it indicates an object was moved or renamed. 
    If Event ID = 4659: 
      The object was deleted. 
    If Event ID = 4660: 
      The object was deleted. 
    Review a revolving list of "maybe" deleted objects - 
    decide if they were actually deleted, or just overwritten. 
Create a report in CSV and HTML. 
Compress the security event logs to save disk space by 95%. 
Delete compressed logs older than a specified age.