在Windows域上查询/更改SPN有没有运气? Google上的大部分点击都与SQL有关:我自己找不到有关如何执行此操作的任何信息。最重要的事情是查询SPN配置并检查重复项。
根据Arnout,我做了以下代码:
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");
}
}
}
答案 0 :(得分:2)
看起来此信息存储在servicePrincipalName
AD属性中。有关详细信息,请参阅this page,特别是“使用LDIFDE搜索”部分。
答案 1 :(得分:0)
您可以在支持工具中使用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