Get-Ryan

[PowerShell] List Logged-on Users for Windows PC

Oct 29th, 2015
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Function Get-LoggedOnUsers(){
  2.  
  3.     param(
  4.        
  5.         [Parameter(ValueFromPipeline=$true)]
  6.         [PSCustomObject]
  7.         $Computer
  8.     )
  9.  
  10.     Begin{
  11.  
  12.         $Computers = New-Object -TypeName System.Collections.ArrayList
  13.  
  14.     }
  15.  
  16.     Process{
  17.  
  18.         $UsernameJob = Invoke-Command -ComputerName $Computer.Name -ScriptBlock {Get-WmiObject -Class Win32_Process -Filter "Name='explorer.exe'" | ForEach-Object{$_.GetOwner().User} | Select-Object -Unique} -AsJob
  19.         $LockedJob = Invoke-Command -ComputerName $Computer.Name -ScriptBlock {Get-WmiObject -Class Win32_Process -Filter "Name='logonui.exe'"} -AsJob
  20.  
  21.         Add-Member -InputObject $Computer -MemberType NoteProperty -Name "UsernameJob" -Value $UsernameJob -Force
  22.         Add-Member -InputObject $Computer -MemberType NoteProperty -Name "LockedJob" -Value $LockedJob -Force
  23.  
  24.         $Computers.Add($Computer) | Out-Null
  25.  
  26.     }
  27.  
  28.     End{
  29.  
  30.         Get-Job | Wait-Job | Out-Null
  31.  
  32.         ForEach($Computer in $Computers){
  33.  
  34.             $Username = Receive-Job $Computer.UsernameJob
  35.             $Locked = Receive-Job $Computer.LockedJob
  36.  
  37.             If($Locked){$Locked = "Locked"}
  38.  
  39.             Add-Member -InputObject $Computer -MemberType NoteProperty -Name "Username" -Value $Username -Force
  40.             Add-Member -InputObject $Computer -MemberType NoteProperty -Name "Locked" -Value $Locked -Force
  41.  
  42.         }
  43.  
  44.         Get-Job | Remove-Job
  45.  
  46.         $Computers = $Computers | Where-Object {$_.Username -ne $null} | Select-Object -Property * -ExcludeProperty UsernameJob, LockedJob
  47.  
  48.         $Computers
  49.  
  50.     }
  51.  
  52. }
Advertisement
Add Comment
Please, Sign In to add comment