Get-Ryan

[PowerCLI] Get-VISession

Dec 15th, 2015
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Function Get-ViSession {
  2. <#
  3. .SYNOPSIS
  4.  Lists vCenter Sessions.
  5.  
  6. .DESCRIPTION
  7.  Lists all connected vCenter Sessions.
  8.  
  9. .EXAMPLE
  10.  PS C:\> Get-VISession
  11.  
  12. .EXAMPLE
  13.  PS C:\> Get-VISession | Where { $_.IdleMinutes -gt 5 }
  14.  
  15. .AUTHOR
  16.  Alan Renouf
  17.  
  18. .SOURCE
  19.  https://blogs.vmware.com/PowerCLI/2011/09/list-and-disconnect-vcenter-sessions.html
  20.  
  21. .OBTAINED
  22.  12/15/2015
  23.  
  24. .EDITED
  25.  Ryan Simeone - 12/15/2015
  26. #>
  27.     If(!$DefaultViserver){
  28.         Try{
  29.             Connect-VIServer -Server <server> -ErrorAction Stop | Out-Null
  30.         }
  31.         Catch{
  32.             Write-Host "Unable to connect to <server>"
  33.             Break
  34.         }
  35.     }
  36.  
  37.     $SessionMgr = Get-View $DefaultViserver.ExtensionData.Client.ServiceContent.SessionManager
  38.     $AllSessions = @()
  39.  
  40.     ForEach($obj in $SessionMgr.SessionList){
  41.  
  42.         $properties = @{Key = $obj.Key
  43.                         UserName = $obj.UserName
  44.                         FullName = $obj.FullName
  45.                         LoginTime = ($obj.LoginTime).ToLocalTime()
  46.                         LastActiveTime = ($obj.LastActiveTime).ToLocalTime()
  47.                         UserAgent = $obj.UserAgent}
  48.  
  49.         $Session = New-Object -TypeName PSObject -Property $properties
  50.  
  51.         If ($obj.Key -eq $SessionMgr.CurrentSession.Key) {
  52.             $Session | Add-Member -MemberType NoteProperty -Name Status -Value “Current Session”
  53.         }
  54.        
  55.         Else {
  56.             $Session | Add-Member -MemberType NoteProperty -Name Status -Value “Idle”
  57.         }
  58.        
  59.         $Session | Add-Member -MemberType NoteProperty -Name IdleMinutes -Value ([Math]::Round(((Get-Date)($obj.LastActiveTime).ToLocalTime()).TotalMinutes))
  60.         $AllSessions += $Session
  61.     }
  62.  
  63.     $AllSessions
  64. }
Advertisement
Add Comment
Please, Sign In to add comment