QAD Powershell Cmdlet Performance

Hi,

Has anyone seen performance issues when using the Quest cmdlets?  For example, comparing the execution of get-aduser and get-qaduser yielded the following results when scoped to a specific OU containing about 4,500 users:

 

Native:  Get-ADUser

Measure-command -Expression {Get-ADUser -SearchBase 'OU DN Path' -SearchScope Subtree -Filter *} | Select TotalSeconds

TotalSeconds : 15.3429789

 

QAD Cmdlet to AD:

Measure-command -Expression {Get-QADUser -SearchRoot 'OU DN Path' -SearchScope Subtree -SizeLimit 0} | Select TotalSeconds

TotalSeconds : 145.1344522

 

QAD Cmdlet to ARS Provider (Proxy specified):

Measure-command -Expression {Get-QADUser -SearchRoot 'OU DN Path' -SearchScope Subtree -SizeLimit 0 -Proxy} | Select TotalSeconds

TotalSeconds : 199.606666

 

We've also seen extremely poor performance in workflows within ARS that contained search operations as well as running QAD cmdlets that perform an update operation.

Thanks!

Parents
  • Hi, Nap.

    Beyond Aidar's suggestion, I seem to recall using the DontUseDefaultIncludedProperties switch parameter to reduce the properties that the cmdlet has to load/convert (use the IncludedProperties flag to be more specific about the attributes you need). You could also try things like DontConvertValuesToFriendlyRepresentation and UseGlobalCatalog.

    The performance challenges are why I've personally been using the ADSI interface directly instead of the QAD cmdlets. It's much faster, but a little more cumbersome to code with when you're first getting started.

Reply
  • Hi, Nap.

    Beyond Aidar's suggestion, I seem to recall using the DontUseDefaultIncludedProperties switch parameter to reduce the properties that the cmdlet has to load/convert (use the IncludedProperties flag to be more specific about the attributes you need). You could also try things like DontConvertValuesToFriendlyRepresentation and UseGlobalCatalog.

    The performance challenges are why I've personally been using the ADSI interface directly instead of the QAD cmdlets. It's much faster, but a little more cumbersome to code with when you're first getting started.

Children
No Data