Question get-eventlog_remote_mail
- maycry
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 119
- Remerciements reçus 0
il y a 18 ans 1 mois #1576
par maycry
get-eventlog_remote_mail a été créé par maycry
Voici un script permettant d'acquérir de scruter les 20 derniére minutes des jouarnaux spécifié pour le serveur EDGE, transport role anti spam de la version exchange 2k7.
SI des error sont detectés, celui-ci vous prévient par mail.
La boucle de time n'est pas introduite ^^ car je l'éxécute par du batch ^^ , mais si certains souhaute une boucle du script toutes les 18minutes par exemple ^^.
A noter que ce script s'exécute sur la machine même de EDGE qui n'est pas dans un domaine.
j'ai un autre script de même type qui scrute les events de 4serveurs ^^ dont un spécifié par les warnings et les autres ^^.
Voici une image faite à lh'eure actuelle et on a une masse dérreur la même ^^
[code:1]=====================================
##################################################################################
# Version 1.0 : -- Premiere version BETA
##################################################################################
# Mail_Send_EventLOGS.ps1
#************************************************************************
#####################################################################################################################
# Fonction : Script pour l envoi de mail via serveur SMTP
#####################################################################################################################
#DESCRIPTION DÉTAILLÉE:
#Obtient des informations à propos des journaux des événements locaux ou des entrées stockées dans ces journaux
#des événements de logs de type ERROR sur l'emsemble des serveurs du domaine domaine.com
#
!!!!!!!!!!!!!!!!!!!!!!!!!!
#
# !!!!!Il faut Tenir compte que le script sera directement exécuter avec le compte adéquate ayant les droits !!!! #
#
!!!!!!!!!!!!!!!!!!!!!!!!!!
#
#####################################################################################################################
################## Information des paramétres pour l'envoi de mail PAR POWERSHELL ##################################################
#$MailServer = \"MyServeurSMTP\"
#$MailFrom = \"Emetteur@domaine.com\"
#$MailTo = \"Destinataire@domaine.com\" #,\"Destinataire2@domaine.com\"
#$MailSubject = \"Objet du message\"
#$MailBody = \"le corps
#$MailAttach = \"c:\lol.lol\"
#########################################
#[System.Diagnostics.EventLog]::GetEventLogs(\"ED\"«»)
#############################
# ******** GENERAL ******** #
# Déclaration des variables #
#############################
###############################################################
# Déclaration des paramétres requis pour Get-EventLog. #
# Declaration de la date du jour auquel la requête s'applique.#
# Declaration du TYPE D'évenement SELECTIONER. #
# Déclaration du TYPE DE journal d'évenement pour la requête. #
# Déclaration des Serveurs. #
# Déclaration des noms des fichier LOG temporaire unique #
###############################################################
$Today = [DateTime]::now.Addminutes(-20)
$EntryTypeW = \"Error\"
$LogAPP = \"Application\"
$LogSYS = \"System\"
#***************************#
# **Divers Noms pour info** #
#***************************#
$nServer = \"Server\"
$NewEvents = \".Error.New_Events\"
#***************************#
# ** Journaux Par serveur** #
#***************************#
#
#
# * TRANSPORT ROLE (EDGE) * #
#
#
$LogADAMMS = \"ADAM (MSExchange)\"
$LogADMIS = \"ADAM (instance1)\"
#*****************************#
# *Déclaration des SERVEURS * #
#*****************************#
$ServerED = \"TON SERVEUR OU IP\"
#*****************************#
# ** Déclaration LOGS NAME ** #
#*****************************#
# ********* GENERAL ********* #
$Event = \"Event\"
$UnderScore = \"_\"
#
#
# * TRANSPORT ROLE (EDGE) * #
#
#
$LogNameED_APP = $Event+$ServerED+$Underscore+$LogAPP
$LGE_APP = $LogNameED_APP
$LogNameED_SYS = $Event+$ServerED+$Underscore+$LogSYS
$LGE_SYS = $LogNameED_SYS
$LogNameED_ADAMMS = $Event+$ServerED+$Underscore+$LogADAMMS
$LGE_ADAMMS = $LogNameED_ADAMMS
$LogNameED_ADAMIS = $Event+$ServerED+$Underscore+$LogADAMIS
$LGE_ADAMIS = $LogNameED_ADAMIS
# ********* Sauver les logs ********* #
#
#
# * TRANSPORT ROLE (EDGE * #
#
#
$LogED_APP = \"E:\Edgemailscript\Event_log\$LGE_APP.log\"
$LogED_SYS = \"E:\Edgemailscript\Event_log\$LGE_SYS.log\"
$LogED_ADAMMS = \"E:\Edgemailscript\Event_log\$LGE_ADAMMS.log\"
$LogED_ADAMIS = \"E:\Edgemailscript\Event_log\$LGE_ADAMIS.log\"
#################################################################################
#############################
# ******* EVENTLOG ******* #
# Execution de la requete #
#############################
#Read-Host \"Please Enter the Server Name\"
#Read-Host \"Please Enter the Event Source\"
#*******************************#
# * TRANSPORT ROLE (EDGE * #
#*******************************#
$_EDQueryEventAPP = New-Object system.diagnostics.eventlog(\"$LogAPP\", \"$ServerED\"«»)
$EDQueryEventAPP = $_EDQueryEventAPP.entries |Where-Object {$Today -le $_.TimeWritten -and $_.EntryType -eq \"$EntryTypeW\" -and $_.EventID -notcontains \"8001\"}
$EDQueryEventAPP
$_EDQueryEventSYS = New-Object system.diagnostics.eventlog(\"$LogSYS\", \"$ServerED\"«»)
$EDQueryEventSYS = $_EDQueryEventSYS.entries |Where-Object {$Today -le $_.TimeWritten -and $_.EntryType -eq \"$EntryTypeW\"} |format-table -property TimeGenerated,Source,EventID,Message -autosize -wrap
$EDQueryEventSYS
$_EDQueryEventADAMMS = New-Object system.diagnostics.eventlog(\"$LogADAMMS\", \"$ServerED\"«»)
$EDQueryEventADAMMS = $_EDQueryEventADAMMS.entries |Where-Object {$Today -le $_.TimeWritten -and $_.EntryType -eq \"$EntryTypeW\"} |format-table -property TimeGenerated,Source,EventID,Message -autosize -wrap
$EDQueryEventADAMMS
$_EDQueryEventADAMIS = New-Object system.diagnostics.eventlog(\"$LogADAMIS\", \"$ServerED\"«»)
$EDQueryEventADAMIS = $_EDQueryEventADAMIS.entries |Where-Object {$Today -le $_.TimeWritten -and $_.EntryType -eq \"$EntryTypeW\"} |format-table -property TimeGenerated,Source,EventID,Message -autosize -wrap
$EDQueryEventADAMIS
############################
# ****** Execution ****** #
############################
$EDQueryEventAPP_RUN = $EDQueryEventAPP |Out-File $LogED_APP
$EDQueryEventSYS_RUN = $EDQueryEventSYS |Out-File $LogED_SYS
$EDQueryEventADAMMS_RUN = $EDQueryEventADAMMS |Out-File $LogED_ADAMMS
$EDQueryEventADAMIS_RUN = $EDQueryEventADAMIS |Out-File $LogED_ADAMIS
############################
# ***** Detectetion ***** #
# Envoi de mail #
############################
#########Envoi de mail pour APPLICATION########
###################################################
########################################################
if ($EDQueryEventAPP -eq $null)
{}
else
{
$EDQueryEventAPP_RUN
$expediteur = \"$ServerED$NewEvents@DOMAINE.COM\"
$destinataire = \"groupedistrib@domaine.com\"
$serveur = \"NON NETBIOS OU IP\"
$fichier = $LogED_APP
$objet = \"$LogAPP$Underscore$ServerED$Underscore\" + [System.DateTime]::Now
$texte = \"One or more errors were detected so, please observe the contents.\"
$message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte
$attachment = new-object System.Net.Mail.Attachment $fichier
$message.Attachments.Add($attachment)
$client = new-object System.Net.Mail.SmtpClient $serveur
$client.Credentials = [System.Net.CredentialCache]::«»DefaultNetworkCredentials
$client.Send($message)
}
#########Envoi de mail pour SYSTEM########
###################################################
########################################################
if ($EDQueryEventSYS -eq $null)
{}
else
{
$EDQueryEventSYS_RUN
$expediteur = \"$ServerED$NewEvents@DOMAINE.COM\"
$destinataire = \"groupedistrib@domaine.com\"
$serveur = \"NON NETBIOS OU IP\"
$fichier = $LogED_SYS
$objet = \"$LogSYS$Underscore$ServerED$Underscore\" + [System.DateTime]::Now
$texte = \"One or more errors were detected so, please observe the contents.\"
$message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte
$attachment = new-object System.Net.Mail.Attachment $fichier
$message.Attachments.Add($attachment)
$client = new-object System.Net.Mail.SmtpClient $serveur
$client.Credentials = [System.Net.CredentialCache]::«»DefaultNetworkCredentials
$client.Send($message)
}
#########Envoi de mail pour Directory Service########
###########################################################
###################################################################
if ($EDQueryEventADAMMS -eq $null)
{}
else
{
$EDQueryEventADAMMS_RUN
$expediteur = \"$ServerED$NewEvents@DOMAINE.COM\"
$destinataire = \"groupedistrib@domaine.com\"
$serveur = \"NON NETBIOS OU IP\"
$fichier = $LogED_ADAMMS
$objet = \"$LogADAMMS$Underscore$ServerED$Underscore\" + [System.DateTime]::Now
$texte = \"One or more errors were detected so, please observe the contents.\"
$message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte
$attachment = new-object System.Net.Mail.Attachment $fichier
$message.Attachments.Add($attachment)
$client = new-object System.Net.Mail.SmtpClient $serveur
$client.Credentials = [System.Net.CredentialCache]::«»DefaultNetworkCredentials
$client.Send($message)
}
#########Envoi de mail pour DNS Server########
###################################################
########################################################
if ($EDQueryEventADAMIS -eq $null)
{}
else
{
$EDQueryEventADAMIS_RUN
$expediteur = \"$ServerED$NewEvents@DOMAINE.COM\"
$destinataire = \"groupedistrib@domaine.com\"
$serveur = \"NON NETBIOS OU IP\"
$fichier = $LogED_ADAMIS
$objet = \"$LogADAMIS$Underscore$ServerED$Underscore\" + [System.DateTime]::Now
$texte = \"One or more errors were detected so, please observe the contents.\"
$message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte
$attachment = new-object System.Net.Mail.Attachment $fichier
$message.Attachments.Add($attachment)
$client = new-object System.Net.Mail.SmtpClient $serveur
$client.Credentials = [System.Net.CredentialCache]::«»DefaultNetworkCredentials
$client.Send($message)
}
# fin du programme#[/code:1]
Message édité par: chris, à: 27/01/08 22:50
Message édité par: Arnaud, à: 30/01/08 14:47<br><br>Message édité par: chris, à: 5/03/08 23:35
SI des error sont detectés, celui-ci vous prévient par mail.
La boucle de time n'est pas introduite ^^ car je l'éxécute par du batch ^^ , mais si certains souhaute une boucle du script toutes les 18minutes par exemple ^^.
A noter que ce script s'exécute sur la machine même de EDGE qui n'est pas dans un domaine.
j'ai un autre script de même type qui scrute les events de 4serveurs ^^ dont un spécifié par les warnings et les autres ^^.
Voici une image faite à lh'eure actuelle et on a une masse dérreur la même ^^
[code:1]=====================================
##################################################################################
# Version 1.0 : -- Premiere version BETA
##################################################################################
# Mail_Send_EventLOGS.ps1
#************************************************************************
#####################################################################################################################
# Fonction : Script pour l envoi de mail via serveur SMTP
#####################################################################################################################
#DESCRIPTION DÉTAILLÉE:
#Obtient des informations à propos des journaux des événements locaux ou des entrées stockées dans ces journaux
#des événements de logs de type ERROR sur l'emsemble des serveurs du domaine domaine.com
#
!!!!!!!!!!!!!!!!!!!!!!!!!!
#
# !!!!!Il faut Tenir compte que le script sera directement exécuter avec le compte adéquate ayant les droits !!!! #
#
!!!!!!!!!!!!!!!!!!!!!!!!!!
#
#####################################################################################################################
################## Information des paramétres pour l'envoi de mail PAR POWERSHELL ##################################################
#$MailServer = \"MyServeurSMTP\"
#$MailFrom = \"Emetteur@domaine.com\"
#$MailTo = \"Destinataire@domaine.com\" #,\"Destinataire2@domaine.com\"
#$MailSubject = \"Objet du message\"
#$MailBody = \"le corps
#$MailAttach = \"c:\lol.lol\"
#########################################
#[System.Diagnostics.EventLog]::GetEventLogs(\"ED\"«»)
#############################
# ******** GENERAL ******** #
# Déclaration des variables #
#############################
###############################################################
# Déclaration des paramétres requis pour Get-EventLog. #
# Declaration de la date du jour auquel la requête s'applique.#
# Declaration du TYPE D'évenement SELECTIONER. #
# Déclaration du TYPE DE journal d'évenement pour la requête. #
# Déclaration des Serveurs. #
# Déclaration des noms des fichier LOG temporaire unique #
###############################################################
$Today = [DateTime]::now.Addminutes(-20)
$EntryTypeW = \"Error\"
$LogAPP = \"Application\"
$LogSYS = \"System\"
#***************************#
# **Divers Noms pour info** #
#***************************#
$nServer = \"Server\"
$NewEvents = \".Error.New_Events\"
#***************************#
# ** Journaux Par serveur** #
#***************************#
#
#
# * TRANSPORT ROLE (EDGE) * #
#
#
$LogADAMMS = \"ADAM (MSExchange)\"
$LogADMIS = \"ADAM (instance1)\"
#*****************************#
# *Déclaration des SERVEURS * #
#*****************************#
$ServerED = \"TON SERVEUR OU IP\"
#*****************************#
# ** Déclaration LOGS NAME ** #
#*****************************#
# ********* GENERAL ********* #
$Event = \"Event\"
$UnderScore = \"_\"
#
#
# * TRANSPORT ROLE (EDGE) * #
#
#
$LogNameED_APP = $Event+$ServerED+$Underscore+$LogAPP
$LGE_APP = $LogNameED_APP
$LogNameED_SYS = $Event+$ServerED+$Underscore+$LogSYS
$LGE_SYS = $LogNameED_SYS
$LogNameED_ADAMMS = $Event+$ServerED+$Underscore+$LogADAMMS
$LGE_ADAMMS = $LogNameED_ADAMMS
$LogNameED_ADAMIS = $Event+$ServerED+$Underscore+$LogADAMIS
$LGE_ADAMIS = $LogNameED_ADAMIS
# ********* Sauver les logs ********* #
#
#
# * TRANSPORT ROLE (EDGE * #
#
#
$LogED_APP = \"E:\Edgemailscript\Event_log\$LGE_APP.log\"
$LogED_SYS = \"E:\Edgemailscript\Event_log\$LGE_SYS.log\"
$LogED_ADAMMS = \"E:\Edgemailscript\Event_log\$LGE_ADAMMS.log\"
$LogED_ADAMIS = \"E:\Edgemailscript\Event_log\$LGE_ADAMIS.log\"
#################################################################################
#############################
# ******* EVENTLOG ******* #
# Execution de la requete #
#############################
#Read-Host \"Please Enter the Server Name\"
#Read-Host \"Please Enter the Event Source\"
#*******************************#
# * TRANSPORT ROLE (EDGE * #
#*******************************#
$_EDQueryEventAPP = New-Object system.diagnostics.eventlog(\"$LogAPP\", \"$ServerED\"«»)
$EDQueryEventAPP = $_EDQueryEventAPP.entries |Where-Object {$Today -le $_.TimeWritten -and $_.EntryType -eq \"$EntryTypeW\" -and $_.EventID -notcontains \"8001\"}
$EDQueryEventAPP
$_EDQueryEventSYS = New-Object system.diagnostics.eventlog(\"$LogSYS\", \"$ServerED\"«»)
$EDQueryEventSYS = $_EDQueryEventSYS.entries |Where-Object {$Today -le $_.TimeWritten -and $_.EntryType -eq \"$EntryTypeW\"} |format-table -property TimeGenerated,Source,EventID,Message -autosize -wrap
$EDQueryEventSYS
$_EDQueryEventADAMMS = New-Object system.diagnostics.eventlog(\"$LogADAMMS\", \"$ServerED\"«»)
$EDQueryEventADAMMS = $_EDQueryEventADAMMS.entries |Where-Object {$Today -le $_.TimeWritten -and $_.EntryType -eq \"$EntryTypeW\"} |format-table -property TimeGenerated,Source,EventID,Message -autosize -wrap
$EDQueryEventADAMMS
$_EDQueryEventADAMIS = New-Object system.diagnostics.eventlog(\"$LogADAMIS\", \"$ServerED\"«»)
$EDQueryEventADAMIS = $_EDQueryEventADAMIS.entries |Where-Object {$Today -le $_.TimeWritten -and $_.EntryType -eq \"$EntryTypeW\"} |format-table -property TimeGenerated,Source,EventID,Message -autosize -wrap
$EDQueryEventADAMIS
############################
# ****** Execution ****** #
############################
$EDQueryEventAPP_RUN = $EDQueryEventAPP |Out-File $LogED_APP
$EDQueryEventSYS_RUN = $EDQueryEventSYS |Out-File $LogED_SYS
$EDQueryEventADAMMS_RUN = $EDQueryEventADAMMS |Out-File $LogED_ADAMMS
$EDQueryEventADAMIS_RUN = $EDQueryEventADAMIS |Out-File $LogED_ADAMIS
############################
# ***** Detectetion ***** #
# Envoi de mail #
############################
#########Envoi de mail pour APPLICATION########
###################################################
########################################################
if ($EDQueryEventAPP -eq $null)
{}
else
{
$EDQueryEventAPP_RUN
$expediteur = \"$ServerED$NewEvents@DOMAINE.COM\"
$destinataire = \"groupedistrib@domaine.com\"
$serveur = \"NON NETBIOS OU IP\"
$fichier = $LogED_APP
$objet = \"$LogAPP$Underscore$ServerED$Underscore\" + [System.DateTime]::Now
$texte = \"One or more errors were detected so, please observe the contents.\"
$message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte
$attachment = new-object System.Net.Mail.Attachment $fichier
$message.Attachments.Add($attachment)
$client = new-object System.Net.Mail.SmtpClient $serveur
$client.Credentials = [System.Net.CredentialCache]::«»DefaultNetworkCredentials
$client.Send($message)
}
#########Envoi de mail pour SYSTEM########
###################################################
########################################################
if ($EDQueryEventSYS -eq $null)
{}
else
{
$EDQueryEventSYS_RUN
$expediteur = \"$ServerED$NewEvents@DOMAINE.COM\"
$destinataire = \"groupedistrib@domaine.com\"
$serveur = \"NON NETBIOS OU IP\"
$fichier = $LogED_SYS
$objet = \"$LogSYS$Underscore$ServerED$Underscore\" + [System.DateTime]::Now
$texte = \"One or more errors were detected so, please observe the contents.\"
$message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte
$attachment = new-object System.Net.Mail.Attachment $fichier
$message.Attachments.Add($attachment)
$client = new-object System.Net.Mail.SmtpClient $serveur
$client.Credentials = [System.Net.CredentialCache]::«»DefaultNetworkCredentials
$client.Send($message)
}
#########Envoi de mail pour Directory Service########
###########################################################
###################################################################
if ($EDQueryEventADAMMS -eq $null)
{}
else
{
$EDQueryEventADAMMS_RUN
$expediteur = \"$ServerED$NewEvents@DOMAINE.COM\"
$destinataire = \"groupedistrib@domaine.com\"
$serveur = \"NON NETBIOS OU IP\"
$fichier = $LogED_ADAMMS
$objet = \"$LogADAMMS$Underscore$ServerED$Underscore\" + [System.DateTime]::Now
$texte = \"One or more errors were detected so, please observe the contents.\"
$message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte
$attachment = new-object System.Net.Mail.Attachment $fichier
$message.Attachments.Add($attachment)
$client = new-object System.Net.Mail.SmtpClient $serveur
$client.Credentials = [System.Net.CredentialCache]::«»DefaultNetworkCredentials
$client.Send($message)
}
#########Envoi de mail pour DNS Server########
###################################################
########################################################
if ($EDQueryEventADAMIS -eq $null)
{}
else
{
$EDQueryEventADAMIS_RUN
$expediteur = \"$ServerED$NewEvents@DOMAINE.COM\"
$destinataire = \"groupedistrib@domaine.com\"
$serveur = \"NON NETBIOS OU IP\"
$fichier = $LogED_ADAMIS
$objet = \"$LogADAMIS$Underscore$ServerED$Underscore\" + [System.DateTime]::Now
$texte = \"One or more errors were detected so, please observe the contents.\"
$message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte
$attachment = new-object System.Net.Mail.Attachment $fichier
$message.Attachments.Add($attachment)
$client = new-object System.Net.Mail.SmtpClient $serveur
$client.Credentials = [System.Net.CredentialCache]::«»DefaultNetworkCredentials
$client.Send($message)
}
# fin du programme#[/code:1]
Message édité par: chris, à: 27/01/08 22:50
Message édité par: Arnaud, à: 30/01/08 14:47<br><br>Message édité par: chris, à: 5/03/08 23:35
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 18 ans 1 mois #1583
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Re:get-eventlog_remote_mail
Merci beaucoup Chris 
Arnaud
PS : et hop +1 de karma
Arnaud
PS : et hop +1 de karma
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
- maycry
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 119
- Remerciements reçus 0
il y a 18 ans 1 mois #1590
par maycry
Réponse de maycry sur le sujet Re:get-eventlog_remote_mail
^^^^
Concernant mon projet Web ^^
je pense contribué de nouveaux scripts ^^
et amélioré les méthodes du script pour le publier.
Concernant mon projet Web ^^
je pense contribué de nouveaux scripts ^^
et amélioré les méthodes du script pour le publier.
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.084 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Contributions à la communauté
- get-eventlog_remote_mail