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