Active directory 如何从域名dns名称获取域sid?
我有Active Directory域的dns名称,我想获取此域的域sid。我该怎么做 我已有以下资料:Active directory 如何从域名dns名称获取域sid?,active-directory,directoryservices,Active Directory,Directoryservices,我有Active Directory域的dns名称,我想获取此域的域sid。我该怎么做 我已有以下资料: var domainContext = new DirectoryContext(DirectoryContextType.Domain, domainDnsName); var domain = Domain.GetDomain(domainContext); var dc = domain.DomainControllers.OfType<DomainController&
var domainContext =
new DirectoryContext(DirectoryContextType.Domain, domainDnsName);
var domain = Domain.GetDomain(domainContext);
var dc = domain.DomainControllers.OfType<DomainController>().FirstOrDefault();
var域上下文=
新的DirectoryContext(DirectoryContextType.Domain,domainDnsName);
var domain=domain.GetDomain(domainContext);
var dc=domain.DomainControllers.OfType().FirstOrDefault();
但我有点被困在了该怎么走的地方(或者我走错了路线)。你想要的是这样的:
DirectoryEntry domainEntry = domain.GetDirectoryEntry();
byte[] domainSid = domainEntry.Properties["objectSID"].Value as byte[];
SecurityIdentifier strongDomainSid = new SecurityIdentifier(domainSid, 0);
如果您使用的是本机代码
ADs
对象
IADs domain = ADsGetObject(path);
objectSid
字节数组属性:
Variant objectSid = domain.Get("objectSid");
Pointer p = SafeArrayAccessData(objectSid);
String domainSid = ConvertSidToStringSid(p);
String GetDomainSid(String domainName)
{
Variant objectSid = ADSGetObject(domainName).Get("objectSid");
Pointer p = SafeArrayAccessData(objectSid);
String domainSid = ConvertSidToStringSid(p);
SafeArrayUnaccessData(objectSid);
return domainSid;
}
GetDomainSid("fabrikam.com") ==> "S-1-5-21-1708537768-844245398-2146844275"
这不起作用:
域
没有方法GetDirectoryEntry()
DomainController
可以,但它返回一个DirectoryEntry
,而不返回objectSid
。MSDN说它可以-。如果不是出于任何原因,那你自己也没什么大不了的。只需为域的DN创建一个新的DirectoryEntry(例如,var de=new DirectoryEntry(“LDAP://dc=mydomain,dc=com”)。如果没有其他内容,您应该能够从域对象中删除DN。嗯,忽略了这个。但不确定默认命名上下文是否有objectSID。周末后将对此进行研究。谢谢!现在是这样的-每个域都有一个SIDIt工作。奇怪的是,我忽略了domain.GetDirectoryEntry
方法。谢谢。
String GetDomainSid(String domainName)
{
Variant objectSid = ADSGetObject(domainName).Get("objectSid");
Pointer p = SafeArrayAccessData(objectSid);
String domainSid = ConvertSidToStringSid(p);
SafeArrayUnaccessData(objectSid);
return domainSid;
}
GetDomainSid("fabrikam.com") ==> "S-1-5-21-1708537768-844245398-2146844275"