2011-08-11 23 views
2

私はActive DirectoryドメインのDNS名を持っており、このドメインのドメインsidを取得したいと考えています。これどうやってするの?ドメインDNS名からドメインsidを取得するには?

var domainContext = 
    new DirectoryContext(DirectoryContextType.Domain, domainDnsName); 
var domain = Domain.GetDomain(domainContext); 
var dc = domain.DomainControllers.OfType<DomainController>().FirstOrDefault(); 

しかし、私は(または多分私は間違っルート以下のよ)ここから行くためにどこ少しこだわっている:

は、私はすでに次があります。あなたが欲しいもの

答えて

5

は次のようなものです:動作しません

DirectoryEntry domainEntry = domain.GetDirectoryEntry(); 
byte[] domainSid = domainEntry.Properties["objectSID"].Value as byte[]; 
SecurityIdentifier strongDomainSid = new SecurityIdentifier(domainSid, 0); 
+0

: 'Domain'はメソッドを持っていない' GetDirectoryEntry() '。 'DomainController'は行いますが、' objectSid'なしで 'DirectoryEntry'を返します。 –

+0

MSDNはこう言っています - http://msdn.microsoft.com/en-us/library/system.directoryservices.activedirectory.domain。 aspx。何らかの理由ででなければ、それは自明ではありません。ドメインのDNに新しいDirectoryEntryを作成するだけです(例:var de = new DirectoryEntry( "LDAP:// dc = mydomain、dc = com")。 –

+0

Hm、それを見落としてしまった...デフォルトのネーミングコンテキストにobjectSIDがあるかどうかは分かりませんが、週末後にそれを調べてみてくださいありがとうsofar! –

関連する問題