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

Comment puis-je savoir quand Windows a été redémarré pour la dernière fois ?

Comment puis-je savoir quand mon ordinateur fonctionnant sous Windows 7 a été redémarré pour la dernière fois ?

Je préfère une solution qui n'implique pas la recherche dans le journal des événements, mais quelque chose comme les commandes wmic ou peut-être cmd.

Réponses (14)

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

La commande systeminfo est presque ce dont vous avez besoin. Sur Windows 7 anglais, vous pouvez également faire :

systeminfo | find /i "Boot Time"

Ou à l'aide du WMIC :

wmic os get lastbootuptime

La principale différence entre Windows 7 et Windows XP est que dans Windows 7, Microsoft ne peut afficher que le dernier temps de démarrage.


Aussi dans le gestionnaire de tâches :

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

Une autre façon de procéder consiste à utiliser la ligne de commande suivante qui fonctionne à la fois sous Windows XP et Windows 7 :

net statistics workstation

Elle présente l'avantage d'être plus rapide que l'alternative systeminfo tout en formatant la date (ce que ne fait pas wmic). Vous obtenez également quelques autres informations qui peuvent être utiles si vous utilisez effectivement cette commande pour déboguer un ordinateur (puisque vous demandez spécifiquement cmd, je suppose que vous ne le faites pas de manière programmée).

Vous pouvez trouver plus d'informations sur la commande net statistics ici : http://technet.microsoft.com/en-us/library/bb490714.aspx

Voici un exemple du résultat (en utilisant une copie française de Windows 7 Pro SP1 x64, le langage de l'utilisateur n'a pas beaucoup d'importance pour la ligne de commande) :

(le nom de l'ordinateur est volontairement flou)


Plus de détails sur http://en. wikipedia.org/wiki/Uptime sur l'exactitude de la détermination du temps de fonctionnement du système.


Note importante : cette méthode détermine la date du dernier démarrage de l'ordinateur, et non son temps de fonctionnement. Les 2 chiffres seront différents si vous utilisez la méthode “sleep/hibernate”.

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

Il y a la propriété LastBootUpTime de la classe Win32_OperatingSystem. Vous pouvez utiliser WMIC avec cette commande :

wmic os get lastbootuptime

Ou si vous utilisez Powershell, vous pouvez convertir l'heure en quelque chose de plus lisible que cet ennuyeux format date-heure WMI :

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

Notez que dans les versions ultérieures de PowerShell, vous pouvez également utiliser Get-CimInstance, qui renverra automatiquement la valeur sous forme de date-heure :

Get-CimInstance -Class Win32_OperatingSystem | Select-Object LastBootUpTime

La seule chose irritante est que Get-CimInstance changera parfois le nom de certains champs système des objets WMI, comme __SERVER ici. Il faudrait utiliser soit CSName soit PSComputerName, ce qui semble fonctionner pour moi.

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

Veuillez noter que, comme le souligne Alex , la commande /sleepstudy n'a été ajoutée qu'à Windows 8.1. /systempowerreport pourrait fonctionner à la place.

Notez que certaines de ces autres réponses n'ont jamais fonctionné pour moi, comme la recherche dans le journal des événements par exemple, il manquait toujours certaines entrées. La réponse de Florisz est également correcte à cet égard. Voici ma solution :

Dans un shell cmd administrateur, lancez la commande suivante :

powercfg /sleepstudy /output sleepstudy.html

Puis ouvrez le fichier sleepstudy.html dans un navigateur. Vous serez accueillis avec des statistiques étonnamment organisées sur l'arrêt/le redémarrage/la mise en veille/l'hibernation des trois derniers jours. (donc, lancez-les périodiquement si vous en avez besoin)

Un exemple de sortie : (AFAIR, Showdown (Hybrid) signifie démarrage rapide)

Source / Documentation | Voir aussi

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

encore un autre moyen dans un fichier batch pour obtenir le temps de démarrage avec wmic mais sous forme lisible par l'homme :

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%

sortie :

DTS : 20170308073729.491206+060

BOOTTIME : 2017-03-08 07:37

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

Vous pouvez utiliser PowerShell pour cela.

Shutdown


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

Cela vous donnera une liste des heures d'arrêt enregistrées.

Commande alternative, mieux optimisée pour les connexions à distance :

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

Exemple de sortie :

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

Startup


La commande suivante vous donnera une liste des heures de démarrage enregistrées.

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

Commande alternative, mieux optimisée pour les connexions à distance :

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

Exemple de sortie :

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

J'ai testé cette commande sur PowerShell 5.1 et Windows 10.0.15063. Mais il devrait fonctionner sous Windows 7 également, à condition que vous ayez au moins PowerShell 3.0. Vous trouverez la documentation complète de la commande ici docs.microsoft.com

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

Sur presque toutes les versions de Windows, vous pouvez vérifier l'horodatage du fichier d'échange.

dir /a:h c:\pagefile.sys

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

Sous Windows 7, je préfère

net statistics workstation

WMIC ne prend pas en compte le temps de sommeil, et je laisse mon poste de travail enfermé au travail en dormant pendant la semaine, prêt à me réveiller le lendemain.

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

Pour l'obtenir en 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
        }
    }

Voici le résultat :

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

Je tiens à ajouter que toutes ces commandes vous donnent vraiment l'heure à laquelle un “redémarrage” ou un “reboot” est effectué. Et pas quand un arrêt et un démarrage sont effectués. Après l'arrêt et le démarrage, le “lastbootuptime” indiquera l'heure à laquelle le système a réellement redémarré et non l'heure de démarrage réelle. Ainsi, l'arrêt/le démarrage donne le même résultat que le retour de la suspension/hybernation pour l'horodatage du LastBootUpTime.

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

Quelques réponses mentionnent net statistics workstation et j'ai noté que les deux :

net statistics server

et

net statistics workstation

devraient fournir des données concernant le dernier démarrage sur la ligne Statistics since ....

Cependant, certaines versions d'OS (comme Svr2008/6.0) retourneront 1/1/1980 12:00 pour la date d'utilisation de server. Donc je vais utiliser par défaut workstation.

Vous pouvez également abréger certaines commandes comme net stats workstation et obtenir les mêmes résultats. Enfin, si vous passez d'un système à l'autre, la boîte CMD par défaut n'est pas assez grande pour afficher tous les résultats de la commande. Je vais donc envoyer la sortie vers more pour éviter de faire défiler les résultats pour voir le temps de démarrage. Par conséquent, ma commande par défaut est :

net stats workstation | more

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

A partir d'une question ServerFault similaire , rechercher/filtrer le journal des événements du système Windows pour l'ID d'événement 6009.

Sur Windows 10 : Event Viewer > Windows Logs > System et ensuite l'action Filter Current Log....

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

Même réponse que Max …

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%

…mais en ligne :

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%

Cette implémentation wmi peut sembler un peu compliquée mais elle est très rapide par rapport aux autres implémentations powerhell ou systeminfo et vous pouvez facilement changer le format puisqu'il est explicite dans le code.

Merci Max.