Aşağıdaki komutu DC üzerinde çalıştırdığınız zaman bir kullanıcının hangi Sunucuda ve kullanıcıların hangi servisleri çalıştırdığını görebilirsiniz.
# LDAP Filtresi: SPN atanmış kullanıcıları bul
$ldapFilter = “(&(objectclass=user)(objectcategory=user)(servicePrincipalName=*))”
$domain = New-Object System.DirectoryServices.DirectoryEntry
$search = New-Object System.DirectoryServices.DirectorySearcher
$search.SearchRoot = $domain
$search.PageSize = 1000
$search.Filter = $ldapFilter
$search.SearchScope = “Subtree”
# Aramayı çalıştır
$results = $search.FindAll()
# Kullanıcıları ve SPN bilgilerini listele
foreach ($result in $results)
{
$userEntry = $result.GetDirectoryEntry()
Write-Host “User Name = ” $userEntry.name
# Sunucu isimlerini saklamak için bir hash seti
$serverList = @{}
foreach ($SPN in $userEntry.servicePrincipalName)
{
Write-Host “SPN = ” $SPN
# Sunucu adını SPN’den ayıklama
if ($SPN -match “^[^/]+/([^:/]+)”)
{
$serverName = $matches[1]
$serverList[$serverName] = $true
}
}
# Sunucu listesini göster
if ($serverList.Count -gt 0) {
Write-Host “Sunucular:”
$serverList.Keys | ForEach-Object { Write-Host ” – $_” }
}
Write-Host “”
}