2012-12-24 14:24:07 +0000 2012-12-24 14:24:07 +0000
112
112

Hoe kan ik weten wanneer Windows voor het laatst is herstart?

Hoe kan ik weten wanneer mijn computer met Windows 7 voor het laatst is herstart?

Ik geef de voorkeur aan een oplossing waarbij niet in het gebeurtenissenlogboek wordt gezocht, maar in iets als wmic of misschien cmd-commando’s.

Antwoorden (14)

173
173
173
2012-12-24 14:32:31 +0000

systeminfo commando is bijna goed wat je nodig hebt. Op Engelse Windows 7 kunt u ook:

systeminfo | find /i "Boot Time"

of met behulp van WMIC :

wmic os get lastbootuptime

Het belangrijkste verschil tussen Windows 7 en Windows XP dat in Windows 7 Microsoft alleen de laatste opstarttijd kan tonen.

  • *

Ook in Taakbeheer:

25
25
25
2014-12-09 15:34:46 +0000

Een andere manier om dit te doen is door de volgende opdrachtregel te gebruiken die zowel in Windows XP als in Windows 7 werkt:

net statistics workstation

Het heeft het voordeel dat het sneller is dan het systeminfo-alternatief terwijl de datum wordt geformatteerd (wat wmic niet doet). Je krijgt ook een paar andere informatie die nuttig kan zijn als je dit commando daadwerkelijk gebruikt voor het debuggen van een computer (aangezien je specifiek naar cmd vraagt, neem ik aan dat je dit niet programmatisch doet).

Je kunt meer informatie vinden over het net statistics commando hier: http://technet.microsoft.com/en-us/library/bb490714.aspx

Hier is een voorbeeld van het resultaat (met behulp van een Franse kopie van Windows 7 Pro SP1 x64, de gebruikerstaal maakt niet veel uit voor de opdrachtregel):

(de computernaam is opzettelijk vaag)


Meer informatie over http://en. wikipedia.org/wiki/Uptime over de nauwkeurigheid bij het bepalen van de uptime van het systeem.

  • *

Inspannende opmerking: deze methode bepaalt wanneer de computer voor het laatst is opgestart, niet de uptime. De 2 getallen zullen verschillend zijn als u slaap/hibernate gebruikt.

19
19
19
2012-12-24 14:41:41 +0000

Er is de LastBootUpTime eigenschap van de Win32_OperatingSystem klasse. Je kunt WMIC gebruiken met dit commando:

wmic os get lastbootuptime

of als je Powershell gebruikt, kun je de tijd omzetten naar iets dat leesbaarder is dan dat vervelende WMI datetime formaat:

Get-WmiObject -class Win32_OperatingSystem | Select-Object __SERVER,@{label='LastBootUpTime';expression={$_.ConvertToDateTime($_.LastBootUpTime)}}

Merk op dat je in latere versies van PowerShell ook gebruik kunt maken van Get-CimInstance, dat automatisch de waarde als datetime terugstuurt:

Get-CimInstance -Class Win32_OperatingSystem | Select-Object LastBootUpTime

Het enige vervelende is dat Get-CimInstance soms de naam van sommige systeemvelden van WMI-objecten zal veranderen, zoals __SERVER hier. Je zou ofwel CSName of PSComputerName moeten gebruiken, wat voor mij lijkt te werken.

9
9
9
2017-03-28 13:19:57 +0000
4
4
4
2018-08-21 07:51:22 +0000

Merk op dat, zoals Alex al aangaf, het /sleepstudy-commando pas in Windows 8.1 werd toegevoegd. Merk op dat sommige van deze andere antwoorden nooit voor mij hebben gewerkt, zoals het doorzoeken van het gebeurtenissenlogboek, omdat er bijvoorbeeld altijd een aantal items ontbraken. Het antwoord van @Florisz is ook in dat opzicht correct. Hier is mijn oplossing:

In een administrator cmd-shell, voer het volgende commando uit:

powercfg /sleepstudy /output sleepstudy.html

Open dan het bestand sleepstudy.html in een browser. Je wordt begroet met verbazingwekkend georganiseerde statistieken over shutdown/reboot/standby/hibernation van de ** laatste drie dagen**. (dus, voer regelmatig uit als je dat nodig hebt)

Een voorbeeld van een uitvoer: (AFAIR, Showdown (Hybrid) betekent snel opstarten)

