Пишу, по большей части, про историю, свою жизнь и немного про программирование.

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.

13 комментариев
bulychev.info 2011

net stats srv врет :)
Статистика после 01.01.1980 0:00:00
Название ОС: MicrosoftR Windows VistaT Ultimate
Версия ОС: 6.0.6002 Service Pack 2 сборка 6002

kurumbulka 2011

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

Почему так ? кому верить, как быть.

Евгений Степанищев (bolknote.ru) 2011

Комментарий для kurumbulka:

Вон выше говорят, что net stats srv врёт :)

А что у вас выдаёт «(net stats srv)[3]» и «(gwmi Win32_OperatingSystem).lastbootuptime»? Я думаю, что собака зарыта где-то в часовых поясах.

Евгений Степанищев (bolknote.ru) 2011

Я попозже попробую перезагрузить машину и посмотреть какой из методов врёт.

AG 2011

C:\>systeminfo
...
Время загрузки системы: 09.04.2011, 11:37:07
...

C:\>net stats srv
Статистика после 09.04.2011 11:37:35

Евгений Степанищев (bolknote.ru) 2011

C:\>systeminfo
C:\>net stats srv

Я не понял что вы этим хотели сказать.

Евгений Степанищев (bolknote.ru) 2011

Странно, но после перезагрузки системы оба способа показывают одинаковое время. Так что вопрос какой из способов врёт оставляем открытым.

zg (zg.livejournal.com) 2011

у меня тоже net stats srv выдаёт:
Statistics since 01.01.1980 0:00:00

Евгений Степанищев (bolknote.ru) 2011

Комментарий для zg.livejournal.com:

Выдаёт ли что-то разумное первый PowerShell-скрипт? Что за OS? systeminfo выдаёт правильную информацию?

zg (zg.livejournal.com) 2011

Комментарий для Евгения Степанищева:

первый ps скрипт выдаёт правильный аптайм. ос — сервер 2008. systeminfo тоже всё правильно выдаёт.

Евгений Степанищев (bolknote.ru) 2011

Комментарий для zg.livejournal.com:

Мда.

Kristofer 2015

А можно ли изменить UpTime?

Евгений Степанищев (bolknote.ru) 2015

Комментарий для Kristofer:

Да.