Pregunte a ActiveDirectory si una máquina es miembro de un grupo
-
06-07-2019 - |
Pregunta
Esto debería ser realmente fácil, pero por alguna razón no parece serlo. Quiero preguntarle a AD si la máquina actual es miembro de un grupo en particular. La membresía directa está bien.
El grupo solo contiene 8 PC y es extremadamente improbable que crezca más de 30.
¡ejemplos de código C # apreciados!
Solución
Aquí hay un método de ejemplo que utiliza System.DirectoryServices
espacio de nombres:
public bool BelongsToGroup(string computerName, string groupName, string domain)
{
PrincipalContext domainContext = new PrincipalContext(ContextType.Domain, domain);
ComputerPrincipal computer = ComputerPrincipal.FindByIdentity(domainContext, computerName);
foreach (Principal result in computer.GetGroups())
{
if (result.Name == groupName)
{
return true;
}
}
return false;
}
Entonces podría llamarlo así:
string computerName = Environment.MachineName;
string groupName = "Group Name";
string domainName = "Domain Name";
bool test = BelongsToGroup(computerName, groupName, domainName);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow