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 “”
}