Войти

Показать полную графическую версию : Как узнать время, прошедшее после пуска Windows?


Masutin
09-08-2015, 00:43
Если не командой (скриптом), то где искать? Например, Total Commander показывает такое значение, но ограниченное 1000 часами. Может, учитывается даже чистое время работы, вне спящего режима.

mwz
09-08-2015, 01:37
Masutin, http://mydiv.net/arts/view-kak-uznat-vremia-proshedshee-s-posledney-perezagruzki-Windows.html
и вообще
Как узнать время, прошедшее после пуска Windows (https://www.google.ru/search?ie=UTF-8&hl=ru&q=%D0%9A%D0%B0%D0%BA%20%D1%83%D0%B7%D0%BD%D0%B0%D1%82%D1%8C%20%D0%B2%D1%80%D0%B5%D0%BC%D1%8F%2C%20%D 0%BF%D1%80%D0%BE%D1%88%D0%B5%D0%B4%D1%88%D0%B5%D0%B5%20%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%20%D0%BF%D1%83 %D1%81%D0%BA%D0%B0%20Windows&gws_rd=ssl)

А в Windows Commander, позже ставший Total Commander, я при переводе этого термина схулиганил, поставив необязательное слово"уже:" тогда, в годы Win-3.1 и Win-95 (перевод стал официальным с 1997 года; последние несколько лет официальный перевод поддерживает группа Власова, мой же является теперь запасным), термины ещё не были так стандартизованы, как сейчас, а падала система гораздо чащё. И слово "уже" несло двойной смысл, второй с оттенком удивления: "Так долго??" :)

Foreigner
09-08-2015, 02:02
Powershell:

$(get-date) - $(get-ciminstance win32_operatingsystem).lastbootuptime | ft days,hours,minutes,seconds -auto

Georgio
09-08-2015, 10:13
Код пакетного файла для вывода времени работы системы в секундах:

@echo off

for /f "tokens=2 delims=," %%i in ('typeperf "\Система\Время работы системы" -sc 1^| findstr :') do echo %%~i

pause>nul

.

Пакетный файл сохраните в кодировке "OEM-866".

Iska
09-08-2015, 12:42
Georgio, признавайтесь — до «typeperf» долго копали?

greg zakharov
09-08-2015, 13:31
Iska, это во-первых (http://forum.script-coding.com/viewtopic.php?id=9967). Ну а во-вторых:
$ptr = [Runtime.InteropServices.Marshal]::AllocHGlobal(48)

if ([Regex].Assembly.GetType(
'Microsoft.Win32.NativeMethods'
).GetMethod(
'NtQuerySystemInformation'
).Invoke(
$null, @(3, $ptr, 48, 0)
) -eq 0) {
[DateTime]::FromFileTime(
[Runtime.InteropServices.Marshal]::ReadInt64($ptr)
)
}

[Runtime.InteropServices.Marshal]::FreeHGlobal($ptr)

Iska
09-08-2015, 13:41
Iska, это во-первых. »
greg zakharov, а Вы?

Masutin
03-12-2015, 05:25
Уважаемые! Слегка иная задача: вывод количества месяцев или дней а) со дня пуска, б) работы системы.
По PowerShell: Якобы get-ciminstance доступна начиная с v3, не для XP. Возможно ли нечто для PowerShell не выше v2?
По третьему скрипту (WSH?): При его запуске на XP в файле *.WSH - ошибка о том, что файл скрипта не указан, no script file specified. Виноват, не знаком с запуском таких скриптов.

Iska
03-12-2015, 06:33
а) со дня пуска, б) работы системы. »
Объясните разницу.

По третьему скрипту (WSH?): »
Тут нет WSH.

Masutin
03-12-2015, 06:51
Виноват, дополняю.
а) Количество месяцев или дней, прошедших со дня пуска системы.
б) Чистое время работы. Задача выполняется скриптом №2 для CMD, но в секундах.

Запуск скрипта №3 файлами с разрешениями VBS и JS вызывал ошибки. Как ещё запускать, к сожалению, не знаю.

Iska
03-12-2015, 07:49
дополняю.
а) Количество месяцев или дней, прошедших со дня пуска системы. »
«День пуска системы» — это Вы так называете дату/время инсталляции ОС, что ли?

Запуск скрипта №3 файлами с разрешениями VBS и JS вызывал ошибки. »
1. Скрипты здесь не нумеруются. Указывайте номер или ссылку на сообщение (а вот внутри сообщения, если приведено несколько кодов, можете нумеровать — «первый», «второй код» и т.д.).
2. Я уже писал выше, что в этой теме нет скриптов WSH — ни VBScript, ни JScript. Есть только скрипты PowerShell и пакетные файлы.

Foreigner
03-12-2015, 08:29
Должно работать в PowerShell-2

$lastboot = get-wmiobject win32_operatingsystem |

foreach { ([wmi]'').converttodatetime($_.lastbootuptime) }

new-timespan $lastboot | format-table days,hours,minutes,seconds -autosize

Iska
03-12-2015, 10:48
Должно работать в PowerShell-2 »
Работает.




© OSzone.net 2001-2012