Какой самый простой способ узнать, как долго компьютер включен в 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