1

Comment puis-je lister disponible ADSI (Active Directory Service Interfaces) service providers en C#?Comment lister les fournisseurs de services ADSI (Active Directory Service Interfaces) disponibles?

+1

Je comprends votre question maintenant, je pensais que vous vouliez dire quels serveurs fournissent les services, mais vous voulez dire quels services sont fournis. Je ne sais pas la réponse alors j'ai peur, vous pourriez vouloir demander sur ServerFault.com si quelqu'un sait comment les lister en utilisant un vbscript ou quelque chose (car il semble que quelque chose que les administrateurs système pourraient être intéressés) et si vous pouvez obtenir une réponse, il ne devrait pas être trop difficile de le traduire en C#. –

+0

+1 Merci pour votre suggestion. –

Répondre

1

J'ai trouvé que:

foreach (object obj in (IEnumerable)Marshal.BindToMoniker("ADs:")) 
{ 
    obj.GetType().InvokeMember("Name", BindingFlags.DeclaredOnly | 
     BindingFlags.Public | BindingFlags.NonPublic | 
     BindingFlags.Instance | 
     BindingFlags.GetProperty, null, obj, null).Dump(); 
} 
0

Microsoft a un KB-233023 sur ce sujet: How To Find All ADSI Providers on a System

une autre variante:

public static IEnumerable<string> GetAdsiProviders() 
    { 
     var providers = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\ADs\Providers"); 
     if (null == providers) yield break; 

     foreach (var name in providers.GetSubKeyNames()) 
     { 
      yield return name + ":"; 
     } 
    }