PowerShell - AD Objekte Suchen und Anzeigen

function global:Display-ADObjects
    {
    [CmdletBinding()]
    param(
        [parameter(ValueFromPipeline)]$pipeobjects,
        [parameter(Mandatory=$false, ParameterSetName="adobjects",Position=0)]$adobjects
        
        )
        # Write-Host "DEBUG: $pipeobjects"
        if ($pipeobjects -eq $null -and $adobjects -eq $null)
            {
            Write-Error "No value given"
            return
            }
        if (($pipeobjects) -and ($adobjects))
            {
            Write-Error "Got value from pipe and as parameter. Please pick one of them."
            return
            }
        if ($pipeobjects)
            {
            # Write-Host "DEBUG: Using pipe."
            $adobjects = $pipeobjects
            }

            foreach ($adobject in $adobjects)
                {
                Write-Host "########## OBJECT - ObjectClass:" $adobject.ObjectClass
                $adobject | select $propertylist | Format-List
                Write-Host "Memberships:"
                Write-Host ""
                foreach ($membership in $adobject.memberof)
                    {
                    ($membership | Get-ADGroup).name
                    }
                Write-Host ""
                }
    }

function global:Find-ADName
    {
    param(
        [parameter(Mandatory=$true, ParameterSetName="searchstring",Position=0)]$searchstring
        )
    $foundobjects = Get-ADObject -LDAPFilter "(|(name=$searchstring)(samaccountname=$searchstring))" -properties *
    if ($foundobjects)
        {
        Display-ADObjects $foundobjects
        }
    else
        {
        Write-Host "Nothing was found."
        }
    }

function global:Find-ADLDAP
    {
    param(
        [parameter(Mandatory=$true, ParameterSetName="searchstring",Position=0)]$searchstring
        )
    $foundobjects = Get-ADObject -LDAPFilter "$searchstring" -properties *
    if ($foundobjects)
        {
        Display-ADObjects $foundobjects
        }
    else
        {
        Write-Host "Nothing was found."
        }
    }