
There are several ways to list specific Active Directory objects. I will show you two ways : using the instance of the System.DirectoryServices.DirectoryEntry class or using the powershell cmdlet Get-ADObject
$ldapQuery = "(&(objectCategory=user)(objectClass=user))" $de = new-object system.directoryservices.directoryentry $ads = new-object system.directoryservices.directorysearcher -argumentlist $de,$ldapQuery $ads.Pagesize = 100000 $complist = $ads.findall() # count user object $complist.Count # list user objects $complist
$list = get-adobject -ldapfilter "(&(objectCategory=user)(objectClass=user))" # count user object $list.Count # list user objects $list
The interesting point is the performance between these methods. To check that we can use the powershell cmdlet Measure-Command . The result is :
PS > Measure-Command {
$ldapQuery = "(&(objectCategory=user)(objectClass=user))"
$de = new-object system.directoryservices.directoryentry
$ads = new-object system.directoryservices.directorysearcher -argumentlist $de,$ldapQuery
$ads.Pagesize = 100000
$complist = $ads.findall()
$complist.Count
}
Days : 0
Hours : 0
Minutes : 0
Seconds : 23
Milliseconds : 418
Ticks : 234188882
TotalDays : 0.000271051946759259
TotalHours : 0.00650524672222222
TotalMinutes : 0.390314803333333
TotalSeconds : 23.4188882
TotalMilliseconds : 23418.8882
PS > Measure-Command {
$list = get-adobject -ldapfilter "(&(objectCategory=user)(objectClass=user))"
$list.Count
}
Days : 0
Hours : 0
Minutes : 0
Seconds : 3
Milliseconds : 513
Ticks : 35130302
TotalDays : 4.06600717592593E-05
TotalHours : 0.000975841722222222
TotalMinutes : 0.0585505033333333
TotalSeconds : 3.5130302
TotalMilliseconds : 3513.0302
You will find more information on the powershell cmdlet Measure-Command here:
Measures the time it takes to run script blocks and cmdlets.
Syntax
PowerShell
Measure-Command
[-Expression]
[-InputObject
[
Description
The Measure-Command cmdlet runs a script block or cmdlet internally, times the execution of the operation, and returns the execution time.
My Powershell script categories
- Active Directory
- Cluster
- Database
- Exchange
- Files and folders
- Hardware
- Network
- Operating System
- PKI
- SCCM
- Service and process
- Tips
- VMWare
