【问题标题】:Find All Subnets in AD查找 AD 中的所有子网
【发布时间】:2014-03-13 14:49:10
【问题描述】:

我正在尝试检索我们 AD 中的所有子网。 我需要来自 cn、位置、描述和站点属性的值。 当我打开“Active Directory 站点和服务”应用并选择“子网”时,我可以看到这些属性

我发现了一些我认为可以检索这些值的代码

        Forest myForest = Forest.GetCurrentForest();
        ReadOnlySiteCollection mySites = default(ReadOnlySiteCollection);
        ActiveDirectorySubnetCollection mySubnets = default(ActiveDirectorySubnetCollection);
        int iEnumSites = 0;
        int iEnumSubnets = 0;
        mySites = myForest.Sites;
       Dictionary<string, Subnet> Subnets = new Dictionary<string, Subnet>();
        //for each site loop through
        for (iEnumSites = 0;  iEnumSites < mySites.Count -1; iEnumSites++)
        {
         // for each subnet in each site loop through
         mySubnets = mySites[iEnumSites].Subnets;
            for (iEnumSubnets = 0 ; iEnumSubnets < mySubnets.Count -1; iEnumSubnets++)
            {

                Subnet s = new Subnet(mySubnets[iEnumSubnets].Name, mySubnet[iEnumSubnets].Site, mySubnets[iEnumSubnets].Location,"");
                Subnets.Add(s.GetKey(), s);
            }

        }

但是,“描述”属性不存在。每个子网仅公开 3 个属性/属性。 有谁知道我怎样才能访问我们所有子网上的所有属性?

谢谢

厄克

【问题讨论】:

    标签: search active-directory subnet


    【解决方案1】:

    好的,所以当您在 AD 中引用某个对象时,您可以在其上执行 GetDirectoryEntry

    Forest myForest = Forest.GetCurrentForest();
    ReadOnlySiteCollection mySites = default(ReadOnlySiteCollection);
    ActiveDirectorySubnetCollection mySubnets = default(ActiveDirectorySubnetCollection);
    int iEnumSites = 0;
    int iEnumSubnets = 0;
    mySites = myForest.Sites;
    Dictionary<string, Subnet> Subnets = new Dictionary<string, Subnet>();
    //for each site loop through
    for (iEnumSites = 0;  iEnumSites < mySites.Count -1; iEnumSites++)
    {
       // for each subnet in each site loop through
       mySubnets = mySites[iEnumSites].Subnets;
       for (iEnumSubnets = 0 ; iEnumSubnets < mySubnets.Count -1; iEnumSubnets++)
       {
            var ent= mySubnet[iEnumSubnets].GetDirectoryEntry();
    
            // you now have access to all attributes e.g the description attribute
            string.Join(",",ent.Properties["description"].Cast<object>().Select(v => Convert.ToString(v)))
       }
    
    }
    

    以及您想要的任何其他属性。

    【讨论】:

      猜你喜欢
      • 2012-08-26
      • 1970-01-01
      • 2012-05-03
      • 2013-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-01
      • 2015-12-15
      相关资源
      最近更新 更多