Question

Je veux être en mesure de déterminer si un contrôleur de domaine particulier est en lecture seule. Je sais que je peux faire des trucs comme ça pour obtenir un inscriptible DC:

using( Domain d = Domain.GetCurrentDomain() )
{ 
    DomainController dc = d.FindDomainController(
        "mysitename", LocatorOptions.WriteableRequired);
}

Mais étant donné un objet DomainController est-il un moyen de déterminer si ce DC est inscriptible?

La raison pour laquelle je demande est que je veux essayer de sélectionner un contrôleur de domaine préféré qui est 1. inscriptible 2. Dans mon site et 3. un catalogue global. Il ne semble pas être une bonne façon de trouver un serveur avec tous ces attributs.

Était-ce utile?

La solution

Une différence entre les contrôleurs en lecture seule et inscriptible domaine sont que tous les contrôleurs de domaine en lecture seule ont l'attribut primaryGroupID réglé sur 521 (ce qui est le RID pour le groupe intégré « en lecture seule contrôleurs de domaine » dans Active Directory) . Inscriptible contrôleurs de domaine ont primaryGroupID réglé sur 516 (le groupe « contrôleurs de domaine »).

Le groupe primaire pour une lecture seule contrôleur de domaine ne peut pas être facilement changé (Active Directory ne le permettra pas) donc vous devriez être sûr de supposer que tous RODC. S ont cet attribut réglé sur 521

Autres conseils

Il est pas élégant, mais ...

Si vous avez l'objet DomainController, vous pouvez faire:

bool isWritable = true;
try
{
    using (Domain d = Domain.GetCurrentDomain())
        var dc = d.FindDomainController(theDomainController.Name, LocatorOptions.WriteableRequired);
}
catch(ActiveDirectoryObjectNotFoundException)
{
    isWritable = false;
}

Cela devrait déterminer si un contrôleur de domaine spécifique est inscriptible.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top