MeowMeow Posté(e) le 27 mars 2023 Partager Posté(e) le 27 mars 2023 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 : 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 🙂 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
brice.wernet Posté(e) le 27 mars 2023 Partager Posté(e) le 27 mars 2023 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 : 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, ... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
MeowMeow Posté(e) le 27 mars 2023 Auteur Partager Posté(e) le 27 mars 2023 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). Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
MeowMeow Posté(e) le 28 mars 2023 Auteur Partager Posté(e) le 28 mars 2023 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 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.