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 wmic
ou peut - être des cmd
commandes.
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 wmic
ou peut - être des cmd
commandes.
Réponses:
systeminfo
la 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:
systeminfo
c'est localisé. Ce "Boot Time"
n'est donc vrai que pour les versions anglaises de Windows.
systeminfo | find /i "Systemstartzeit"
pour l'allemand
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' systeminfo
alternative lors du formatage de la date (ce qui wmic
n'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 statistics
commande 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):
(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.
wmic
le Gestionnaire des tâches et systeminfo
tous 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.
Il y a la LastBootUpTime
propriété de la Win32_OperatingSystem
classe. 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 CSName
ou l' autre ou PSComputerName
, ce qui semble fonctionner pour moi.
20121217175810.414696+120
Je pense avoir besoin d'une sacrée bonne calculatrice pour calculer le temps
CIM_DATETIME
format qui est requis par la norme. Il yyyymmddHHMMSS.mmmmmmsUUU
utilise 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/…
Notez que, comme l'a souligné Alex, la /sleepstudy
commande 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.html
dans 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)
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
set BOOTTIME
fonctionnait.
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
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 > System
et ensuite l' Filter Current Log...
action.
Vous pouvez utiliser PowerShell pour cela.
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
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
Quelques réponses mentionnent net statistics workstation
et 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:00
la date d'utilisation server
. Donc, je vais par défaut à workstation
.
Vous pouvez aussi abréger certaines commandes net stats workstation
et 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 more
pour é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
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.
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.