🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
由于IIS某些原因为自动停止,我用PowerShell简单开发了这个小程序,用户可以设置多长时间检查一次,一经发现网站停止,则自动启动IIS进程。结合WindowsPowerShell 运行起来还算完美 ~~~ cls iis: #先进到powershell IIS $host.UI.RawUI.WindowTitle = ‘……翼通IIS守护……’ $host.UI.RawUI.ForegroundColor='Green' #version V1.3.9 #t1间隔时间s $t1=60 $log='d:\iis.log.txt' #日志文件 #region $nu=0 $n1="##########" $n2="监控总次数" $cq1=0 $cq2=0 #$ip2='172.16.11.145' #$ip3='172.16.11.8' #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 "重启已停止IIS进程:$($cq1)次" echo $n1 #write echo $n1 >$log echo $n2 >>$log echo $nu >>$log echo $log1[3..($log1.count-1)] >>$log #check #Get-ChildItem IIS:\apppools 这样进去会报找不到启动器错 Get-ChildItem apppools | where {$_.state -eq "Stopped"} | ForEach-Object{ echo "正在重启已停止的进程"$($_.Name) $cq1=$cq1 + 1 echo "重启已停止进程$($_.Name), $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss.ffff')">>$log Start-WebAppPool -Name "$($_.Name)" #启动已经停止的进程 } sleep 60 #重启完休息60秒 } ~~~ #### 监控效果 * * * * * ![](https://box.kancloud.cn/1cbbf4f90a6b1d468917022fa614b2d7_450x550.png) * * * * * #### 监控日志 ~~~ ########## 监控总次数 6737 3097 重启已停止进程1_FreeHost_358, 2018-06-04 00:25:33.9097 重启已停止进程1_FreeHost_442, 2018-06-04 01:28:11.1607 重启已停止进程1_FreeHost_442, 2018-06-04 03:54:56.7327 重启已停止进程1_FreeHost_353, 2018-06-04 06:36:08.7288 重启已停止进程1_FreeHost_445, 2018-06-04 12:00:08.7867 重启已停止进程1_FreeHost_101, 2018-06-04 12:22:56.2607 重启已停止进程1_FreeHost_127, 2018-06-04 12:22:56.5317 ~~~