Ab und an, kann man es ja doch mal ganz nützlich sein, wenn man weiß welcher CAS Server wie viele Client Verbindungen bedient. Könnte bei geplanten Updates oder bei Problemen mit dem Loadbalancer hilfreich werden.
Es gibt zwar schon einige Scripte, aber die funktionieren nicht auf Servern mit deutschem Betriebssystem / deutscher Exchange Installation, da hier die Performance Counter, welche durch das Script abgefragt werden, anders heißen.
Hier also eine Version, die auf Servern in deutscher Sprache und mit Exchange 2010 lauffähig ist:
$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\Aktuelle eindeutige Benutzer" -ComputerName $casservername).CounterSamples[0].CookedValue $RPC = (Get-Counter "\MSExchange RPCClientAccess\Anzahl Benutzer" -ComputerName $casservername).CounterSamples[0].CookedValue $EAS = (Get-Counter "\MSExchange ActiveSync\Anforderungen/Sek." -ComputerName $casservername).CounterSamples[0].CookedValue $EWS = (Get-Counter "\MSExchangeWS\Anforderungen/s" -ComputerName $casservername).CounterSamples[0].CookedValue $POP = (Get-Counter "\MSExchangePOP3(_total)\Aktuelle Verbindungen" -ComputerName $casservername).CounterSamples[0].CookedValue $IMAP = (Get-Counter "\MSExchangeIMAP4(_total)\Aktuelle Verbindungen" -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
Einfach in einer PS1 Datei abspeichern und via Exchange Management Shell ausführen. Die Ausgabe sieht dann in etwa so aus:
Und ja, hier war der Loadbalancer die Ursache.
@Martin genau das habe ich mich auch gefragt!
Kann ich das Script auch für 2013 nutzen oder muss es angepasst werden?
Gibt es das auch für den Exchange 2013/2016?
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.“
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
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
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?
Hi,
lass die Befehle mal einzeln laufen, dann sieht man etwas besser was schief läuft.
Gruß, Frank