首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在powershell中获取ping命令的结果

问在powershell中获取ping命令的结果
EN

Stack Overflow用户
提问于 2020-07-21 15:22:22
回答 2查看 120关注 0票数 0

我正在使用powershell来ping一个IP地址,我希望能够根据该响应发送一封电子邮件。例如,如果我ping我的IP地址,它正在工作,那么我想发送一封电子邮件,说明它已打开,但如果我ping该IP地址,并获得Request Timed Out,则我不会发送电子邮件。

我的代码

代码语言:javascript
复制
$Username = "username";
$Password = "password";

ping ip_address

function Send-ToEmail([string]$email){

    $message = new-object Net.Mail.MailMessage;
    $message.From = "from@test.com";
    $message.To.Add($email);
    $message.Subject = "subject text here...";
    $message.Body = "body text here...";

    $smtp = new-object Net.Mail.SmtpClient("smtp.mailtrap.io", "2525");
    $smtp.EnableSSL = $false;
    $smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
    $smtp.send($message);
    write-host "Mail Sent" ; 
 }

Send-ToEmail  -email "reciever@test.com";
EN

回答 2

Stack Overflow用户

发布于 2020-07-21 17:03:48

正确的纯Powershell方式应该是这样的

代码语言:javascript
复制
if (Test-Connection -ComputerName 'IPAddress' -Count 1 -Quiet) {
    'Send email'
}
票数 2
EN

Stack Overflow用户

发布于 2020-07-21 15:58:03

我已经设法发送了一封电子邮件,如果我得到一个回应,从我的IP地址。

我将此代码添加到我的文件中。

代码语言:javascript
复制
$ping = ping ip_address -n 1 | Where-Object {$_ -match "Reply" -or $_ -match "Request timed out" -or $_ -match "Destination host unreachable"} 


If($ping -match "Reply")
{
    Send-ToEmail  -email "reciever@test.com" -content "The computer is on";    
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63009418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档