Какой самый простой способ узнать, как долго компьютер включен в Windows?
8 ответов
- Запустить командную строку
- Тип Systeminfo
- Найти "Время загрузки системы" - Дней: 10 часов: 10 минут: 10 секунд: 10 
Для более короткого результата вы можете использовать:
systeminfo | find "Boot Time" 
есть отличный инструмент командной строки от Microsoft uptime.exe:
Хорошо, что этот инструмент работает очень быстро.
Время работы [сервер] [/s] [/a] [/d: мм / дд / гггг | / p: n] [/ heartbeat] [/? | /Помогите]
Имя сервера или IP-адрес удаленного сервера для обработки.
/s Показать ключевые системные события и статистику.
/a Показать события сбоя приложения (предполагается /s).
/d: рассчитывать только для событий после мм / дд / гггг.
/ p: рассчитывать только для событий за предыдущие n дней.
/ сердцебиение Включить / выключить сердцебиение системы
/? Основное использование.
/ help Дополнительная информация об использовании.
Откройте командную строку и введите:
net stats srv | find "Statistics"
Пример вывода:
>net stats srv | find "Statistics"
Server Statistics for \\4IFS-SANDER
Statistics since 22/07/2009 10:14:14
Источник (MS KB).
Изменить: На самом деле это скажет вам дату и время, когда компьютер был с, а не продолжительность.
В Windows 7 / Windows Server 2008 и выше эта информация отображается в диспетчере задач на вкладке "Производительность".
Это может быть быстрее, чем при использовании командной строки, и работает в тех случаях, когда у вас могут быть проблемы с WMI, мешающие запуску systeminfo.
Если вам нужно найти это удаленно, вы также можете запустить
systeminfo /s SERVERNAME | найти "Время:"
из командной строки.
Следующая команда дает время последней перезагрузки для удаленной системы:
systeminfo /s server_name | find "System Boot Time"
Иногда другая команда uptime отображает неправильное время, поэтому я использую эту команду для отображения LOGON TIME
query USER
или даже короче:
quser
который печатает что-то вроде:
C:\Users\eflorinescu>query  USER
 USERNAME                 SESSIONNAME        ID  STATE   IDLE TIME  LOGON TIME
>eflorinescu              console             2  Active    2+23:44  5/7/2018 8:25 AM
Если у вас есть наборы ресурсов Windows Server 2000 или 2003, попробуйте
srvinfo -ns [\\\server] | Findstr "Time"
Примечание. Srvinfo.exe не будет работать в 64-разрядных версиях Windows, поскольку он 16-разрядный.
Использование SYSTEMINFO с PowerShell
Для тех, кто любит использовать PowerShell, вы можете использовать приведенные выше ответы и systeminfo в функцию PowerShell, чтобы получить результат DateTime для последней загрузки сервера:
function Get-ComputerBootTime {
  param($ComputerName = (hostname))
  $SystemInfo = & systeminfo /s $ComputerName | Select-String "System Boot Time")
  if($SystemInfo -match "[\d/]+,\s+\S+"){
    return (Get-Date $matches[0])
  }
}
И затем вызовите функцию, например:
[PS]> $BootTime = Get-ComputerUptime -ComputerName MYSERVER
Чтобы получить Uptime для сервера, вы сравниваете с текущим временем:
[PS]> $UpTime = (Get-Date) - $BootTime
Это TimeSpan , который включает в себя такие свойства, как TotalDays:
[PS]> $UpTime.TotalDays
14.1827364

