Powershell 6 — новый командлет Get-Uptime


Да теперь моими усилиями в Powershell 6 есть командлет Get-Uptime, который, как можно легко понять, возвращает длительность работы ОС или время старта системы.

Как оказалось это нетривиальная задача. Основная проблема в том, что командлет должен работать на всех системах Windows, OSX и Linux. Например Windows мы можем получить зачение Uptime несколькими способами: 1. используя WMI класс Win32_OperatingSystem — это выполняется медленно и работает только на Windows, 2. используя счётчик производительности «System Uptime» — это наиболее правильный способ для Windows, но он не работает на других системах.

В конечном итоге оказалось возможным использовать класс .Net Stopwatch Class (System.Diagnostics). Это нецелевое использование этого класса. Тем не менее нашёлся хитрый вариант, который работает. Подробности можно найти по ссылке #2497.

Реклама

Один ответ

  1. Всегда удивлялся, почему для Windows инженеры не добавляют простой способ узнать аптайм системы. Надо писать строку для получения данных WMI, смотреть systeminfo с кучей ненужной информации. А как красиво в Linux: uptime. И все :)

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: