# This script will count the connected Desktops within a VMware View environment. # this a first working release v1.0 # 1/29/2013 # Define Critical & Warning levels to alert back to Nagios. $Critical = 10 $Warning = 8 ############################################################################################### # Set variables to 0 $Count = 0 $returnStateOK = 0 $returnStateWarning = 1 $returnStateCritical = 2 # Add VMware View PowerShell Snapin. add-PSSnapin "VMware.View.Broker" # Collect Desktop Information ForEach ($Result in Get-RemoteSession -pool_id DS7 | Select state) { if ($Result.state -eq "CONNECTED") { $Count = $Count + 1 } elseif ($Result.state -eq "Error") { $Count = $Count + 1 } elseif ($Result.state -eq "Agent unreachable") { $Count = $Count + 1 } } ### PerformanceData Output $NagiosPerfData = "|Active sessions=" + $Count + ";8;10" $NagiosPerfData = $NagiosPerfData -replace " ", "" $Users = ((Get-RemoteSession -pool_id DS7)|Where-Object{$_.state -eq "CONNECTED"}) | select duraTion, username #starTime $Users = $Users -replace "", "" ############################################################# if ($Count -ge $Critical) { #CRITICAL Write-Host "Activesessions="$Count" "$Users" "$NagiosPerfData exit $returnStateCritical } elseif ($Count -ge $Warning) { #WARNING Write-Host "Activesessions="$Count" "$Users" "$NagiosPerfData exit $NagiosStatus = 1 } else { #OK Write-Host "Activesessions="$Count" "$Users" "$NagiosPerfData } exit $NagiosStatus