Public/Get-NSPADOrganizationalUnitChild.ps1

function Get-NSPADOrganizationalUnitChild {
    <#
    .SYNOPSIS
        Lists the OUs directly under -SearchBase (one level). Blank -SearchBase is the domain root.
        Returns SearchBase (resolved) and Children.
    .EXAMPLE
        (Get-NSPADOrganizationalUnitChild).Children | Select-Object Name, DistinguishedName
    #>

    [CmdletBinding()]
    param(
        [string]$SearchBase,
        [string]$Server,
        [System.Management.Automation.PSCredential]$Credential
    )
    Assert-NSPADCommand Get-ADOrganizationalUnit
    $adParams = @{ ErrorAction = 'Stop' }
    if ($Server) { $adParams['Server'] = $Server }
    if ($Credential) { $adParams['Credential'] = $Credential }

    $base = if ($SearchBase) { $SearchBase } else { (Get-ADDomain @adParams).DistinguishedName }
    $children = @(Get-ADOrganizationalUnit -SearchBase $base -SearchScope OneLevel -Filter * @adParams | Sort-Object -Property Name)
    return [pscustomobject]@{ SearchBase = $base; Children = $children }
}