Skip to content

v1.1.6

Choose a tag to compare

@santisq santisq released this 29 Sep 21:30
· 15 commits to main since this release
991e839

What's Changed

  • Fixed Cross-Store Reference Resolution Error: Resolved an issue where enumerating PrincipalSearchResult<T> caused errors in multi-domain environments. See issue #16 for details.

  • Improved Caching: Updated the caching mechanism used by the cmdlets to persist across all input objects in a single cmdlet invocation. Previously, the cache was cleared for each input object, causing redundant Active Directory queries. For example, piping the same group multiple times now queries its membership only once, unlike v1.1.5 which queried it each time:

    $group = Get-ADGroup myGroup
    $group, $group, $group | Get-ADTreeGroupMember -Recursive

    With this release, cached group hierarchies are reused for member and memberOf queries. These gains are expected to scale exponentially in larger environments with nested or overlapping groups, as the reused cache cuts down AD queries.

    Performance comparison between versions in a very small environment (reference test):

    PS C:\Users\Administrator\Documents\pwsh\PSADTree> .\tests\perf-1.1.6.ps1
    
    Test                     Average (5 invocations) RelativeSpeed
    ----                     ----------------------- -------------
    PSADTree v1.1.6-pwsh-7   00:00:11.175            1x
    PSADTree v1.1.6-pwsh-5.1 00:00:21.677            1.94x
    PSADTree v1.1.5-pwsh-7   00:00:30.029            2.69x
    PSADTree v1.1.5-pwsh-5.1 00:00:41.761            3.74x
    

Big thanks to @CrookedJ and @poshAJ for their help and patience testing this release! 😅

Full Changelog: v1.1.5...v1.1.6