Bron / Documentatie | Ook gerelateerd ](https://docs.microsoft.com/en-us/windows-hardware/design/device-experiences/powercfg-command-line-options#option_sleepstudy)

2
2
2
2016-05-24 20:46:59 +0000

nog een andere manier in een batchbestand om opstarttijd te krijgen met wmic maar in menselijk leesbare vorm :

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%

uitgang :

DTS : 20170308073729.491206+060

BOOTTIME : 2017-03-08 07:37

2
2
2
2017-10-07 19:32:19 +0000

U kunt hiervoor PowerShell gebruiken.

Shutdown


Get-WinEvent -LogName Microsoft-Windows-Diagnostics-Performance/Operational | Where { $_.Id -eq 200 }

Dit geeft u een lijst met gelogde uitschakeltijden.

Alternatief commando, beter geoptimaliseerd voor verbindingen op afstand:

Get-WinEvent -FilterHashtable @{LogName = "Microsoft-Windows-Diagnostics-Performance/Operational"; Id = 200; }

Voorbeelduitgang:

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

Opstart

  • *

Het volgende commando geeft u een lijst met gelogde opstarttijden.

Get-WinEvent -LogName Microsoft-Windows-Diagnostics-Performance/Operational | Where { $_.Id -eq 100}

Alternatief commando, beter geoptimaliseerd voor verbindingen op afstand:

Get-WinEvent -FilterHashtable @{LogName = "Microsoft-Windows-Diagnostics-Performance/Operational"; Id = 100; }

Voorbeelduitgang:

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

Ik heb dit getest op PowerShell 5.1 en Windows 10.0.15063. Maar het zou ook op Windows 7 moeten werken, zolang je tenminste PowerShell 3.0 hebt. Merk op dat u het moet uitvoeren als admin.

U vindt de volledige documentatie voor de opdracht hier docs.microsoft.com

2
2
2
2016-07-25 15:12:29 +0000

Op zowat elke versie van Windows kun je de tijdstempel op het wisselbestand controleren.

dir /a:h c:pagefile.sys

2
2
2
2015-07-08 20:41:51 +0000

Op Windows 7 geef ik de voorkeur aan net statistics workstation

WMIC houdt geen rekening met slaaptijd, en ik laat mijn werkplek doordeweeks slapend achter, klaar om de volgende dag wakker te worden.

2
2
2
2018-09-12 14:34:05 +0000

Om het in PowerShell te krijgen:

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
        }
    }

Hier is het resultaat:

CSname LastBootUpTime
------ --------------
LAPTOP1 2018-09-07 08:57:02
1
1
1
2018-08-17 11:38:18 +0000

Ik wil eraan toevoegen, dat al deze commando’s je echt de tijdstempels geven wanneer een ‘herstart’ of ‘reboot’ gedaan is. En niet wanneer een shutdown en start gedaan is. Na het afsluiten en starten zal de ‘lastbootuptime’ de tijd weergeven dat het systeem echt ‘herstart’ is en niet de werkelijke opstarttijd. Dus shutdown/start geeft hetzelfde resultaat als het terugkomen van suspend/hybernnate voor de LastBootUpTime timestamp.

1
1
1
2018-05-23 16:10:40 +0000

Een paar antwoorden vermelden net statistics workstation en ik heb opgemerkt dat zowel :

net statistics server

en

net statistics workstation

gegevens over de laatste keer opstarten op de Statistics since ... regel moeten verstrekken.

Echter, sommige OS-versies (zoals Svr2008/6.0) zullen 1/1/1980 12:00 teruggeven voor de datum wanneer ze server gebruiken. Dus ik ga standaard naar workstation.

Ook kun je een aantal commando’s zoals net stats workstation afkorten en krijg je dezelfde resultaten. Als je tenslotte van systeem naar systeem springt, is het standaard CMD-vak niet groot genoeg om alle resultaten van het commando weer te geven. Dus ik zal de uitvoer doorsturen naar more om te voorkomen dat je naar boven scrollt om de opstarttijd te zien. Daarom is mijn standaard commando:

net stats workstation | more

1
1
1
2017-07-17 18:08:00 +0000

Zoek/filter het Windows-systeemgebeurtenissenlogboek op ID 6009.

In Windows 10: Event Viewer > Windows Logs > System en vervolgens de actie Filter Current Log....

0
0
0
2019-02-21 16:36:38 +0000

Hetzelfde als Max antwoord …

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%

…maar in 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%

Deze wmi implementatie lijkt misschien een beetje rommelig maar het is zeer snel in vergelijking met andere powerhell of systeminfo implementaties en je kunt gemakkelijk het formaat veranderen omdat het expliciet in de code staat.

Dank je wel Max.