- Context
During this COVID period, your Direct Access servers is a good nice-to-have solution for remoting.
However, there’s a limit on the maximum number of connexions it can handle.
You should keep an eye on this limit and get an idea of the current workload.
You may as well report these figures to your boss.
- Issue
The RemoteAccess module provides a cmdlet to get statistics 🙂
Get-RemoteAccessConnectionStatisticsSummary Measure-Command { Get-RemoteAccessConnectionStatisticsSummary }
As you can see, it’s damn slow. It took about 31 seconds to get the result 😦
- Solution
You can actually use the WMI repository directly to get a result more quickly
$HT = @{ Namespace = 'root/Microsoft/Windows/RemoteAccess/Server' ClassName = 'PS_RemoteAccessAccountingStatisticsSummary' MethodName = 'GetByActiveStatistics' ErrorAction = 'Stop' } (Invoke-CimMethod @HT).cmdletoutput
As you can see it takes a few milliseconds and not seconds to get the result 😎
If you wonder how I found this, here are the steps I followed:
# Identify the module and what type of command gcm Get-RemoteAccessConnectionStatisticsSummary # Check the content of the function gc Function:\Get-RemoteAccessConnectionStatisticsSummary # Once you have identified the relevant Namespace # You can list classes and their methods gwmi -ns root/Microsoft/Windows/RemoteAccess/Server -List | ogv
# Once you've the Class, you can query the methods: Get-CimClass -Namespace ` root/Microsoft/Windows/RemoteAccess/Server ` -ClassName PS_RemoteAccessAccountingStatisticsSummary | Select -expand CimClassMethods
nice work