Этот скрипт написал скорее для себя, но весьма полезный. В Windows XP/Windows Server 2003 аптайм можно было легко посмотреть в свойствах сетевого подключения, которое как правило работает постоянно. Но в Windows Vista/Windows Server 2008 до него добираться далеко. Смотреть в Task Manager не удобно, поскольку он показывает аптайм в часах, а в уме высчитывать дни как-то неудобно. Вот и набросал функцию, которую положил себе в профиль:
function Get-SystemUptime ($computer = "$env:computername") { $lastboot = [System.Management.ManagementDateTimeconverter]::ToDateTime( "$((gwmi Win32_OperatingSystem -computername $computer).LastBootUpTime)") $uptime = (Get-Date) - $lastboot Write-Host "System Uptime for $computer is: " $uptime.days "days" $uptime.hours ` "hours" $uptime.minutes "minutes" $uptime.seconds "seconds" }
Концепция очень простая – берётся дата и время последней загрузки системы и вычитается из текущей даты и времени. Здесь важно отметить, что WMI возвращает нам дату в своём формате, который нужно преобразовать в тип DateTime.
Comments: