Skip to main content

360 ICT, gegarandeerd betrouwbaar

Citrix Farm load using Powershell

As I wrote in an earlier blog, there is an easy way to get the load in a RDS farm using powershell. The same thing can be done in a citrix environment.

It’s possible to do this using powershell, If you use workergroups to deploy applications, the following script can be used:

#add citrix cmdletsAsnp Citrix.*
#load all workergroups
$workergroups = Get-XAWorkerGroup

#Get the tmp folder location
$X= (Get-Item env:tmp).value
foreach ($wg in $workerGroups)
{
$currentWG = $wg.WorkerGroupName

#Write the current workergroup name to a temporary file:

add-content $x\users.log ” ”
add-content $x\users.log $currentwg

# in our case, we’re not interested in the all_servers worker group.
if ($currentwg -ne “All_Servers”)
{
foreach ($ServerName in $wg.Servernames)
{

# get all users using the quser command
$users = invoke-expression -Command “quser /server:$ServerName”
$number = $users | Select-String -Pattern “Active” |measure |select count
$t= $number.count

#get the memory values
$mem_value = Get-WmiObject -Class Win32_OperatingSystem -Namespace root/cimv2 -ComputerName $ServerName
$tm = ($mem_value.TotalVisibleMemorySize / 1048576)
$memTOT = ‘{0:N2}’-f $tm
$tm = ($mem_value.FreePhysicalMemory / 1048576)
$memFree = ‘{0:N2}’-f $tm
add-content $x\users.log “$ServerName `t users: `t $t `t Memory: $memTOT GB `t Free: $memFree”
}
}
}
notepad $x\users.log
ping localhost
del $x\users.log

I know, quser isn’t a powershell cmdlet, but it’s a command I know and it’s very fast. Anything that gets the job done quicker is alright in my book.

Request Information

Do you want to know more about Citrix Farm load using Powershell? Easily request more information.

More Blog Items