public/Split-LDAP.ps1

function Split-LDAP {
    <#
    .SYNOPSIS
        Split LDAP path string
    .DESCRIPTION
        Split LDAP path string like Split-Path, to return the root path of
        and LDAP object DistinguishedName, or the Domain suffix portion.
    .PARAMETER Path
        The LDAP object DistinguishedName
    .PARAMETER Delimiter
        The character to apply the split upon. The defaul is a comma (,)
    .PARAMETER Part
        * Parent = return the root path portion
        * Domain = return the domain suffix portion
    .EXAMPLE
        $p1 = "CN=JSmith,CN=Users,DC=east,DC=contoso,DC=local"
        Split-LDAP $p1
        Returns "CN-Users,DC=east,DC=contoso,DC=local"
    .EXAMPLE
        $p1 = "CN=JSmith,CN=Users,DC=east,DC=contoso,DC=local"
        Split-LDAP $p1 -Part Domain
        Returns "DC=east,DC=contoso,DC=local"
    .EXAMPLE
        "CN=JSmith,CN=Users,DC=east,DC=contoso,DC=local" | Split-LDAP
        Applies the split using pipeline input to return:
        "CN=Users,DC=east,DC=contoso,DC=local"
    .LINK
        https://github.com/Skatterbrainz/ds-utils/blob/master/docs/Split-LDAP.md
    #>

    [CmdletBinding()]
    param (
        [parameter(Mandatory=$True,ValueFromPipeline=$True)][string]$Path,
        [parameter()][string]$Delimiter = ",",
        [parameter()][string][ValidateSet('Parent','Domain')]$Part = 'Parent'
    )
    $items = $Path -split $Delimiter
    if ($Part -eq 'Parent') {
        $items[1..100] -join $Delimiter
    } else {
        $($items | Where-Object {$_ -like "DC*"}) -join $Delimiter
    }
}