Question
Envoi de mail avec variable conditionel
- jokbreaker
-
Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 16 ans 7 mois #5131
par jokbreaker
Envoi de mail avec variable conditionel a été créé par jokbreaker
Bonjour, j'ai besoin de vos lumière SVP
Voila j'ai repris un script powershell qui ping des serveurs et qui envoi un mail , que les serveurs ping ou pas il l'envoi .
Donc je voudrai le modifier pour qu'il envoi Un mail different quand les Servuers repondes au ping
comment faire.
voici mon script
$dte = Get-Date -Format dd/MM/yyyy
$heure = Get-Date -f \"HH:mm:ss\"
$dat = get-date -displayhint datetime -format \"ddMMyyyHHmmss\"
$strComputer = get-content C:\cmd\Ping\PingSII\serversliste.txt
$fic = new-item \"C:\cmd\Ping\Ping\PING$dat.TXT\" -type file
#Tsm Central Scheduler
foreach ($name in $strComputer)
{
$svc = (get-wmiobject win32_pingstatus -Filter \"Address='$name'\")
if ($svc.StatusCode -eq 0 ) {
\"$name ALLUME\"
}Else {
\"$name ETEINT\" >> $fic
} }
$expediteur = \"Supervisor@moi.fr\"
$destinataire = \"Mon mail@moi.fr\"
$serveur = \"SERVEUR DE MESSAGERIE\"
$fic = get-content -Delimiter (\"£\") -Path \"$fic\"
$objet = \"Server KO ce matin $dte $heure\"
$texte = $fic
$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)
Merci a vous je n'y connais rien en pwershell c'est un sript que j'ai repris et modifié
Message édité par: jokbreaker, à: 20/08/09 11:20
Message édité par: jokbreaker, à: 20/08/09 12:15
Message édité par: jokbreaker, à: 20/08/09 12:16
Message édité par: jokbreaker, à: 20/08/09 12:16<br><br>Message édité par: jokbreaker, à: 20/08/09 12:17
Voila j'ai repris un script powershell qui ping des serveurs et qui envoi un mail , que les serveurs ping ou pas il l'envoi .
Donc je voudrai le modifier pour qu'il envoi Un mail different quand les Servuers repondes au ping
comment faire.
voici mon script
$dte = Get-Date -Format dd/MM/yyyy
$heure = Get-Date -f \"HH:mm:ss\"
$dat = get-date -displayhint datetime -format \"ddMMyyyHHmmss\"
$strComputer = get-content C:\cmd\Ping\PingSII\serversliste.txt
$fic = new-item \"C:\cmd\Ping\Ping\PING$dat.TXT\" -type file
#Tsm Central Scheduler
foreach ($name in $strComputer)
{
$svc = (get-wmiobject win32_pingstatus -Filter \"Address='$name'\")
if ($svc.StatusCode -eq 0 ) {
\"$name ALLUME\"
}Else {
\"$name ETEINT\" >> $fic
} }
$expediteur = \"Supervisor@moi.fr\"
$destinataire = \"Mon mail@moi.fr\"
$serveur = \"SERVEUR DE MESSAGERIE\"
$fic = get-content -Delimiter (\"£\") -Path \"$fic\"
$objet = \"Server KO ce matin $dte $heure\"
$texte = $fic
$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)
Merci a vous je n'y connais rien en pwershell c'est un sript que j'ai repris et modifié
Message édité par: jokbreaker, à: 20/08/09 11:20
Message édité par: jokbreaker, à: 20/08/09 12:15
Message édité par: jokbreaker, à: 20/08/09 12:16
Message édité par: jokbreaker, à: 20/08/09 12:16<br><br>Message édité par: jokbreaker, à: 20/08/09 12:17
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 16 ans 7 mois #5133
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Envoi de mail avec variable conditionel
Salut,
Je ferais qq chose comme ceci :
[code:1]
$dte = Get-Date -Format dd/MM/yyyy
$heure = Get-Date -f \"HH:mms\"
$dat = get-date -displayhint datetime -format \"ddMMyyyHHmmss\"
$strComputer = get-content C:cmdPingPingSIIserversliste.txt
$fic = new-item \"C:cmdPingPingPING$dat.TXT\" -type file
$expediteur = \"Supervisor@moi.fr\"
$destinataire = \"Mon mail@moi.fr\"
$serveur = \"SERVEUR DE MESSAGERIE\"
$fic = get-content -Delimiter (\"£\"«») -Path \"$fic\"
$texte = $fic
#Tsm Central Scheduler
foreach ($name in $strComputer)
{
$svc = (get-wmiobject win32_pingstatus -Filter \"Address='$name'\"«»)
$OnLine=$svc.StatusCode -eq 0
if ($OnLine)
{ \"$name ALLUME\">> $fic
$objet = \"Server $name online ce matin $dte $heure\"
}
Else
{
\"$name ETEINT\" >> $fic
$objet = \"Server $name KO ce matin $dte $heure\"
}
$message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte
$client = new-object System.Net.Mail.SmtpClient $serveur
$client.Credentials = [System.Net.CredentialCache]:: DefaultNetworkCredentials
$client.Send($message)
}
[/code:1]
A TESTER.
J'ai codé ça rapido sans vérifier.
jokbreaker écrit:
Je ferais qq chose comme ceci :
[code:1]
$dte = Get-Date -Format dd/MM/yyyy
$heure = Get-Date -f \"HH:mms\"
$dat = get-date -displayhint datetime -format \"ddMMyyyHHmmss\"
$strComputer = get-content C:cmdPingPingSIIserversliste.txt
$fic = new-item \"C:cmdPingPingPING$dat.TXT\" -type file
$expediteur = \"Supervisor@moi.fr\"
$destinataire = \"Mon mail@moi.fr\"
$serveur = \"SERVEUR DE MESSAGERIE\"
$fic = get-content -Delimiter (\"£\"«») -Path \"$fic\"
$texte = $fic
#Tsm Central Scheduler
foreach ($name in $strComputer)
{
$svc = (get-wmiobject win32_pingstatus -Filter \"Address='$name'\"«»)
$OnLine=$svc.StatusCode -eq 0
if ($OnLine)
{ \"$name ALLUME\">> $fic
$objet = \"Server $name online ce matin $dte $heure\"
}
Else
{
\"$name ETEINT\" >> $fic
$objet = \"Server $name KO ce matin $dte $heure\"
}
$message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte
$client = new-object System.Net.Mail.SmtpClient $serveur
$client.Credentials = [System.Net.CredentialCache]:: DefaultNetworkCredentials
$client.Send($message)
}
[/code:1]
A TESTER.
J'ai codé ça rapido sans vérifier.
jokbreaker écrit:
C'est peut être l'occasion d'apprendre au moins les basesMerci a vous je n'y connais rien en pwershell c'est un sript que j'ai repris et modifié
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- jokbreaker
-
Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 16 ans 7 mois #5137
par jokbreaker
Réponse de jokbreaker sur le sujet Re:Envoi de mail avec variable conditionel
Merci beaucoup beacoup beaucoup
Je test ce matin je vous tiens informé
encore merci
Je test ce matin je vous tiens informé
encore merci
Connexion ou Créer un compte pour participer à la conversation.
- jokbreaker
-
Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 16 ans 7 mois #5138
par jokbreaker
Réponse de jokbreaker sur le sujet Re:Envoi de mail avec variable conditionel
Bonjour,
J'ai tester ce matin le sript fonctionne mais pas tout a fait comme je voudrais je m'explique,
Le script fait un ping sur plusieurs serveurs qui sont renseignés dans un fichier text .
et la ce qu'il ce passe c'est qu'il envoi autant de message qu'il a de serveurs
il faudrait juste regrouper tout les serveur \"éteind\" dans un seul fichier et du coup envoyé un seul message
je ne sais pas si c'est compréhensible ?
J'ai tester ce matin le sript fonctionne mais pas tout a fait comme je voudrais je m'explique,
Le script fait un ping sur plusieurs serveurs qui sont renseignés dans un fichier text .
et la ce qu'il ce passe c'est qu'il envoi autant de message qu'il a de serveurs
il faudrait juste regrouper tout les serveur \"éteind\" dans un seul fichier et du coup envoyé un seul message
je ne sais pas si c'est compréhensible ?
Connexion ou Créer un compte pour participer à la conversation.
- jokbreaker
-
Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 16 ans 7 mois #5139
par jokbreaker
Réponse de jokbreaker sur le sujet Re:Envoi de mail avec variable conditionel
Re bonjour,
Sa yé j'ai trouvé un truc qui marche bien avec mon collegue voila ce qu'on a fait :
$dte = Get-Date -Format dd/MM/yyyy
$heure = Get-Date -f \"HH:mm:ss\"
$dat = get-date -displayhint datetime -format \"ddMMyyyHHmmss\"
$strComputer = get-content C:\cmd\Ping\PingSII\serversii.txt
$fic = new-item \"C:\cmd\Ping\PingSII\PING$dat.TXT\" -type file
$OK = \"O\"
foreach ($name in $strComputer)
{
$svc = (get-wmiobject win32_pingstatus -Filter \"Address='$name'\")
if ($svc.StatusCode -eq 0 ) {
\"$name ALLUME\"
}Else {
\"$name ETEINT\" >> $fic
$OK = \"N\"
} }
if ($OK -eq \"N\") {
$expediteur = \"Supervisor@moi.fr\"
$destinataire = \"Mon mail@moi.fr\"
$serveur = \"Serveur de messagerie\"
$fic = get-content -Delimiter (\"£\") -Path \"$fic\"
$objet = \"Attention au moin un server SII KO ce matin $dte $heure\"
$texte = $fic
$message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte
$client = new-object System.Net.Mail.SmtpClient $serveur
$client.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials
$client.Send($message)
} Else {
$expediteur = \"Supervisor@moi.fr\"
$destinataire = \"Mon mail@moi.fr\"
$serveur = \"Serveur de messagerie\"
$fic = get-content -Delimiter (\"£\") -Path \"$fic\"
$objet = \"Tout les Servers SII sont OK ce matin $dte $heure\"
$texte = \"Tous les serveurs SII sont OK\"
$message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte
$client = new-object System.Net.Mail.SmtpClient $serveur
$client.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials
$client.Send($message)
}
et encore milles merci pour votre aide !!!!
Sa yé j'ai trouvé un truc qui marche bien avec mon collegue voila ce qu'on a fait :
$dte = Get-Date -Format dd/MM/yyyy
$heure = Get-Date -f \"HH:mm:ss\"
$dat = get-date -displayhint datetime -format \"ddMMyyyHHmmss\"
$strComputer = get-content C:\cmd\Ping\PingSII\serversii.txt
$fic = new-item \"C:\cmd\Ping\PingSII\PING$dat.TXT\" -type file
$OK = \"O\"
foreach ($name in $strComputer)
{
$svc = (get-wmiobject win32_pingstatus -Filter \"Address='$name'\")
if ($svc.StatusCode -eq 0 ) {
\"$name ALLUME\"
}Else {
\"$name ETEINT\" >> $fic
$OK = \"N\"
} }
if ($OK -eq \"N\") {
$expediteur = \"Supervisor@moi.fr\"
$destinataire = \"Mon mail@moi.fr\"
$serveur = \"Serveur de messagerie\"
$fic = get-content -Delimiter (\"£\") -Path \"$fic\"
$objet = \"Attention au moin un server SII KO ce matin $dte $heure\"
$texte = $fic
$message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte
$client = new-object System.Net.Mail.SmtpClient $serveur
$client.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials
$client.Send($message)
} Else {
$expediteur = \"Supervisor@moi.fr\"
$destinataire = \"Mon mail@moi.fr\"
$serveur = \"Serveur de messagerie\"
$fic = get-content -Delimiter (\"£\") -Path \"$fic\"
$objet = \"Tout les Servers SII sont OK ce matin $dte $heure\"
$texte = \"Tous les serveurs SII sont OK\"
$message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte
$client = new-object System.Net.Mail.SmtpClient $serveur
$client.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials
$client.Send($message)
}
et encore milles merci pour votre aide !!!!
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 16 ans 7 mois #5141
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Envoi de mail avec variable conditionel
Salut,
c'est vrai que j'ai interpété l'envoi
jokbreaker écrit:
Tu colles le contenu du fichier dans le corps du message, dans ce cas tu veux regrouper les lignes par état :
Le fichier $fic est bien recréé à chaque appel du script ?
Dans quel répertoire exactement ?
Le supprimes-tu manuellement ?
Et enfin qu'est-ce qu'est censé faire cette ligne :
[code:1]$fic = get-content -Delimiter (\"£\"«») -Path \"$fic\" [/code:1]
[edit]
Je n'avais pas vu ta réponse avant de poster ce msg<br><br>Message édité par: Laurent Dardenne, à: 21/08/09 10:21
c'est vrai que j'ai interpété l'envoi
jokbreaker écrit:
Plus ou moins.je ne sais pas si c'est compréhensible ?
Tu colles le contenu du fichier dans le corps du message, dans ce cas tu veux regrouper les lignes par état :
C'est bien ça ?Srv1 OK
Srv2 OK
Srv3 OK
Srv4 NOK
Srv5 NOK
Le fichier $fic est bien recréé à chaque appel du script ?
Dans quel répertoire exactement ?
Le supprimes-tu manuellement ?
Et enfin qu'est-ce qu'est censé faire cette ligne :
[code:1]$fic = get-content -Delimiter (\"£\"«») -Path \"$fic\" [/code:1]
[edit]
Je n'avais pas vu ta réponse avant de poster ce msg<br><br>Message édité par: Laurent Dardenne, à: 21/08/09 10:21
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.058 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Envoi de mail avec variable conditionel