C# 如何列出可用的ADSI(Active Directory服务接口)服务提供商?

C# 如何列出可用的ADSI(Active Directory服务接口)服务提供商?,c#,.net,active-directory,directoryservices,directoryentry,C#,.net,Active Directory,Directoryservices,Directoryentry,如何在C#中列出可用的列表?我发现: foreach (object obj in (IEnumerable)Marshal.BindToMoniker("ADs:")) { obj.GetType().InvokeMember("Name", BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance |

如何在C#中列出可用的列表?

我发现:

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();
}   
我发现:

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();
}   

Microsoft对此主题有KB-233023:

另一种变体:

    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 + ":";
        }
    }
公共静态IEnumerable GetAdsiProviders()
{
var providers=Registry.LocalMachine.OpenSubKey(@“Software\Microsoft\ADs\providers”);
if(null==提供者)产生中断;
foreach(providers.GetSubKeyNames()中的变量名)
{
收益返回名称+“:”;
}
}

微软在这个主题上有一个KB-233023:

另一种变体:

    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 + ":";
        }
    }
公共静态IEnumerable GetAdsiProviders()
{
var providers=Registry.LocalMachine.OpenSubKey(@“Software\Microsoft\ADs\providers”);
if(null==提供者)产生中断;
foreach(providers.GetSubKeyNames()中的变量名)
{
收益返回名称+“:”;
}
}

我现在明白你的问题了,我以为你指的是哪些服务器提供服务,但你指的是提供哪些服务。我不知道答案,那么我恐怕,您可能想在ServerFault.com上询问是否有人知道如何使用vbscript或其他东西列出它们(因为这听起来像是系统管理员可能感兴趣的东西)如果你能得到回复,将其翻译成C#+1应该不会太难。谢谢你的提示。我现在明白你的问题了,我以为你是指哪些服务器提供服务,但你是指提供哪些服务。我不知道答案,那么我恐怕,您可能想在ServerFault.com上询问是否有人知道如何使用vbscript或其他东西列出它们(因为这听起来像是系统管理员可能感兴趣的东西),如果您能得到响应,将其翻译为C#+1应该不会太难。谢谢您的提示。