Exchange CAS-Array - Stimmt die Auslastung?!
In einer Exchange Load-Balancing Umgebung ist man als Administrator immer mal wieder an der realen Auslastung der Server interessiert. Wie man über ein kleines PowerShell-Skript genau dies herausfindet, soll im Folgenden behandelt werden.
Das Szenario
Wir haben ein Exchange 2010 CAS-Array, das die CAS-Funktionalität unter dem Namen mail.test.local bereitstellt. Das Array besteht aus den Servern castri01 und castri02. Uns interessieren die aktuellen Verbindungen, die jeder CAS-Server aktuell verwaltet.
Die Grundlagen
In der PowerShell gibt es den Befehl Get-Counter, der diverse Werte vom Windows-Performance Counter abrufen kann. Im Folgenden verwenden wir die Werte "\MSExchange OWA\Current Unique Users" und "\MSExchange RpcClientAccess\User Count"
Mit dem zusätzlichen Parameter -ComputerName CAS-SERVER kann man sich diese Werte für beliebige Computer ausgeben lassen.
Das Skript
Über folgende Zeilen sorgen wir dafür, dass man dem Skript die Servernamen als String-Array übergeben kann:
param( [String[]]$servers )
Dieses Array verwenden wir nun um uns die entsprechenden Werte auszulesen:
$Servers | %{ $RPC = Get-Counter "MSExchange RpcClientAccess\User Count" -ComputerName $_ $OWA = Get-Counter "MSExchange OWA\Current Unique Users" -ComputerName $_ New-Object PSObject -Property @{ Server = $ "RPC Client Access" = $RPC.CounterSamples[0].CookedValue "Outlook Web App" = $OWA.CounterSamples[0].CookedValue } }
Ruft man das Skript nun über .\activeUsers.ps1 auf und übergibt die beiden CAS-Server bekommt man folgende Ausgabe:
Vorsicht bei anderen Systemsprachen
Leider sind die verwendeten Counter nicht in allen Sprachen identisch. Auf einem Deutschen System muss man z.B. anstatt User Count den deutschen Begriff Anzahl Benutzer verwenden. Das Selbe gilt für Current Unique Users. Dies wird zu Aktuelle eindeutige Benutzer.
- ASP.NET 1
- Active Directory 41
- Administration Tools 1
- Allgemein 60
- Backup 4
- ChatBots 5
- Configuration Manager 3
- DNS 1
- Data Protection Manager 1
- Deployment 24
- Endpoint Protection 1
- Exchange Server 62
- Gruppenrichtlinien 4
- Hyper-V 18
- Intune 1
- Konferenz 1
- Künstliche Intelligenz 7
- Linux 3
- Microsoft Office 11
- Microsoft Teams 1
- Office 365 11
- Office Web App Server 1
- Powershell 21
- Remote Desktop Server 1
- Remote Server 1
- SQL Server 8
- Sharepoint Server 12
- Sicherheit 1
- System Center 10
- Training 1
- Verschlüsselung 2
- Virtual Machine Manager 1
- Visual Studio 1
- WSUS 7
- Windows 10 12
- Windows 8 9
- Windows Azure 4
- Windows Client 1
- Windows Server 24
- Windows Server 2012 7
- Windows Server 2012R2 15
- Windows Server 2016 7
- Windows Server 2019 2
- Windows Server 2022 1
- Zertifikate 4