PowerShell + S.DS.Protocols Versus AdFind…
As a reaction to : My First Venture into S.DS.P and Powershell and the reaction from Joe : PowerShell + S.DS.Protocols Versus AdFind… , I decided to run the same tests also at my Production AD.
Leaving a comment on Brandon blog failed, hence I will post the results here :
Some extra test info :
On my production AD ( not a real fast one ), the PoSH version seems even faster as the Adfind version :
--------------------------------------------------------------
AdFind V01.37.00cpp Joe Richards (joe@joeware.net) June 2007
Using server: myTestDC:389
Directory: Windows Server 2003
56468 Objects returned
---------------------------------------------------------------
First test :
.\adfind -b "DC=europe,DC=lan" -c -f "(objectclass=use... 00:01:03.0953089
.\Test-DSProtocals.ps1 00:00:40.2770273
PoSH version much faster, but expected could be caching .
and yes in a series of test the results get very close,
for this series I did start new shells started ADfind first then PoSH and other way around.
.\Test-DSProtocals.ps1 00:00:40.5060502
.\adfind -b "DC=europe,DC=lan" -c -f "(objectclass=user)" 00:00:40.1550151
.\Test-DSProtocals.ps1 00:00:40.0990095
.\adfind -b "DC=europe,DC=lan" -c -f "(objectclass=user)" 00:00:40.0890085
.\Test-DSProtocals.ps1 00:00:40.0230019
.\adfind -b "DC=europe,DC=lan" -c -f "(objectclass=user)" 00:00:39.9479944
.\Test-DSProtocals.ps1 00:00:39.8939890
.\adfind -b "DC=europe,DC=lan" -c -f "(objectclass=user)" 00:00:39.9139910
.\Test-DSProtocals.ps1 00:00:39.9799976
.\adfind -b "DC=europe,DC=lan" -c -f "(objectclass=user)" 00:00:40.1840180
.\Test-DSProtocals.ps1 00:00:39.9769973
(Other series)
.\Test-DSProtocals.ps1 00:00:40.5700566
.\adfind -b "DC=europe,DC=lan" -c -f "(objectclass=user)" 00:00:40.0300026
.\Test-DSProtocals.ps1 00:00:40.0720068
.\adfind -b "DC=europe,DC=lan" -c -f "(objectclass=user)" 00:00:40.0380034
.\Test-DSProtocals.ps1 00:00:40.0870083
.\adfind -b "DC=europe,DC=lan" -c -f "(objectclass=user)" 00:00:40.1310127
.\Test-DSProtocals.ps1 00:00:39.8959892
.\adfind -b "DC=europe,DC=lan" -c -f "(objectclass=user)" 00:00:40.0230019
.\Test-DSProtocals.ps1 00:00:39.9599956
.\adfind -b "DC=europe,DC=lan" -c -f "(objectclass=user)" 00:00:39.7709767
.\Test-DSProtocals.ps1 00:00:39.9949991
you can see here my results are very close with a small win for the PoSH version.
Also In the network I do not see much difference only AD find seems less regular. (see red circles)
PS my test method was using the history ( close to Joe's method only no need to change prompt.)
h | select com*,{[datetime]$_.EndExecutionTime - [datetime]$_.StartExecutionTime}
Looks to me that in a "live" less performing AD environment (and or network connection ) the performance difference might be much smaller as in a (well connected and scaled ) VM test environment (what might explain joe's results. )
So think a point might be, Measure and take conclusions with care ;-)
Greetings /\/\o\/\/