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."
}
}