¿Hay una forma de línea de comando para enumerar todos los usuarios en un grupo particular de Active Directory?
Puedo ver quién está en el grupo yendo a Administrar computadora -> Usuario local / Grupos -> Grupos y haciendo doble clic en el grupo.
Solo necesito una forma de línea de comandos para recuperar los datos, para poder realizar otras tareas automatizadas.
windows
active-directory
Peter Mortensen
fuente
fuente
dsget group "CN=GroupName,DC=domain,DC=name,DC=com" -members -expand
obtiene los miembros en los grupos anidados, aunque puede que no ayude con los duplicados, y le proporciona la cadena de consulta AD completa para el miembro, no solo su CN.Aquí hay otra forma desde el símbolo del sistema, aunque no estoy seguro de qué tan automatizable, ya que tendría que analizar la salida:
Si el grupo es "grupo de seguridad global":
Si busca "grupo de seguridad local de dominio":
fuente
net user /domain
). ¡Gracias!Aquí hay una versión del comando ds que encontré más útil, especialmente si tiene una estructura OU compleja y no necesariamente conoce el nombre completo del grupo.
o si conoce el CN del grupo, generalmente el mismo que el ID de SAM, citado en caso de que haya espacios en el nombre:
Como se indicó en los comentarios, de manera 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 del sitio de descargas de Microsoft.
También puede realizar estas consultas con PowerShell. PowerShell ya está disponible como una característica instalable para Server 2008, 2008 R2 y Windows 7, pero deberá descargar WinRM Framework para instalarlo en XP o Vista.
Para obtener acceso a los cmdlets específicos de AD en PowerShell, TAMBIÉN deberá realizar al menos una de las siguientes instalaciones:
fuente
Para una solución de PowerShell que no requiere el complemento Quest AD, intente lo siguiente
Esto también enumerará los grupos anidados. Si no desea hacerlo, quite el modificador recursivo .
fuente
Una forma muy fácil que funciona en servidores y clientes:
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
fuente
whoami /groups | find /I /C "YOURGROUPNAME"
Al usar el Shell de administración de ActiveRoles gratuito de PowerShell y Quest Software para Active Directory, puede usar:
(Get-QADGroup "GroupName"). Miembros
http://www.quest.com/powershell/activeroles-server.aspx
fuente
Las respuestas aquí usan
dsget
ydsquery
solo funcionarán en versiones de servidor de Windows, ya que esos comandos no se envían en otras versiones de Windows (por ejemplo, Windows 7). En máquinas sin esos comandos, puede obtener la información que desea con el comando AdFind .Aquí hay una consulta de ejemplo para obtener la membresía de grupo:
fuente
¿Cómo enumerar grupos y usuarios locales?
Use el siguiente script de PowerShell para enumerar los grupos locales y los miembros de esos grupos.
Copie el texto de arriba en el bloc de notas y guárdelo como
filename.ps1
. Luego ejecuta el archivo. Debería mostrar los Grupos y Usuarios en cada grupo, o simplemente puede ejecutar esto desde powershell.fuente
cmdlet ForEach-Object at command pipeline position 1. Supply values for the following parameters:
y luego pide información,Process[0]
Para mostrar miembros de la
UserGroup1
prueba:fuente
cmd
, por alguna razón.dsget failed:'Target object for this command' is missing.