К сожалению для Windows нет стандартного командлета консоли Uptime. Но есть множество способов получить это значение которое, без дополнительной обработки, нельзя назвать удобным для использования. Давайте разберем пример получения этого значения, а вместе с ним и LastLogon, с помощью Powershell
Если вы хотите получить отчет с удаленных компьютеров, в котором будут содержаться время последнего включения ПК, количество дней со включения и время последнего логона юзера, используйте следующий скрипт:
$comps = Get-ADcomputer -f * $result = New-Object 'System.Collections.Generic.List[object]' foreach($comp in $comps.SamAccountName){ if( Test-Connection $comp -Count 1 ){ $LastRebootTime = Get-WmiObject win32_operatingsystem -ComputerName $comp | Select @{Name='Computername';Expression={$comp}}, @{Name='LastBootUpTime';Expression={$_.ConverttoDateTime($_.lastbootuptime)}} $UptimeInDays = ( (Get-Date).Date - $LastRebootTime.LastBootUpTime.Date ).TotalDays $LastUserLogon = ( Get-ADComputer $comp -Properties lastlogontimestamp | Select @{Name="Lastlogon"; Expression={[DateTime]::FromFileTime($_.lastLogonTimestamp)}} ).Lastlogon $result.add( $([pscustomobject]$Lastreboottime | select *, @{Name='LastUserLogon';Expression={$LastUserLogon}},@{Name='UptimeInDays';Expression={$UptimeInDays}}) ) } } $result | Sort -Descending UptimeInDays
В результате мы получим отчет следующего вида: