Como descobrir o tempo de funcionamento do Windows?
Qual é a forma mais simples de descobrir por quanto tempo um computador está ligado ao Windows?
Qual é a forma mais simples de descobrir por quanto tempo um computador está ligado ao Windows?
há uma grande ferramenta de linha de comando da Microsoft uptime.exe : http://www.microsoft.com/downloads/details.aspx?FamilyID=BC18FFDB-D6FE-400B-B892-94783AE44C91&displaylang=en
O bom com esta ferramenta é que ela funciona muito rápido.
Uptime [server] [/s] [/a] [/d:mm/dd/yyyyy | /p:n] [/heartbeat] [/? | /help] server Name or IP address of remote server to process. /s Display key system events and statistics. /a Display application failure events (assumes /s). /d: Só calcular para eventos após mm/dd/yyyy. /p: Calcular apenas para eventos nos n dias anteriores. /heartbeat Ligar/desligar o batimento cardíaco do sistema /? Utilização básica. /help Informação adicional de utilização.
Abra o prompt de comando e digite:
net stats srv | find "Statistics"
Exemplo de saída:
>net stats srv | find "Statistics"
Server Statistics for \4IFS-SANDER
Statistics since 22/07/2009 10:14:14
Fonte MS KB ).
Editar : Na verdade, isto irá dizer-lhe a data e a hora a partir da qual o pc estava a funcionar, não a duração.
No Windows 7 / Windows Server 2008 e superior, esta informação é apresentada no gestor de tarefas no separador “Performance”.
Isto pode ser mais rápido utilizando a linha de comandos e funciona nos casos em que possa ter problemas com a WMI que o impeçam de correr o sistemainfo.
Se precisar de encontrar isto remotamente, também pode correr
systeminfo /s SERVERNAME | encontrar “Time:”
a partir da linha de comandos.
Utilizar o SYSTEMINFO com PowerShell
Para quem gosta de usar o PowerShell, pode usar a(s) resposta(s) acima e embrulhar systeminfo
numa função PowerShell para obter um resultado DateTime
para quando o servidor tiver o último booted :
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])
}
}
E depois ligue para a função, por exemplo:
[PS]> $BootTime = Get-ComputerUptime -ComputerName MYSERVER
Para obter o Uptime para o servidor, compare com a hora actual:
[PS]> $UpTime = (Get-Date) - $BootTime
Este é um TimeSpan
, que inclui propriedades como TotalDays
:
[PS]> $UpTime.TotalDays
14.1827364
Por vezes o outro comando uptime mostra um tempo que não está correcto, por isso uso este comando para mostrar os LOGON TIME
query USER
ou até mais curto:
quser
que imprime algo como:
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