繁体   English   中英

Powershell-使用内置检查重新启动远程Windows服务器

[英]Powershell - Restart remote windows server with a check built-in

我一直在尝试构建一个Powershell脚本来重新启动远程Windows服务。 到目前为止,它一直运行良好,但是我想构建一个检查系统。

到目前为止,该服务可以停止并再次正常启动,但是鉴于它正在生产机器上运行,我们希望进行一次额外检查:

function setStatusOfService {
    for ($service)
    {
        $serviceinfo3 = Get-Service $service -ComputerName $Computer1

        if ($serviceinfo3.Status -eq 'Running')
        {
            Get-Service -Name $Service1 -ComputerName $Computer1 | Stop-Service
            GetStatusOfService $service -ComputerName $Computer1
            Start-Sleep -Seconds 10
        }
        else
        {
            Get-Service -Name $Service1 -ComputerName $Computer1 | Start-Service 
            GetStatusOfService $service -ComputerName $Computer1       
            break
        }

    }
    exit
}

效果很好。 但是,我试图以一种方式构建该功能,使它在失败但无济于事时继续尝试启动服务。

我想坚持的另一步是,Powershell完成脚本后会发送一封电子邮件。 停止并再次启动服务后,它将检查状态并将该特定状态发送出去:

Function getStatusOfService {
    $serviceinfo = Get-Service $service -ComputerName $Computer1
    Write-Host $service is $serviceinfo.Status
    SendEmail
}

但是到目前为止,我无法工作的是,仅在状态停止时才发送电子邮件。 我已经尝试过多个选项,例如Status -eq "stopped"但是无论如何它都会发送电子邮件。

谁能给我一些有关如何构建它的建议?

亲切的问候,

瑞克

我不确定您要实现的目标,但是检查服务并在停止时发送邮件应如下所示:

$service = Get-Service "servicename" -ComputerName "Computer"
if($service.status -eq "Stopped"){
     Send-Mailmessage -to "it@it.com" -from "computer@it.com" -Subject "Stopped Service" -Body "Service $service.name stopped."
}

如果要经常检查此内容,则可以使用计划的任务多次运行脚本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM