$sessions = @() Get-CimInstance Win32_Process | Where-Object { $_.SessionId -ne 0 } | ForEach-Object { $session_info = New-Object PSObject $session_info | Add-Member -MemberType NoteProperty -Name "SessionId" -Value $_.SessionId $owner = Invoke-CimMethod -InputObject $_ -MethodName GetOwner if ($null -eq $owner.User) { $owner.User = "UNKNOWN" } if ($null -eq $owner.Domain) { $owner.Domain = "UNKNOWN" } $session_info | Add-Member -MemberType NoteProperty -Name "User" -Value $owner.User $session_info | Add-Member -MemberType NoteProperty -Name "Domain" -Value $owner.Domain $session_info | Add-Member -MemberType NoteProperty -Name "Process" -Value $_.Name $session_info | Add-Member -MemberType NoteProperty -Name "PID" -Value $_.ProcessId $sessions += $session_info } ; $sessions | Sort-Object -Property Name, Domain -Unique | Format-Table -AutoSize