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

105

Comment savoir quand mon ordinateur exécutant Windows 7 a été redémarré?

Je préfère une solution qui ne nécessite pas de recherche le journal des événements, mais quelque chose comme wmicou peut - être des cmdcommandes.

Royi Namir
la source

Réponses:

164

systeminfola commande est presque juste ce dont vous avez besoin. Sous Windows 7 anglais, vous pouvez également effectuer les tâches suivantes:

systeminfo | find /i "Boot Time"

Ou avec l'aide de 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 la dernière heure de démarrage.


Également dans le gestionnaire de tâches:

entrez la description de l'image ici

M0nhawk
la source
Aussi, est - il la liste accumulative de dernière remise à zéro s ?
Royi Namir
2
@RoyiNamir: Avec une liste de redémarrages sur Google (qui ressemble beaucoup):Get-EventLog -LogName System | where { ($_.InstanceId -bAnd 0xFFFF) -eq 6006 }
m0nhawk
c'est PowerShell .....?
Royi Namir
3
Sachez que systeminfoc'est localisé. Ce "Boot Time"n'est donc vrai que pour les versions anglaises de Windows.
Markus Mitterauer
1
systeminfo | find /i "Systemstartzeit"pour l'allemand
schoetbi
24

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

net statistics workstation

Il a l'avantage d'être plus rapide que l' systeminfoalternative lors du formatage de la date (ce qui wmicn'est pas le cas). Vous obtenez également quelques autres informations qui peuvent être utiles si vous utilisez réellement cette commande pour déboguer un ordinateur (puisque vous demandez spécifiquement cmd, je suppose que vous ne le faites pas par programme).

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

