Как добавить описание подсети для сайта Active Directory (C#)

Я создаю метод для создания сайтов Active Directory. Он прекрасно работает для создания сайта, добавления подсетей, создания ссылки на сайт и т. Д. Но я не могу найти способ добавить описание подсети.

Когда я создаю подсеть, я делаю:

var contextType = new DirectoryContext(DirectoryContextType.Forest, "forest", "user","Password"]);
var site = System.DirectoryServices.ActiveDirectory.ActiveDirectorySite.FindByName(contextType, SiteCode);

foreach (string sn in Subnet)
{
    try
    {
        var subnet = new ActiveDirectorySubnet(contextType, sn, SiteCode);
        subnet.Location = Location;
        subnet.Save();

    }
    catch (Exception ex)
    {
        ...
    }
}

Он добавляет подсети в списке на сайт, но я не могу найти способ добавить описание.

Класс ActiveDirectorySubnet, по-видимому, не имеет никакого свойства для описания, но он есть в пользовательском интерфейсе "Сайты и службы Active Directory"...

Кто-нибудь знает, где сохранить эту информацию?

2 ответа

Impove это. Просто немного поиграй со струной

Вы можете использовать это:

SetSubnetDescription ("LDAP: //CN=10.197.6.128 \ / 25,CN= подсети,CN= Сайты,CN=Configuration,DC= тест DC = домен");

    public static  bool SetSubnetDescription(string Subnet)
    {
    try
    {
    DirectoryEntry ent = new DirectoryEntry(Subnet);
    Object ads = ent.NativeObject;
    Type type = ads.GetType();
    type.InvokeMember("Description", 
        BindingFlags.SetProperty, 
        null, 
        ads, 
        new object[] {"your new description"});

    // The changes to the object must always be committed or else they 
    // will be lost.
    ent.CommitChanges(); 
    return true;
    }
    catch (Exception ex)
    {
     MessageBox.Show(ex.ToString());
     return false;
    }

Это PowerShell, но его легко перевести на C# (эта ссылка может быть полезна http://support.microsoft.com/kb/315716)

$object = [adsi]'LDAP://CN=192.0.2.0\/24,CN=Subnets,CN=Sites,CN=Configuration,DC=example,DC=com'  
$object.description = "Test-net"  
$object.CommitChanges()

;-п

Другие вопросы по тегам