コード例 #1
0
ファイル: ADDomainService.cs プロジェクト: takng/Readinizer
        private static void GetTreeDomains(AD.Domain startDomain, List <AD.Domain> treeDomainsWithChildren, List <string> unavailableDomains)
        {
            var domainTrusts             = startDomain.GetAllTrustRelationships();
            List <AD.Domain> treeDomains = new List <AD.Domain>();

            foreach (TrustRelationshipInformation domainTrust in domainTrusts)
            {
                if (domainTrust.TrustType.Equals(TrustType.TreeRoot))
                {
                    try
                    {
                        var treeDomain =
                            AD.Domain.GetDomain(new DirectoryContext(DirectoryContextType.Domain, domainTrust.TargetName));
                        treeDomains.Add(treeDomain);
                    }
                    catch
                    {
                        unavailableDomains.Add(domainTrust.TargetName);
                    }
                }
            }

            foreach (var treeDomain in treeDomains)
            {
                AddAllChildDomains(treeDomain, treeDomainsWithChildren, unavailableDomains);
            }
        }