Запрос / изменение имен SPN в домене Windows без SetSPN - PullRequest
3 голосов
/ 06 января 2009

Кому-нибудь повезло с запросом / изменением имен SPN в домене Windows? Большинство хитов в Google связаны с SQL: я не могу найти никакой информации о том, как сделать это самостоятельно. Наиболее важными являются запросы к конфигурации SPN и проверка на наличие дубликатов.

По словам Арно, я сделал следующий код:

static void Main(string[] args) {
    ValidateSPN("K2Server/jonathand-vpc:5252");
}

static void ValidateSPN(string spn) {
    const string queryFormat = "(ServicePrincipalName={0})";
    using (Domain localDomain = Domain.GetCurrentDomain()) {
        using (DirectorySearcher search = new DirectorySearcher(localDomain.GetDirectoryEntry())) {
            search.Filter = string.Format(queryFormat, spn);
            search.SearchScope = SearchScope.Subtree;
            SearchResultCollection collection = search.FindAll();
            if (collection.Count > 1)
                throw new Exception("Duplicate SPNs found.");
            else if (collection.Count == 0)
                throw new Exception("No such SPN");
        }
    }
}

Ответы [ 2 ]

2 голосов
/ 06 января 2009

Похоже, эта информация хранится в атрибуте servicePrincipalName AD. См. на этой странице для получения дополнительной информации, в частности, в разделе «Поиск с использованием LDIFDE».

0 голосов
/ 03 марта 2009

Вы можете использовать Search.VBS в инструментах поддержки для поиска дублированных имен SPN:

"C:\Program Files\Support Tools\search.vbs" "LDAP://DC=Your,dc=Domain,dc=Here" /C:"(serviceprincipalname=K2Server/jonathand-vpc:5252)" /S:Subtree /P:DistinguishedName
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...