Public/Get-ADManagerDN.ps1

function Get-ADManagerDN {
    [CmdletBinding(SupportsShouldProcess)]
    Param (
    [Parameter(Mandatory,Position=0)]
    [string]$LineManager,
    [Parameter(Mandatory,Position=1)]
    [object]$Template,
    [Parameter(Position=2)]
    [string]$Domain=$ADGlobalCatalog,
    [Parameter(Position=3)]
    [object]$Creds
    )

    $GetLineManArgs = @{
    Filter        = {Name -eq $LineManager}
    Server        = $Domain
    Properties    = @('Manager','CanonicalName')
    }

    if ($Creds) {
    $ManagerADObject = Get-ADUser @GetLineManArgs -Credential $Creds
    } else {
    $ManagerADObject = Get-ADUser @GetlineManArgs
    }

    if ($ManagerADObject) {
    $ManagerDN = $ManagerADObject.DistinguishedName
    } else {
    $ManagerDN = $Template.Manager
    }

    if ($ManagerDN -is [array]) {
    $ManagerDN = $ManagerDN[0]
    }

    return $ManagerDN
}