We’ve listed a few ways to find out how long your computer has been up and running before. But how can we find out the same information on a remote computer? It could be helpful to know how long the remote computer has been running before informing the remote user and ask them politely that it’s time to reboot their computer.
Here are a few ways to find out.
SystemInfo is a built-in Windows command line that displays some basic info about not only about your local computer but any remote computers on the same network as well. Simply use the /s switch in the command followed by the name of the remote computer, like below.
SystemInfo /s Remote_Computer | find "Boot Time:"
It’s easy and pretty straightforward but the drawback is that it only displays the “System Boot Time“, indicating when the computer was booted last time, instead of the “System Up Time”, indicating how long the computer has been running. It’s more like an indirect answer to the question but you can get a rough idea from there.
The popular Sysinternals Suite has a command called PSInfo that can pull the same info and directly displays the Uptime info with uptime switch.
PSInfo Uptime \Remote_Computer
The drawback of using Sysinternals tools is that you will need the Remote Registry service up and running. Or, you will get the error message like below.
The most efficient way is probably just to use PowerShell cmdlets. Use the Win32_OperatingSystem WMI class with the -ComputerName switch to pull the LastBootupTime property from a remote computer and then subtract from the value of the current date/time that comes from Get-Date.
(Get-Date) - (Get-CimInstance Win32_OperatingSystem -ComputerName Remote_Computer).LastBootupTime
And of course, you will need to replace Remote_Computer with your real remote computer name in the above samples.
If you only know the remote computer IP, you will need to use Get-WimObject cmdlet instead. You will also need to use .Net’s ManagementDateTimeConverter to convert the timestamp format.
(Get-Date) - [Management.ManagementDateTimeConverter]::ToDateTime((Get-WmiObject Win32_OperatingSystem -ComputerName $computer).LastBootUpTime)