Question Envoi de mail avec variable conditionel

Plus d'informations
il y a 16 ans 7 mois #5131 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

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 7 mois #5133 par Laurent Dardenne
Salut,
Je ferais qq chose comme ceci :
[code:1]
$dte = Get-Date -Format dd/MM/yyyy
$heure = Get-Date -f \&quot;HH:mms\&quot;
$dat = get-date -displayhint datetime -format \&quot;ddMMyyyHHmmss\&quot;

$strComputer = get-content C:cmdPingPingSIIserversliste.txt
$fic = new-item \&quot;C:cmdPingPingPING$dat.TXT\&quot; -type file

$expediteur = \&quot;Supervisor@moi.fr\&quot;
$destinataire = \&quot;Mon mail@moi.fr\&quot;
$serveur = \&quot;SERVEUR DE MESSAGERIE\&quot;

$fic = get-content -Delimiter (\&quot;£\&quot;«») -Path \&quot;$fic\&quot;
$texte = $fic

#Tsm Central Scheduler
foreach ($name in $strComputer)
{
$svc = (get-wmiobject win32_pingstatus -Filter \&quot;Address='$name'\&quot;«»)
$OnLine=$svc.StatusCode -eq 0
if ($OnLine)
{ \&quot;$name ALLUME\&quot;&gt;&gt; $fic
$objet = \&quot;Server $name online ce matin $dte $heure\&quot;
}
Else
{
\&quot;$name ETEINT\&quot; &gt;&gt; $fic
$objet = \&quot;Server $name KO ce matin $dte $heure\&quot;
}

$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:

Merci a vous je n'y connais rien en pwershell c'est un sript que j'ai repris et modifié

C'est peut être l'occasion d'apprendre au moins les bases :whistle:

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 7 mois #5137 par jokbreaker
Merci beaucoup beacoup beaucoup

Je test ce matin je vous tiens informé

encore merci

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 7 mois #5138 par jokbreaker
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 \&quot;éteind\&quot; 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.

Plus d'informations
il y a 16 ans 7 mois #5139 par jokbreaker
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 \&quot;HH:mm:ss\&quot;
$dat = get-date -displayhint datetime -format \&quot;ddMMyyyHHmmss\&quot;
$strComputer = get-content C:\cmd\Ping\PingSII\serversii.txt
$fic = new-item \&quot;C:\cmd\Ping\PingSII\PING$dat.TXT\&quot; -type file
$OK = \&quot;O\&quot;

foreach ($name in $strComputer)

{
$svc = (get-wmiobject win32_pingstatus -Filter \&quot;Address='$name'\&quot;)
if ($svc.StatusCode -eq 0 ) {


\&quot;$name ALLUME\&quot;

}Else {

\&quot;$name ETEINT\&quot; &gt;&gt; $fic
$OK = \&quot;N\&quot;

} }

if ($OK -eq \&quot;N\&quot;) {

$expediteur = \&quot;Supervisor@moi.fr\&quot;
$destinataire = \&quot;Mon mail@moi.fr\&quot;
$serveur = \&quot;Serveur de messagerie\&quot;
$fic = get-content -Delimiter (\&quot;£\&quot;) -Path \&quot;$fic\&quot;
$objet = \&quot;Attention au moin un server SII KO ce matin $dte $heure\&quot;
$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 = \&quot;Supervisor@moi.fr\&quot;
$destinataire = \&quot;Mon mail@moi.fr\&quot;
$serveur = \&quot;Serveur de messagerie\&quot;
$fic = get-content -Delimiter (\&quot;£\&quot;) -Path \&quot;$fic\&quot;
$objet = \&quot;Tout les Servers SII sont OK ce matin $dte $heure\&quot;
$texte = \&quot;Tous les serveurs SII sont OK\&quot;

$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.

Plus d'informations
il y a 16 ans 7 mois #5141 par Laurent Dardenne
Salut,
c'est vrai que j'ai interpété l'envoi :pinch:
jokbreaker écrit:

je ne sais pas si c'est compréhensible ?

Plus ou moins.
Tu colles le contenu du fichier dans le corps du message, dans ce cas tu veux regrouper les lignes par état :

Srv1 OK
Srv2 OK
Srv3 OK
Srv4 NOK
Srv5 NOK

C'est bien ça ?
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 (\&quot;£\&quot;«») -Path \&quot;$fic\&quot; [/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.063 secondes
Propulsé par Kunena