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.
9 апреля 2011 18:57

bulychev.info (bulychev.info)
9 апреля 2011, 21:08

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

kurumbulka (инкогнито)
9 апреля 2011, 21:12

PS C:\> [math]::round(((Get-Date) - ($os=gwmi Win32_OperatingSystem).ConvertToDateTime($os.lastbootuptime)).TotalDays, 2)
9,99
PS C:\> [math]::round(((Get-Date) - (((net stats srv)[3] -split ' ')[2,3] -join ' ' | Get-Date)).TotalDays, 2)
10,73
PS C:\> date
10 апреля 2011 г. 0:11:56

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

bolk (bolknote.ru)
9 апреля 2011, 22:20, ответ предназначен kurumbulka

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

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

bolk (bolknote.ru)
9 апреля 2011, 22:57

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

AG (инкогнито)
10 апреля 2011, 00:52

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


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

bolk (bolknote.ru)
10 апреля 2011, 10:22

C:\>systeminfo
C:\>net stats srv
Я не понял что вы этим хотели сказать.

bolk (bolknote.ru)
10 апреля 2011, 10:22

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

zg (zg.livejournal.com)
11 апреля 2011, 02:52

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

bolk (bolknote.ru)
11 апреля 2011, 09:12, ответ предназначен zg (zg.livejournal.com):

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

zg (zg.livejournal.com)
11 апреля 2011, 11:36, ответ предназначен bolk (bolknote.ru):

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

bolk (bolknote.ru)
11 апреля 2011, 14:57, ответ предназначен zg (zg.livejournal.com):

Мда.

Kristofer (инкогнито)
2 июня 2015, 08:26

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

bolknote.ru (bolknote.ru)
2 июня 2015, 11:54, ответ предназначен Kristofer

Да.

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)