Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

How can I find a Windows server's last reboot time, apart from 'net statistics server/workstation'?

share|improve this question

8 Answers 8

Start -> Run -> cmd.exe

systeminfo | find "System Up Time"

Or for more recent OS versions (see comment):

systeminfo | find "System Boot Time"

share|improve this answer
Works in Windows XP and I would assume Windows Server 2003, but doesn't work on Windows 2008 as it is now "System Boot Time". –  steve.lippert Jul 12 '10 at 14:53

Filter the System Event Log for Event ID 6009.

share|improve this answer
This is especially nice because if you keep a large enough event log, you will have a history of many previous reboots. –  Dave Jul 12 '10 at 14:48

I use the PsInfo utility from Microsoft's Sysinternals package, which will give you output like this:

PsInfo v1.77 - Local and remote system information viewer
Copyright (C) 2001-2009 Mark Russinovich
Sysinternals - www.sysinternals.com

System information for \\JEFF-DELL:
Uptime:                    0 days 0 hours 33 minutes 27 seconds
Kernel version:            Microsoft Windows XP, Multiprocessor Free
Product type:              Professional
Product version:           5.1
Service pack:              3
Kernel build number:       2600
Registered organization:
Registered owner:          
IE version:                8.0000
System root:               C:\WINDOWS
Processors:                2
Processor speed:           2.3 GHz
Processor type:            Intel(R) Core(TM)2 Duo CPU     E6550  @
Physical memory:           3316 MB
Video driver:              Live Mesh Remote Desktop Mirror Driver
share|improve this answer
psinfo uptime will display just the uptime. –  Dennis Williamson Jul 12 '10 at 15:43

open up the powershell command and run this to see all your history ... and no UI necessary :-)

get-eventlog System | where-object {$_.EventID -eq "6005"} | sort -desc TimeGenerated
share|improve this answer

Using a wmi client.

C:\>wmic OS GET CSName,LastBootUpTime
CSName    LastBootUpTime 
SERVER  20101124084714.500000-360

Note: -360 = GMT-6

share|improve this answer

If you are using Server 2008, you can see the system uptime in hours on the "Task Manager" - "Performance" tab. As far as I know, the "net statistics ..." way is the only true way on Windows 2003.

share|improve this answer

Using Powershell

Get-CimInstance -ClassName win32_operatingsystem | select csname, lastbootuptime

CSName   LastBootUpTime
Server      7/5/2014 6:00:00 AM

share|improve this answer

Last Time the System Booted

My personal favorite is to use WMI and Win32_OperatingSystem properties/methods. Here it is as an easy copy/paste one liner:

((Get-WmiObject Win32_OperatingSystem).ConvertToDateTime((Get-WmiObject Win32_OperatingSystem).LastBootUpTime))

Same thing, but easier for manual typing:

$obj = Get-WmiObject Win32_OperatingSystem

Both options provide output like:

Monday, June 30, 2014 11:59:50 AM

Length of System Up Time

If you want to find out how long the system has been online you can do this (this is also an alternate code style):

$Obj = Get-WmiObject -Class Win32_OperatingSystem
$Obj.ConvertToDateTime($Obj.LocalDateTime) - $Obj.ConvertToDateTime($Obj.LastBootUpTime)

Which gives output like:

Days              : 7
Hours             : 1
Minutes           : 59
Seconds           : 42
Milliseconds      : 745
Ticks             : 6119827457690
TotalDays         : 7.08313363158565
TotalHours        : 169.995207158056
TotalMinutes      : 10199.7124294833
TotalSeconds      : 611982.745769
TotalMilliseconds : 611982745.769
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.