답변:
systeminfo
명령은 당신이 필요로하는 거의 옳습니다. 영어 Windows 7에서도 다음을 수행 할 수 있습니다.
systeminfo | find /i "Boot Time"
또는 WMIC 의 도움으로 :
wmic os get lastbootuptime
Windows 7에서 Windows 7과 Windows XP의 주요 차이점은 Microsoft가 마지막 부팅 시간 만 표시 할 수 있다는 것입니다.
또한 작업 관리자에서 :
systeminfo
지역화됩니다. 그래서 "Boot Time"
윈도우의 영어 버전에만 해당됩니다.
systeminfo | find /i "Systemstartzeit"
독일어
이를 수행하는 또 다른 방법은 Windows XP와 Windows 7에서 모두 작동하는 다음 명령 줄을 사용하는 것입니다.
net statistics workstation
systeminfo
날짜 형식을 지정하는 동안 다른 것보다 빠르다는 이점이 있습니다 ( wmic
그렇지 않습니다). 컴퓨터를 디버깅하기 위해 실제로이 명령을 사용하는 경우 유용 할 수있는 몇 가지 정보가 있습니다 (구체적으로 요청하기 때문에 cmd
프로그래밍 방식으로 수행하지 않는다고 가정 함).
net statistics
명령 에 대한 자세한 내용은 여기 ( http://technet.microsoft.com/en-us/library/bb490714.aspx)를 참조 하십시오.
다음은 결과의 예입니다 (프랑스어 Windows 7 Pro SP1 x64를 사용하는 경우 사용자 언어는 명령 줄에별로 중요하지 않음).
(컴퓨터 이름이 의도적으로 흐리게 표시됨)
시스템 가동 시간을 결정할 때의 정확성 에 대한 http://en.wikipedia.org/wiki/Uptime 에 대한 자세한 내용
중요 사항 :이 방법은 컴퓨터의 가동 시간이 아니라 마지막으로 부팅 된 시간을 결정합니다. 절전 / 최대 절전 모드를 사용하는 경우 2 개의 숫자가 달라집니다.
wmic
작업 관리자와 마지막 부팅의 실제 날짜 스탬프를 제공합니다 (또는 부팅 후 관련 서비스가 시작된 시점에 매우 근접한 경우) . 작업 관리자는 systeminfo
모두 PC가 틱 수만큼 현재 시간부터 거꾸로 계산하는 것처럼 보입니다. 달리는. 그러나 컴퓨터를 절전 모드 (또는 최대 절전 모드)로 설정하면 실제 총 실행 시간이 마지막 부팅 이후의 시간 (지난 몇 달 동안 30 일)보다 훨씬 짧아집니다. 그 계산을 완전히합니다.
클래스 의 LastBootUpTime
속성 이 있습니다 Win32_OperatingSystem
. 이 명령으로 WMIC를 사용할 수 있습니다.
wmic os get lastbootuptime
또는 Powershell을 사용하는 경우 시간을 성가신 WMI 날짜 / 시간 형식보다 읽기 쉬운 것으로 변환 할 수 있습니다.
Get-WmiObject -class Win32_OperatingSystem | Select-Object __SERVER,@{label='LastBootUpTime';expression={$_.ConvertToDateTime($_.LastBootUpTime)}}
이후 버전의 PowerShell에서는 Get-CimInstance를 사용하여 값을 자동으로 날짜 / 시간으로 반환합니다.
Get-CimInstance -Class Win32_OperatingSystem | Select-Object LastBootUpTime
유일한 자극은 Get-CimInstance가 때때로 __SERVER와 같은 WMI 개체의 일부 시스템 필드 이름을 변경한다는 것입니다. CSName
나 중 하나를 사용해야합니다 PSComputerName
.
20121217175810.414696+120
시간을 계산하려면 좋은 계산기가 필요하다고 생각합니다
CIM_DATETIME
표준에서 요구하는 형식이다. 그것은의 yyyymmddHHMMSS.mmmmmmsUUU
24 시간 시간을 사용. 여기서 마지막 재부팅 시간은 2012 년 12 월 17 일 오후 5:58입니다. msdn.microsoft.com/en-us/library/windows/desktop/...
Alex 가 지적한 것처럼 이 /sleepstudy
명령은 Windows 8.1까지 추가되지 않았습니다. / systempowerreport 가 대신 작동 할 수 있습니다.
예를 들어 이벤트 로그를 검색하면 항상 일부 항목이 누락 된 것처럼 이러한 다른 답변 중 일부는 저에게 효과적이지 않았습니다. @Florisz의 대답은 그 점에서도 정확합니다. 내 해결책은 다음과 같습니다.
관리자 cmd 쉘에서 다음 명령을 실행하십시오.
powercfg /sleepstudy /output sleepstudy.html
그런 다음 sleepstudy.html
브라우저 에서 파일 을여십시오. 지난 3 일 동안의 종료 / 재부팅 / 대기 / 최대 절전 모드에 대한 놀랍도록 체계적인 통계가 표시 됩니다 . (필요한 경우 주기적으로 실행)
출력 예 : (AFAIR, Showdown (Hybrid)
빠른 시작을 의미)
배치 파일의 또 다른 방법은 wmic로 부팅 시간을 얻지 만 사람이 읽을 수있는 형식입니다.
for /f %%a in ('WMIC OS GET lastbootuptime ^| find "."') DO set DTS=%%a set BOOTTIME=%DTS:~0,4%-%DTS:~4,2%-%DTS:~6,2% %DTS:~8,2%:%DTS:~10,2% echo DTS : %DTS% echo BOOTTIME :%BOOTTIME%
출력 :
DTS : 20170308073729.491206 + 060
BOOTTIME : 2017-03-08 07:37
set BOOTTIME
작동 방식에 대한 설명이 포함되어 있으면 더 좋습니다 .
PowerShell에서 가져 오려면 :
Function Get-LastBoot {
if ($Host.Version.Major -lt 3) {
Get-WmiObject win32_operatingsystem | Select-Object CSname, @{n = 'LastBootUpTime'; e = {$_.ConverttoDateTime($_.lastbootuptime)}}
}
else {
Get-CimInstance -ClassName win32_operatingsystem | Select-Object CSname, LastBootUpTime
}
}
결과는 다음과 같습니다.
CSname LastBootUpTime
------ --------------
LAPTOP1 2018-09-07 08:57:02
비슷한 ServerFault 질문 에서 Windows 시스템 이벤트 로그에서 이벤트 ID를 검색 / 필터링하십시오 6009
.
: 윈도우 10에서 Event Viewer > Windows Logs > System
다음 Filter Current Log...
작업.
이를 위해 PowerShell을 사용할 수 있습니다.
Get-WinEvent -LogName Microsoft-Windows-Diagnostics-Performance/Operational | Where { $_.Id -eq 200 }
기록 된 종료 시간 목록이 표시됩니다.
원격 연결에 최적화 된 대체 명령 :
Get-WinEvent -FilterHashtable @{LogName = "Microsoft-Windows-Diagnostics-Performance/Operational"; Id = 200; }
출력 예 :
TimeCreated Id LevelDisplayName Message
----------- -- ---------------- -------
2017-01-28 18:25:46 200 Critical Windows has shutdown
2016-11-01 19:55:21 200 Error Windows has shutdown
2016-10-29 00:18:38 200 Critical Windows has shutdown
2016-10-26 23:16:55 200 Warning Windows has shutdown
2016-10-26 15:37:40 200 Warning Windows has shutdown
2016-10-26 02:18:24 200 Warning Windows has shutdown
2016-10-26 02:10:34 200 Warning Windows has shutdown
2016-10-26 02:04:01 200 Warning Windows has shutdown
2016-10-25 14:23:11 200 Warning Windows has shutdown
2016-10-25 13:07:46 200 Error Windows has shutdown
2016-10-25 00:18:12 200 Error Windows has shutdown
2016-10-19 13:16:39 200 Critical Windows has shutdown
다음 명령은 기록 된 시작 시간 목록을 제공합니다.
Get-WinEvent -LogName Microsoft-Windows-Diagnostics-Performance/Operational | Where { $_.Id -eq 100}
원격 연결에 최적화 된 대체 명령 :
Get-WinEvent -FilterHashtable @{LogName = "Microsoft-Windows-Diagnostics-Performance/Operational"; Id = 100; }
출력 예 :
TimeCreated Id LevelDisplayName Message
----------- -- ---------------- -------
2017-10-07 21:35:38 100 Critical Windows has started up
2017-01-28 18:25:48 100 Critical Windows has started up
2016-12-11 17:45:07 100 Critical Windows has started up
2016-11-16 13:26:52 100 Critical Windows has started up
2016-11-01 19:55:21 100 Critical Windows has started up
2016-10-29 00:18:39 100 Critical Windows has started up
2016-10-26 23:16:55 100 Error Windows has started up
2016-10-26 14:51:07 100 Error Windows has started up
2016-10-26 02:24:01 100 Error Windows has started up
2016-10-26 02:18:24 100 Critical Windows has started up
2016-10-26 02:10:34 100 Error Windows has started up
2016-10-26 02:04:01 100 Critical Windows has started up
2016-10-25 14:23:12 100 Error Windows has started up
2016-10-25 13:07:47 100 Error Windows has started up
2016-10-25 12:56:23 100 Error Windows has started up
2016-10-19 13:16:39 100 Critical Windows has started up
PowerShell 5.1 및 Windows 10.0.15063에서 이것을 테스트했습니다. 그러나 PowerShell 3.0 이상인 경우 Windows 7에서도 작동합니다. 관리자 권한으로 실행해야합니다.
docs.microsoft.com 명령에 대한 전체 설명서를 찾을 수 있습니다.
몇 가지 답변 net statistics workstation
이 언급되어 있으며 두 가지 모두 언급했습니다.
net statistics server
과
net statistics workstation
마지막 부팅 관련 데이터를 제공해야합니다 Statistics since ...
.
그러나 일부 OS 버전 (예 : Svr2008 / 6.0)은를 1/1/1980 12:00
사용할 때 날짜로 돌아갑니다 server
. 그래서 기본값은 workstation
입니다.
또한 일부 명령을 축약 net stats workstation
하여 동일한 결과를 얻을 수 있습니다. 마지막으로 시스템에서 시스템으로 이동하면 기본 CMD 상자가 명령의 모든 결과를 표시 할만큼 크지 않습니다. more
부팅 시간을보기 위해 위로 스크롤하지 않도록 출력을 파이프합니다 . 따라서 기본 명령은 다음과 같습니다.
net stats workstation | more
최대 답변과 동일 ...
for /f %%a in ('WMIC OS GET lastbootuptime ^| find "."') DO set DTS=%%a
set BOOTTIME=%DTS:~0,4%-%DTS:~4,2%-%DTS:~6,2% %DTS:~8,2%:%DTS:~10,2%
echo DTS : %DTS%
echo BOOTTIME :%BOOTTIME%
...하지만 oneliner에서 :
for /f %a in ('WMIC OS GET lastbootuptime ^| find "."') DO set DTS=%a && echo %DTS:~0,4%-%DTS:~4,2%-%DTS:~6,2% %DTS:~8,2%:%DTS:~10,2%
이 wmi 구현은 약간 복잡하게 보일 수 있지만 다른 powershell 또는 systeminfo 구현과 비교할 때 매우 빠르며 코드에서 명시 적이므로 형식을 쉽게 변경할 수 있습니다.
맥스 감사합니다.