云主机网卡监控


发布时间:2017/12/11 21:00:45  次浏览  作者:admin

cls
$host.UI.RawUI.WindowTitle = ‘……云主机网卡监控……’
$host.UI.RawUI.ForegroundColor='Green'
#version V1.3.9
#t1间隔时间s
$t1=5
$log='d:\Router.log.txt' #日志文件
#region
$nu=0
$n1="##########"
$n2="监控总次数"
$cq1=0
$cq2=0
$ip1='192.168.0.1'
#$ip2='172.16.11.145'
#$ip3='172.16.11.8'
$netcardname='SLOT52'#云主机网卡名称
#endregion
if(Test-Path $log){}else
    {
    "初始化log"
    echo $n1 >$log
    echo $n2 >>$log
    echo $nu >>$log
    echo $n1 >>$log
    }
while(1 -lt 2)
{
    sleep $t1
    cls
    $log1=Get-Content $log
    $nu=$log1[2]
    $nu=[int]$nu + 1
    #print
    echo $n1
    echo "$($n2):$($nu)"
    echo "监控间隔:$($t1)s"
    echo "重启网卡:$($cq1)"
    echo "重启路由:$($cq2)"
    echo $n1
    #write
    echo $n1 >$log
    echo $n2 >>$log
    echo $nu >>$log
    echo $log1[3..($log1.count-1)] >>$log

    #check
    if ((Get-WmiObject -query "SELECT * FROM Win32_PingStatus WHERE Address = '$ip1'").StatusCode -eq 0)
    {
        "检测到云主机线路正常!"
        #检测内网

    }
    else
    {
      "检测到云主机线路已断开!!!"
     "重启云主机网卡"
     $cq1=$cq1 + 1
     echo "重启路由网卡, $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss.ffff')">>$log
     Get-NetAdapter -Name $netcardname | Restart-NetAdapter #要重启的网卡名称  可以用这个命令得到: Get-NetAdapter
     sleep 30
     #再次检测
    if ((Get-WmiObject -query "SELECT * FROM Win32_PingStatus WHERE Address = '$ip1'").StatusCode -eq 0)
         { "检测到云主机线路正常!" }
         else
         {
        "重启云主机网卡"
        $cq2=$cq2 + 1
        echo "重启云主机网卡, $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss.ffff')">>$log
        Get-NetAdapter -Name $netcardname | Restart-NetAdapter
        sleep 30
         }
    }
}