Jump to content

Encore du powershell - ping et alerte mail


Recommended Posts

Bonjour à toutes et tous,

J'ai comme projet (simple) d'envoyer un ping sur mon ip publique. J'ai 2 sites (A et B).

Je fais un ping du site A vers le site B - et si le ping me répond un timedout --> envoie du email. Et vice et versa B --> A.

Donc le script powershell :

$ping = new-object System.Net.NetworkInformation.Ping
$ReponsePing = $ping.Send("mon ip")

if ($Reply.status –eq “Success”)
{
     Write-Host “Le PC est Démarré“
}
else
{
     Write-Host “Le PC est éteint“
}

 

sauf que j'ai cette réponse  :

7KX9o0I.png
 

Pourtant, j'ai bien mon status en Success 😕
Pour voir cela, j'ai fait ce code :

$ping = new-object System.Net.NetworkInformation.Ping
$ping.Send("une ip")

if ($Reply.status –eq “Success”)
{
     Write-Host “Le PC est Démarré“
}
else
{
     Write-Host “Le PC est éteint“
}

Vous avez une idée?

Merci 🙂

Link to comment
Share on other sites

il y a 58 minutes, MeowMeow a dit :

Bonjour à toutes et tous,

J'ai comme projet (simple) d'envoyer un ping sur mon ip publique. J'ai 2 sites (A et B).

Je fais un ping du site A vers le site B - et si le ping me répond un timedout --> envoie du email. Et vice et versa B --> A.

Donc le script powershell :

$ping = new-object System.Net.NetworkInformation.Ping
$ReponsePing = $ping.Send("mon ip")

if ($Reply.status –eq “Success”)
{
     Write-Host “Le PC est Démarré“
}
else
{
     Write-Host “Le PC est éteint“
}

 

sauf que j'ai cette réponse  :

7KX9o0I.png
 

Pourtant, j'ai bien mon status en Success 😕
Pour voir cela, j'ai fait ce code :

$ping = new-object System.Net.NetworkInformation.Ping
$ping.Send("une ip")

if ($Reply.status –eq “Success”)
{
     Write-Host “Le PC est Démarré“
}
else
{
     Write-Host “Le PC est éteint“
}

Vous avez une idée?

Merci 🙂

Oui, met un "Set-StrictMode -v 2" en 1ère ligne pour ne plus écrire d'affreusité.

Ta variable $reply n'est pas déclarée (c'est $reponsePing ...)

Et d'un autre côté, je déconseille le ping.

Je préfère utiliser une page web: en faisant iwr sur une page web, on peut la comparer en taille ou en contenu ce qui permet aussi de détecter un défaçage, un problème de DNS, ...

Link to comment
Share on other sites

Il y a 1 heure, brice.wernet a dit :

Oui, met un "Set-StrictMode -v 2" en 1ère ligne pour ne plus écrire d'affreusité.

Ta variable $reply n'est pas déclarée (c'est $reponsePing ...)

Et d'un autre côté, je déconseille le ping.

Je préfère utiliser une page web: en faisant iwr sur une page web, on peut la comparer en taille ou en contenu ce qui permet aussi de détecter un défaçage, un problème de DNS, ...

Cha marche 🙂

 

C'est du ping en réseau local. Donc cela ira 🙂

Je mettrais mon script ici (deux mains).

Link to comment
Share on other sites

Voici le code :

Set-StrictMode -v 2

#Configuration email TTLSSL
$password = "MDP"
$userName = "from@email.fr"
[SecureString]$securepassword = $password | ConvertTo-SecureString -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential -ArgumentList $username, $securepassword
$TLS12Protocol = [System.Net.SecurityProtocolType] 'Tls12' 
[System.Net.ServicePointManager]::SecurityProtocol = $TLS12Protocol  

# Serveur SMTP - Nom du serveur
$SMTPServer = "smtp.office365.com"

# Serveur SMTP - Numéro de port
$SMTPPort = 587

# Serveur SMTP - Adresse e-mail de l'expéditeur
$SMTPSender =  "from@email.fr"

# Serveur SMTP - Encodage Email
$SMTPEncoding =[System.Text.Encoding]::UTF8

# Adresse e-mail du destinataire pour la synthèse
$SendReportAdminEmail = "for@email.fr"

# Date du jour (format FileTime)
$DateToday = (Get-Date).ToFileTime()

$ping = new-object System.Net.NetworkInformation.Ping
$ReponsePing = $ping.Send("IP/NAME")

if ($ReponsePing.status –eq “TimedOut”)
{
     # Envoyer l'e-mail
     Send-MailMessage -UseSsl -Credential $credential -Verbose -SmtpServer $SMTPServer -Encoding $SMTPEncoding  `
        -From $SMTPSender -To $SendReportAdminEmail `
        -Subject "Panne de connexion vers ???? - $(Get-Date -Format dd/MM/yyyy_HH:mm)" `
        -Body "Erreur connexion" -BodyAsHtml -Port $SMTPPort
}
else {
exit }

 

Tâches planifié - répétition toutes les 30min

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...