Come scoprire i tempi di attività su Windows?
Qual è il modo più semplice per scoprire per quanto tempo un computer è acceso su Windows?
Qual è il modo più semplice per scoprire per quanto tempo un computer è acceso su Windows?
c'è un grande strumento a riga di comando di Microsoft uptime.exe : http://www.microsoft.com/downloads/details.aspx?FamilyID=BC18FFDB-D6FE-400B-B892-94783AE44C91&displaylang=en &003
La cosa buona di questo strumento è che funziona molto velocemente.
Uptime [server] [/s] [/a] [/d:mm/dd/yyyyy | /p:n] [/heartbeat] [/? | /help] server Nome o indirizzo IP del server remoto da elaborare. /s Visualizza eventi di sistema e statistiche chiave del sistema. /a Visualizza eventi di guasto dell'applicazione (presuppone /s). /d: Calcolare solo per eventi dopo mm/gg/aaaa. /p: Calcolare solo per eventi nei n giorni precedenti. /heartbeat Accendere / spegnere il battito cardiaco del sistema /? Utilizzo di base. /aiuto Informazioni supplementari sull'utilizzo.
Aprire il prompt dei comandi e digitare:
net stats srv | find "Statistics"
``` ```
>net stats srv | find "Statistics"
Server Statistics for \4IFS-SANDER
Statistics since 22/07/2009 10:14:14
Uscita esempio:
&001 &001
Fonte MS KB ).
Edit : In realtà questo vi dirà la data e l'ora da cui il pc è stato aggiornato, non la durata.
Su Windows 7 / Windows Server 2008 e superiori, queste informazioni vengono visualizzate nel task manager sotto la “scheda Prestazioni”.
Questo può essere più veloce quindi utilizzando la riga di comando e funziona nei casi in cui si potrebbero avere problemi di WMI che impediscono di eseguire systeminfo.
Se avete bisogno di trovare questo da remoto, si potrebbe anche eseguire
systeminfo /s SERVERNAME | trovare “Time:”
dalla riga di comando.
Usando SYSTEMINFO con PowerShell
Per coloro che amano usare PowerShell, è possibile utilizzare la risposta (o le risposte) di cui sopra e avvolgere systeminfo
in una funzione PowerShell per ottenere un risultato DateTime
per quando il server si è avviato per l'ultima volta** :
function Get-ComputerBootTime {
param($ComputerName = (hostname))
$SystemInfo = & systeminfo /s $ComputerName | Select-String "System Boot Time")
if($SystemInfo -match "[\d/]+,\s+\S+"){
return (Get-Date $matches[0])
}
}
``` ```
[PS]> $BootTime = Get-ComputerUptime -ComputerName MYSERVER
E poi chiamare la funzione, per esempio:
[PS]> $UpTime = (Get-Date) - $BootTime
``` ```
[PS]> $UpTime.TotalDays
14.1827364
Per ottenere il Uptime per il server, si confronta con l'ora corrente:
&001
Questo è un TimeSpan
, che include proprietà come TotalDays
:
&001
A volte l'altro comando di uptime visualizza un tempo non corretto, quindi uso questo comando per visualizzare il LOGON TIME
query USER
o più breve anche:
quser
che stampa qualcosa come:
C:\Users\eflorinescu>query USER
USERNAME SESSIONNAME ID STATE IDLE TIME LOGON TIME
>eflorinescu console 2 Active 2+23:44 5/7/2018 8:25 AM