$users = @() $sys_uptime = $(Get-Uptime) $system = New-Object -TypeName PSObject -Property @{ User = "System" Domain = "$(HOSTNAME.EXE)" Uptime = "$([math]::floor($sys_uptime.TotalHours))h $($sys_uptime.Minutes)m $($sys_uptime.Seconds)s" } $users += $system Get-CimInstance Win32_Process -Filter "name LIKE 'explorer.exe'" | ForEach-Object { $output = Invoke-CimMethod -InputObject $_ -MethodName GetOwner | Select-Object User, Domain $uptime = New-Timespan -start $_.CreationDate -End $current_date $uptime_formatted = "$([math]::floor($uptime.TotalHours))h $($uptime.Minutes)m $($uptime.Seconds)s" $output | Add-Member -MemberType NoteProperty -Name Uptime -Value $uptime_formatted $users += $output } ; $users | Select-Object -Property Domain, User, Uptime | Sort-Object -Property Uptime