function get-AdUserSpns {
Param(
[string]$samAccountName = $env:USERNAME
)
$search = New-Object DirectoryServices.DirectorySearcher([ADSI]"")
$search.filter = "(&(samAccountType=805306368)(samAccountName=$($samAccountName)))"
$results = $search.Findall()
#list results
foreach($result in $results)
{
$userEntry = $result.GetDirectoryEntry()
Write-host "Object Name = " $userEntry.name -backgroundcolor "yellow" -foregroundcolor "black"
Write-host "samAccountName = " $userEntry.samAccountName
Write-host "DN = " $userEntry.distinguishedName
Write-host "Object Cat. = " $userEntry.objectCategory
if($userEntry.servicePrincipalName.Count -gt 0){
Write-host -BackgroundColor DarkGreen -ForegroundColor Yellow "Found servicePrincipalNames:"
$i=1
foreach($SPN in $userEntry.servicePrincipalName)
{
Write-host "SPN($($i.ToString('D3'))) = $($SPN)"
$i+=1
}
} else {
Write-Host -BackgroundColor DarkRed -ForegroundColor Yellow "No SPNs for a user"
}
Write-host ""
}
}
Comments