Pergunta

Eu gostaria de recuperar todos os grupos locais da minha máquina (Vista em um domínio W2K3).

Se eu correr:

using (DirectoryEntry de = new DirectoryEntry("WinNT://" + Environment.MachineName + ",group", null, null, AuthenticationTypes.Secure))
{

}

Ele lança um "erro desconhecido" 0x80005000, que aparentemente significa "caminho inválido"

No entanto, a consulta para computadores (mudança, grupo para computador) não levanta um erro, mas parece ser ignorado (ele retorna todos os objetos? Eu não examinei completamente o resultado). , o usuário também levanta o erro.

Então, minha pergunta é: estou no caminho certo? Existe uma maneira de aplicar um filtro para não recuperar tudo? Se sim, onde posso encontrar a sintaxe correta?

Foi útil?

Solução

Eu acredito que você precisa obter a máquina - os grupos são filho disso.

Tentar

DirectoryEntry machine = new DirectoryEntry("WinNT://" + Environment.MachineName + ",Computer");
foreach (DirectoryEntry child in machine.Children)
{
    if (child.SchemaClassName == "Group")
    {
        Debug.WriteLine(child.Name);
    }
}

Sinta -se à vontade para apimentar o LINQ, mas isso deve dar a ideia base.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top