我目前有一个脚本可以恢复正常运行的服务器正常运行时间,但是当我收到服务器正常运行时间的值时,它包括天,分和秒。
以下是我认为需要修改的脚本行:
$os=Get-WmiObject win32_operatingsystem
$uptime=((get-date) - ($os.ConvertToDateTime($os.lastbootuptime))).tostring()
我试过查找选项只返回天;但一直找不到一个。
这可能吗?
答案 0 :(得分:10)
当你减去两个日期时间时,你得到一个TimeSpan结构,那个结构有一个Days属性你可以使用。
$uptime = ((get-date) - ($os.ConvertToDateTime($os.lastbootuptime))).Days
如果您希望小数天使用TotalDays代替天数,那么如果您有一天半的时间,则会得到1.5
的答案。
答案 1 :(得分:4)
按http://blog.mpecsinc.ca/2012/01/quick-way-to-find-server-up-time-in.html,试试这个:
(get-date)-([System.Management.ManagementDateTimeconverter]::ToDateTime((Get-WmiObject win32_operatingsystem).lastbootuptime))|select days
或者你也在寻找分数天?
答案 2 :(得分:0)
从CSV文件中读取服务器列表并获取正常运行时间并在HTML页面中生成报告。可以将其放在IIS或任何Web服务器上进行发布。
#Html Page
$now=get-date
$table="<HTML><HEAD><TITLE>Server Uptime Page</TITLE></HEAD><BODY><p align=Center><font size=6 face=Bodoni MT color=#003333><B>Server UpTime Report</B></font></p>"
$table += "<p align=Center><font face=Bodoni MT color=Green size=3>Last pulled : $now EST</font></P>"
$table +="<p align=Center><table BORDER=1 width=500 cellspacing=0 cellpadding=3>"
$table +="<tr>"
$table +="<th bgcolor=#303030 colspan=1 width=300><p align=center><b><font face=Verdana size=2 color=#FFFFFF>Server Name</font></b></p></th>"
$table +="<th bgcolor=#303030 colspan=1 width=200><p align=center><b><font face=Verdana size=2 color=#FFFFFF>Up Time</font></b></p></th>"
$table +="</tr>"
$nNeedToReboot=0
$nServerList=0
$more100=""
$bw75100=""
$bw5075=""
$bw3050=""
$bw029=""
$ErrorSvr=""
$svrlist =get-content d:\PSScripts\Uptime\ServerList.csv ##Source File
$LastUpdatedSvrList=(dir d:\PSScripts\Uptime\ServerList.csv).lastwritetime
foreach($svr in $svrlist)
{
if($svr -ne ""){
$nServerList++
$uptime=-1
$lastreboot=-1
$wmi=$null
#Write-Host "Server is $svr"
$wmi = Get-WmiObject -Class Win32_OperatingSystem -Computer $svr
$lastreboot=$wmi.ConvertToDateTime($wmi.LastBootUpTime)
$uptime=($now-$lastreboot).days
$Svr+" : "+$uptime+" : "+$lastreboot
if($uptime -gt 99){
$nNeedToReboot++
$more100 += "<tr bgcolor='#FF0000'><td>"+$svr+"</td><td align=center>"+$uptime+"</td></tr>"
#Write-Host "$svr $uptime"
}
if($uptime -gt 74 -AND $uptime -lt 100){
$nNeedToReboot++
$bw75100 += "<tr bgcolor='#E42217' ><td>"+$svr+"</td><td align=center>"+$uptime+"</td></tr>"
#Write-Host "$svr $uptime"
}
if($uptime -gt 49 -AND $uptime -lt 75){
$nNeedToReboot++
$bw5075 += "<tr bgcolor='#C11B17'><td>"+$svr+"</td><td align=center>"+$uptime+"</td></tr>"
#Write-Host "$svr $uptime"
}
if($uptime -gt 29 -AND $uptime -lt 50){
$nNeedToReboot++
$bw3050 += "<tr bgcolor='#DC381F'><td>"+$svr+"</td><td align=center>"+$uptime+"</td></tr>"
#Write-Host "$svr $uptime"
}
if($uptime -gt -1 -AND $uptime -lt 30){
$bw029 += "<tr bgcolor='#6CBB3C'><td>"+$svr+"</td><td align=center>"+$uptime+"</td></tr>"
#Write-Host "$svr $uptime"
}
if($uptime -eq -1 -OR $lastreboot -eq -1){
$ErrorSvr += "<tr bgcolor='#FF0000'><td>"+$svr+"</td><td align=center>Error connection</td></tr>"
#Write-Host "$svr $uptime"
}
}
}
$table +=$more100+$bw75100+$bw5075+$bw3050+$bw029+$ErrorSvr
$table+="</table>"
$table +="<font size=2 face=Bodoni MT color=#003333><B>Servers in List : </B></font>$nServerList<br>"
$table +="<font size=2 face=Bodoni MT color=#003333><B>Servers Need to be Rebooted : </B></font>$nNeedToReboot<br>"
$table>c:\iis\Uptime.htm
Exit
#########################END#############################