Uptime в Windows (на Powershell)
Написал на PowerShell скромный аналог утилиты uptime из Линукса (эта утилита показывает сколько дней компьютер работает без перезагрузки):
[math]::round(((Get-Date) - ($os=gwmi Win32_OperatingSystem).ConvertToDateTime($os.lastbootuptime)).TotalDays, 2)
В основном в сети предлагается запустить «net stats srv» и посмотреть строку «статистика после» («statistics since»), впрочем и вариантов на PowerShell тоже хватает. Кстати, можно сделать ещё и такой вариант:
[math]::round(((Get-Date) - (((net stats srv)[3] -split ' ')[2,3] -join ' ' | Get-Date)).TotalDays, 2)
Почти LISP. И всё-таки мне очень нравится PowerShell.
net stats srv врет :)
Статистика после 01.01.1980 0:00:00
Название ОС: MicrosoftR Windows VistaT Ultimate
Версия ОС: 6.0.6002 Service Pack 2 сборка 6002
PS C:\> [math]::round(- ($os=gwmi Win32_OperatingSystem).ConvertToDateTime($os.lastbootuptime.TotalDays, 2)
9,99
PS C:\> [math]::round(- (((net stats srv)[3] -split ’ ’)[2,3] -join ’ ’ | Get-Date.TotalDays, 2)
10,73
PS C:\> date
10 апреля 2011 г. 0:11:56
Почему так ? кому верить, как быть.
Комментарий для kurumbulka:
Вон выше говорят, что net stats srv врёт :)
А что у вас выдаёт «(net stats srv)[3]» и «(gwmi Win32_OperatingSystem).lastbootuptime»? Я думаю, что собака зарыта где-то в часовых поясах.
Я попозже попробую перезагрузить машину и посмотреть какой из методов врёт.
C:\>systeminfo
...
Время загрузки системы: 09.04.2011, 11:37:07
...
C:\>net stats srv
Статистика после 09.04.2011 11:37:35
Я не понял что вы этим хотели сказать.
Странно, но после перезагрузки системы оба способа показывают одинаковое время. Так что вопрос какой из способов врёт оставляем открытым.
у меня тоже net stats srv выдаёт:
Statistics since 01.01.1980 0:00:00
Комментарий для zg.livejournal.com:
Выдаёт ли что-то разумное первый PowerShell-скрипт? Что за OS? systeminfo выдаёт правильную информацию?
Комментарий для Евгения Степанищева:
первый ps скрипт выдаёт правильный аптайм. ос — сервер 2008. systeminfo тоже всё правильно выдаёт.
Комментарий для zg.livejournal.com:
Мда.
А можно ли изменить UpTime?
Комментарий для Kristofer:
Да.