Exchange 2010: Show client connections of CAS servers

From time to time, it can be quite useful to know which CAS server is serving how many client connections. This could be helpful for planned updates or problems with the load balancer.

There are already some scripts, but they do not work on servers with a German operating system / German Exchange installation, as the performance counters that are queried by the script are called differently here.

So here is a version that runs on servers in German and with Exchange 2010:

$casservers = Get-ClientAccessServer
$stats = @()
foreach ($casserver in $casservers)
{
$casservername = $casserver.name
$OWA = $NULL
$RPC = $NULL
$EAS = $NULL
$EWS = $NULL
$POP = $NULL
$IMAP = $NULL
$OWA = (Get-Counter "\MSExchange OWA\Current Unique User" -ComputerName $casservername).CounterSamples[0].CookedValue
$RPC = (Get-Counter "\MSExchange RPCClientAccess\Number of users" -ComputerName $casservername).CounterSamples[0].CookedValue
$EAS = (Get-Counter "\MSExchange ActiveSync\Requests/Sec." -ComputerName $casservername).CounterSamples[0].CookedValue
$EWS = (Get-Counter "\MSExchangeWS\Requests/s" -ComputerName $casservername).CounterSamples[0].CookedValue
$POP = (Get-Counter "\MSExchangePOP3(_total)\CurrentConnections" -ComputerName $casservername).CounterSamples[0].CookedValue
$IMAP = (Get-Counter "\MSExchangeIMAP4(_total)\CurrentConnections" -ComputerName $casservername).CounterSamples[0].CookedValue
$OWA = "{0:N0}" -f $OWA
$RPC = "{0:N0}" -f $RPC
$EAS = "{0:N0}" -f $EAS
$EWS = "{0:N0}" -f $EWS
$POP = "{0:N0}" -f $POP
$IMAP = "{0:N0}" -f $IMAP
$stats += new-object PSObject -property @{CASServer="$casservername";OWA="$OWA";RPC="$RPC";EAS="$EAS";EWS="$EWS";POP3="$POP3";IMAP4="$IMAP"}
}
$stats | ft

Simply save it in a PS1 file and execute it via the Exchange Management Shell. The output will look something like this:

Connections

And yes, the load balancer was the cause here.

7 thoughts on “Exchange 2010: Client Verbindungen der CAS Server anzeigen”

  1. noch mal eine Korrektur, meines Beitrages vom 14.Juni 2016…..

    Scheinbar ist der Counter von der installierten Build Nummer abhängig.
    Bei einem anderen Kunden, welche die Version 14.2 (Build 247.5) installiert haben, musste der Punkt wieder hinzugefügt werden.

    $EAS = (Get-Counter „\MSExchange ActiveSync\Anforderungen/Sek.“

    Reply
  2. Tag zusammen,

    ich habe nochmal die Englischen Counter raus gesucht ;)

    $OWA = (Get-Counter „\MSExchange OWA\Current Unique Users“ -ComputerName $casservername).CounterSamples[0].CookedValue

    $RPC = (Get-Counter „\MSExchange RpcClientAccess\User Count“ -ComputerName $casservername).CounterSamples[0].CookedValue

    $EAS = (Get-Counter „\MSExchange ActiveSync\Requests/sec“ -ComputerName $casservername).CounterSamples[0].CookedValue

    $EWS = (Get-Counter „\MSExchangeWS\Requests/sec“ -ComputerName $casservername).CounterSamples[0].CookedValue

    $POP = (Get-Counter „\MSExchangePOP3(_total)\Connections Current“ -ComputerName $casservername).CounterSamples[0].CookedValue

    $IMAP = (Get-Counter „\MSExchangeIMAP4(_total)\Current Connections“ -ComputerName $casservername).CounterSamples[0].CookedValue

    Reply
  3. Hi Frank,

    bei unserem Exchange Server 2010 kam die Fehlermeldung:

    Get-Counter : Der angegebene Leistungsindikator wurde nicht gefunden.
    $EAS = (Get-Counter <<<< "\MSExchange ActiveSync\Anforderungen/Sek."

    habe den Punkt am Ende von "MS…\Anforderungen/Sek." <— entfernt, jetzt funktioniert das Script ohne Fehlermeldung.

    Die Zeile sieht nun also folgendermaßen aus:
    $EAS = (Get-Counter "\MSExchange ActiveSync\Anforderungen/Sek" -ComputerName $casservername).CounterSamples[0].CookedValue

    Grüße
    George

    Reply
  4. Hi Frank,

    mein Server bringt folgende Fehlermeldung….

    OWA=“$OWA“RPC=“$RPC“EAS=“$EAS“EWS=“$EWS“POP3=“$POP3″IMAP4=“$IMAP“ : Unerwartetes Token „OWA=“$OWA“RPC=“$RPC“EAS=“$EAS“E
    WS=“$EWS“POP3=“$POP3″IMAP4=“$IMAP““ im Ausdruck oder in der Anweisung.
    + CategoryInfo : ParserError: (OWA=“$OWA“RPC=“…3″IMAP4=“$IMAP“:String) [], ParseException
    + FullyQualifiedErrorId : UnexpectedToken

    Idee?

    Reply

Leave a Comment