Te sugerimos que pruebes esta solución en un entorno controlado antes de pasarlo a producción, saludos.
Solución:
Solución 1:
Aquí hay otra forma desde el símbolo del sistema, aunque no estoy seguro de cuán automatizable ya que tendría que analizar la salida:
Si el grupo es “grupo de seguridad global”:
net group /domain
Si está buscando “grupo de seguridad local de dominio”:
net localgroup /domain
Solución 2:
Aquí hay una versión del comando ds que encontré más útil, especialmente si tiene una estructura de unidad organizativa compleja y no necesariamente conoce el nombre distinguido completo del grupo.
dsquery group -samid "Group_SAM_Account_Name" | dsget group -members -expand
o si conoce el CN del grupo, normalmente el mismo que el SAM ID, entre comillas en caso de que haya espacios en el nombre:
dsquery group -name "Group Account Name" | dsget group -members -expand
Como se indica en los comentarios, de forma predeterminada, los comandos ds* (dsquery, dsget, dsadd, dsrm) solo están disponibles en un controlador de dominio. Sin embargo, puede instalar el paquete de herramientas de administración desde las herramientas de soporte en los medios de instalación de Windows Server o descargarlo desde el sitio de descargas de Microsoft.
También puede realizar estas consultas mediante PowerShell. PowerShell ya está disponible como función instalable para Server 2008, 2008 R2 y Windows 7, pero deberá descargar WinRM Framework para instalarlo en XP o Vista.
Para obtener acceso a cualquier cmdlet específico de AD en PowerShell, deberá ADEMÁS debe realizar al menos una de las siguientes instalaciones:
- Para los clientes Win 7 y 2008 R2, puede instalar las herramientas de administración del servidor remoto. El RSAT también requiere que ha instalado la función de servicios web de Active Directory en su Servidor 2008 R2 Controladores de dominio o el servicio de puerta de enlace de administración de Active Directory para cualquier Servidor 2003/2008 DC.
- Para cualquier cliente XP o superior, descargue e instale Quest ActiveRoles Management Shell para Active Directory. Las herramientas de Quest no requieren ningún cambio adicional en sus DC.
Solución 3:
tratar
dsget group "CN=GroupName,DC=domain,DC=name,DC=com" -members
Solución 4:
Para una solución de PowerShell que no requiere el complemento Quest AD, intente lo siguiente
Import-Module ActiveDirectory
Get-ADGroupMember "Domain Admins" -recursive | Select-Object name
Esto también enumerará los grupos anidados. Si no desea hacerlo, elimine el -recursivo cambiar.
Solución 5:
Una manera muy fácil que funciona en servidores y clientes:
NET GROUP "YOURGROUPNAME" /DOMAIN | find /I /C "%USERNAME%"
Devuelve 1 si el usuario está en el grupo YOURGROUPNAME, de lo contrario devolverá 0
Luego puede usar el valor% ERRORLEVEL% (0 si el usuario está en el grupo, 1 si no) como
IF %ERRORLEVEL%==0 NET USE %LOGONSERVER%YOURGROUPSHARE