Skip to content

Instantly share code, notes, and snippets.

@gioxx
Last active May 20, 2016 14:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gioxx/c71611db976536029c57 to your computer and use it in GitHub Desktop.
Save gioxx/c71611db976536029c57 to your computer and use it in GitHub Desktop.
PowerShell: Alert mail quando un account viene bloccato in AD. Occorrerà creare (sul Domain Controller, per esempio) un'operazione schedulata che per ogni EVENT ID 4740 scatena l'esecuzione di questo script PS1.
<#
ACTIVE DIRECTORY: Alert mail quando un account utilizza una password errata
-------------------------------------------------------------------------------
Autore: GSolone
Utilizzo: È necessario schedulare questo script quando si presenta l'evento da monitorare
(nel caso specifico qui di seguito è il 4740, account locked)
Versione: 0.2
Ultima modifica: 12-05-2016
Modifiche:
0.2- modificato evento monitorato, modificato header script, modificato array di invio mail e integrati i CC nel Send-MailMessage
0.1- incluso l'if che permette di procedere con l'invio mail solo se l'account utente che ha usato una password errata è quello specificato nella variabile AccountMonitor
-------------------------------------------------------------------------------
Info:
1a versione: http://gioxx.org/2014/07/07/powershell-account-di-dominio-bloccato-o-utilizzo-di-password-errata-mandami-una-mail-con-levento/
-------------------------------------------------------------------------------
RAPIDO PROMEMORIA (Event Viewer):
-InstanceID 4740: account bloccato
-InstanceID 4771: password errata
#>
#-----------------------------------------------#
# SPECIFICARE L'ACCOUNT DA MONITORARE: #
$AccountMonitor = 'ACCOUNT_AD'
#-----------------------------------------------#
Import-Module ActiveDirectory
$EventDetails = Get-EventLog -LogName Security -InstanceID 4740 -Newest 1 | Where-Object { $_.message -match $AccountMonitor }
$LockedAccount = $($EventDetails.ReplacementStrings[0])
if ($AccountMonitor -eq $LockedAccount) {
$EventDetailsTime = $EventDetails.TimeGenerated
$EventDetailsMessage = $EventDetails.Message
$messageParameters = @{
Subject = "ALERT: Account $LockedAccount bloccato"
Body = "Qualcuno ha utilizzato una password errata per l'account $LockedAccount (ultimo tentativo il $EventDetailsTime), l'account e' stato quindi BLOCCATO su Active Directory, occorre sbloccarlo!`n`nDettagli evento:`n`n$EventDetailsMessage"
From = "alert@contoso.com"
SmtpServer = "smtp.contoso.com"
}
Send-MailMessage @messageParameters -To "admin1@contoso.com" -CC "admin2@contoso.com", "admin3@contoso.com" -Priority High
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment