Posted March 27, 20232 yr 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 🙂
March 27, 20232 yr 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, ...
March 27, 20232 yr Author 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).
March 28, 20232 yr Author 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
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.