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?
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.