Voici un exemple de résultat (en utilisant une copie française de Windows 7 Pro SP1 x64, la langue de l'utilisateur importe peu pour la ligne de commande):

exemple

(le nom de l'ordinateur est délibérément flou)


Plus de détails sur http://en.wikipedia.org/wiki/Uptime sur la précision lors de la détermination de la disponibilité du système.


Remarque importante : cette méthode détermine le dernier démarrage de l'ordinateur, pas son temps de disponibilité. Les 2 numéros seront différents si vous utilisez sommeil / veille prolongée.

dnLL
la source
aucune idée pourquoi cela ne se lit pas comme si on utilisait systeminfo ou wmic ... c'est probablement négligeable, mais cela diffère sur mon système de plus de 2 minutes
Anthony Shaw
Cela diffère pour environ 40 secondes sur mon ordinateur aussi. Je ne sais pas pourquoi ce n'est pas exactement pareil, je suppose que le service démarre juste un peu plus tard. Quelques informations intéressantes sur fr.wikipedia.org/wiki/Uptime
dnLL
2
Cela diffère de plus de neuf mois sur le mien :-) C'est la seule réponse correcte. Il donne l'horodatage actuel du dernier démarrage (ou le moment où le service associé a démarré après le démarrage, si près du but), alors que wmicle Gestionnaire des tâches et systeminfotous semblent compter en arrière par rapport au temps actuel par le nombre de ticks que le PC a été fonctionnement. Mais si vous mettez souvent votre ordinateur en veille (ou en veille prolongée), le temps de fonctionnement total est bien inférieur au temps écoulé depuis le dernier démarrage (seulement trente jours au cours des derniers mois), ce calcul complètement.
Cameron
Merci @cameron, j'ai ajouté une note à la fin de ma réponse. La question initiale concernait vraiment le moment où l'ordinateur a démarré et non son temps de disponibilité, c'est donc un détail important. Wikipedia mentionne quelque peu la différence dans l'article sur le temps de disponibilité que j'ai lié.
dnLL
Ce n'est pas vraiment la dernière heure de "démarrage" - c'est l'heure à laquelle le service Serveur ou Poste de travail a démarré, en fonction de celui pour lequel vous interrogez les statistiques. Comme ils ne s’arrêtent jamais au cours d’une session Windows normale, il s’agit d’une approximation pratique de la dernière heure de démarrage.
oldmud0
18

Il y a la LastBootUpTimepropriété de la Win32_OperatingSystemclasse. Vous pouvez utiliser WMIC avec cette commande:

wmic os get lastbootuptime

Ou, si vous utilisez Powershell, vous pouvez convertir l'heure en un format plus lisible que ce format de date / heure agaçant 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 en tant que date-heure:

Get-CimInstance -Class Win32_OperatingSystem | Select-Object LastBootUpTime

Le seul inconvénient est que Get-CimInstance modifie parfois le nom de certains champs système à partir d'objets WMI, tels que __SERVER ici. Vous devrez utiliser l'un CSNameou l' autre ou PSComputerName, ce qui semble fonctionner pour moi.

Lardons
la source
20121217175810.414696+120Je pense avoir besoin d'une sacrée bonne calculatrice pour calculer le temps
Royi Namir
7
@Royi Ouais, les horodatages WMI sont stupides. C'est un CIM_DATETIMEformat qui est requis par la norme. Il yyyymmddHHMMSS.mmmmmmsUUUutilise l'heure de 24 heures. Ici, votre dernière heure de redémarrage est le 17 décembre 2012 à 17h58. msdn.microsoft.com/en-us/library/windows/desktop/…
Bacon Bits
1
L’avantage pratique d’utiliser la méthode get-wmiobject est qu’il est aussi facile d’obtenir les temps de démarrage des ordinateurs distants. Il suffit d'ajouter "-computer <nom_ordinateur>" à la commande (avant le tuyau)
camster342
8

Pour les utilisateurs de Windows 10 là-bas ....

Propriétés système Windows 10 - Performance Up time

Jonathan Tepper
la source
1
Cela vous indique le temps de disponibilité (c.-à-d. Combien de temps le système fonctionne) et non pas le moment où le système a été démarré lorsque OP a demandé.
Dawid Ferenczy Rogožan
1
C'est vrai, mais cela reste utile.
tbc0
Aujourd'hui, mon ordinateur portable Windows 10 affiche une fausse disponibilité. Je l'ai fermé la nuit dernière, je l'ai allumé il y a moins d'une heure et le gestionnaire des tâches a déclaré qu'il était prêt pour 5: 19: 40: 10.
tbc0
Windows 10 ne s'arrête pas réellement lorsqu'il est arrêté, j'oublie pourquoi. Toutefois, si vous souhaitez réinitialiser le minuteur de disponibilité, vous devez le redémarrer.
Daniel Hayes
3

Notez que, comme l'a souligné Alex, la /sleepstudycommande n'a pas été ajoutée avant Windows 8.1. / systempowerreport pourrait fonctionner à la place.

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

Dans un shell de commande administrateur, exécutez la commande suivante:

powercfg /sleepstudy /output sleepstudy.html

Puis ouvrez le fichier sleepstudy.htmldans un navigateur. Vous serez accueilli avec des statistiques étonnamment bien organisées sur les arrêts / redémarrages / mises en veille / hibernations des trois derniers jours . (donc, lancez périodiquement si vous avez besoin)

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

entrez la description de l'image ici

Source / Documentation | Aussi liés

confettis
la source
1
C'est ce que je cherchais sur Windows 10! Je ne redémarre pas, je ferme normalement. LastBootTime fait uniquement référence aux redémarrages sous Windows 10.
tbc0
2

Sur 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 bloqué au travail, dormant toute la semaine, prêt à se lever le lendemain.

tbc0
la source
2

Encore une autre manière dans un fichier batch d’obtenir le temps de démarrage avec wmic mais sous une 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

HEURE DE BOOT: 2017-03-08 07:37

Max
la source
1
Cette réponse serait meilleure si elle incluait une explication de la façon dont cela set BOOTTIMEfonctionnait.
un CVn
2

Pour l'obtenir dans 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
PollusB
la source
1

Sur à peu près n'importe quelle version de Windows, vous pouvez vérifier l'horodatage sur le fichier d'échange.

dir /a:hc:\pagefile.sys

Mandrin
la source
1
Je ne pense pas. Au moins sous Windows 10, lorsque j'ai vérifié, l'heure du fichier d'échange était plus récente que celle du démarrage.
tbc0
1

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

Sous Windows 10: Event Viewer > Windows Logs > Systemet ensuite l' Filter Current Log...action.

palswim
la source
1

Vous pouvez utiliser PowerShell pour cela.

Fermer


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

Commencez


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é cela sur PowerShell 5.1 et Windows 10.0.15063. Mais cela devrait également fonctionner sous Windows 7, à condition que vous disposiez au minimum de PowerShell 3.0. Notez que vous devez l'exécuter en tant qu'administrateur.

Vous trouverez la documentation complète de la commande ici: docs.microsoft.com

Samir
la source
N'a pas fonctionné pour moi sur Windows 10. Pas même en tant qu'administrateur. Voir snag.gy/HcEn8j.jpg
tbc0
1

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

net statistics server

et

net statistics workstation

devrait fournir des données concernant le dernier démarrage de la Statistics since ...ligne.

Cependant, certaines versions de système d'exploitation (telles que Svr2008 / 6.0) renverront 1/1/1980 12:00la date d'utilisation server. Donc, je vais par défaut à workstation.

Vous pouvez aussi abréger certaines commandes net stats workstationet obtenir les mêmes résultats. Enfin, si vous passez d’un système à l’autre, la zone CMD par défaut n’est pas assez grande pour afficher tous les résultats de la commande. Je vais donc diriger la sortie vers morepour éviter de faire défiler l'écran pour voir le temps de démarrage. Par conséquent, ma commande par défaut est:

net stats workstation | more

commander

ictm
la source
1

Je veux ajouter que toutes ces commandes vous donnent vraiment les horodatages lorsqu'un "redémarrage" ou un "redémarrage" est effectué. Et pas quand un arrêt et un démarrage sont faits. Après l’arrêt et le démarrage, le «dernier démarrage» reflétera le temps réellement «redémarré» du système et non le temps de démarrage réel. Ainsi, shutdown / start donne le même résultat que de revenir de suspend / hybernnate pour l'horodatage LastBootUpTime.

Florisz
la source
0

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 dans 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%

Cette implémentation wmi peut sembler un peu compliquée, mais elle est très rapide comparée à d’autres implémentations powershell ou systeminfo et vous pouvez facilement changer le format car il est explicite dans le code.

Merci Max.

Loïc
la source