¿está buscando una forma rápida de crear un informe de Active Directory (AD) con PowerShell? ¡Has venido al lugar correcto! En este artículo, aprenderá a crear informes personalizados de cuentas de usuario en su entorno de AD mediante el cmdlet Get-ADObject.

Imagine que está trabajando en una empresa emergente y descubra que la empresa recibió financiación de Inversores para hacer crecer la empresa mediante la contratación de nuevas personas para varios puestos., Su gerente le da una solicitud para proporcionarle un informe sobre el recuento de personas para cada oficina para asegurarse de que el lugar de trabajo tenga suficiente espacio de oficina.

normalmente, las cuentas de AD se visualizarían manualmente mediante la consola de la aplicación Usuarios y equipos de Active Directory (ADUC) instalada en el equipo de escritorio. Sin embargo, el uso de ADUC toma en promedio un minuto por empleado nuevo para revisar la información de cada cuenta de AD.,

busca rápidamente en Internet algunas opciones y descubre que puede automatizar la recopilación de los datos del informe de anuncios mediante un cmdlet de PowerShell denominado Get-ADObject. En este artículo, aprenderá qué hace el cmdlet Get-AdObject PowerShell y cómo usar correctamente este práctico cmdlet de AD PowerShell para automatizar la creación de informes.

Tabla de Contenidos

Requisitos previos/Requisitos

en Este artículo se hará un tutorial usando Get-ADObject., Si va a seguirlo, asegúrese de tener los siguientes requisitos previos establecidos:

  • Iniciar sesión en un equipo Windows 10 unido al dominio como usuario con derechos para consultar a usuarios de AD
  • en un entorno de Active Directory de Windows Server 2016 o superior. El laboratorio con el que trabajará en este artículo se llama mylab.local.
  • paquete de herramientas de administración remota del servidor (RSAT)

sugerencia rápida: si no tiene RSAT instalado y está en la última versión de Windows 10, puede instalarlo rápidamente utilizando el comando PowerShell Install-WindowsFeature -Name RSAT-AD-PowerShell.,

Get-ADObject: sus opciones y parámetros

el objetivo principal del cmdlet Get-ADObject es conectarse a un controlador de dominio de AD o servidor de Lightweight Directory Service (LDS) y devolver información sobre varios objetos de Active Directory.

para consultar objetos AD, el cmdlet Get-ADObject tiene una serie de parámetros que le permiten conectarse a diferentes controladores de dominio, Buscar en un catálogo global, autenticarse mediante credenciales alternativas y también especificar filtros LDAP y limitar objetos devueltos por scope para una base de búsqueda.,

tenga en cuenta que, de forma predeterminada, el cmdlet Get-ADObject solo devolverá un solo conjunto de 1000 objetos AD. La mejor manera de anular esta configuración es usar el parámetro ResultSetSize que especifica el número máximo de objetos a devolver. Si desea recibir todos los objetos, establezca este parámetro en $Null (valor nulo). Luego puede usar Ctrl + C para detener la consulta y devolver objetos.,

para obtener más información sobre los parámetros de Get-ADObject, consulte la documentación de ayuda de Get-ADObject.

Descripción del proyecto de aprendizaje

Este artículo le enseñará el cmdlet Get-ADObject PowerShell aplicándolo a un escenario del mundo real. Aprenderás acercándote al escenario explicado en los párrafos introductorios.

el escenario

en este artículo, aprenderás a usar Get-ADObject para generar dos informes que enviar a tu manager., El primer informe desglosará todas las cuentas de usuario en cada departamento. El jefe quiere archivos CSV separados para cada departamento. La segunda tarea consultará todas las cuentas de usuario deshabilitadas en una unidad organizativa específica y sus unidades organizativas secundarias.,

al final del artículo, usted será capaz de generar archivos CSV que el siguiente aspecto:

ANUNCIO de las cuentas de usuario por unidad organizativa
cuentas de usuario Deshabilitadas

El ANUNCIO Ambiente

Active Directory unidad organizativa (OU) de la estructura que vamos a estar trabajando con en este artículo tiene el siguiente aspecto., Usted puede ver que tenemos un departamento padre OU con tres hijos ou llamado Contabilidad, Marketing y TI. Dentro de cada una de esas unidades organizativas infantiles hay dos unidades organizativas de nietos llamadas usuarios y computadoras.

  • Department (OU)
    – Accounting (ou)
    – Users
    – Computers
    – Marketing (ou anidada)
    – Users
    – Computers
    – IT (ou anidada)
    – Users
    – Computers

atajo: puede construir estos ou con el New-ADOrganizationalUnit cmdlet de PowerShell. Para un script para hacer un trabajo rápido de este echa un vistazo a la Create-ou-Structure.ps1 script.,

también trabajará con docenas de cuentas de usuario de anuncios diferentes ubicadas dentro de cada una de las unidades organizativas de usuarios, como se muestra a continuación. Estos nombres fueron elegidos al azar.

  • Accounting (accountant_user1-5)
  • Marketing (market_user_user1-5)
  • IT (it_user1-5)

Acceso directo: si desea crear rápidamente estas cuentas de usuario dentro de las unidades organizativas antes mencionadas, descargue y ejecute el script rellenar-AD_Accounts.ps1.,

creación de informes de Active Directory utilizando Get-ADObject

suficiente introducción e información de fondo sobre Get-ADObject. ¡finalmente vayamos a aprender cómo funciona Este cmdlet de PowerShell en el mundo real!

en este primer ejemplo, tienes la tarea de proporcionar a tu administrador un archivo CSV con un informe para todas las cuentas de usuario que existen en las unidades organizativas de los departamentos de Contabilidad, Marketing y TI.,

Descripción del parámetro Filter

el único parámetro necesario del cmdlet Get-ADObject PowerShell es Filter. Este es un parámetro es una forma de limitar el número de objetos devueltos. Dado que es un parámetro obligatorio, debe definirlo incluso si desea devolver todos los objetos utilizando un carácter comodín (*). Esto le dice a Get-ADObject que devuelva todos los objetos.

el ejemplo más simple de usar el parámetro Filter es devolver todos los objetos en un dominio AD completo como el siguiente.,

PS51> Get-ADObject -Filter *

verá el parámetro Filter utilizado tanto para devolver todos los objetos como para limitar el alcance de los objetos devueltos a lo largo de este artículo.

para obtener más información sobre la sintaxis del parámetro Filter, ejecute Get-Help about_ActiveDirectory_Filter en la consola de PowerShell.

limitar el alcance de búsqueda usando el parámetro SearchBase

el ejemplo con el que está trabajando es un caso de uso perfecto para Get-ADObject‘s SearchBase parámetro., El parámetro SearchBase le permite limitar la consulta de búsqueda y, por lo tanto, los objetos devueltos a través de Get-ADObject limitando el alcance a una unidad organizativa en particular.

al limitar el alcance, se reduce el tiempo que tarda Get-ADObject en ejecutarse excluyendo otras unidades organizativas en AD y solo dirigiéndose a la unidad organizativa específica que es relevante para recuperar los datos que necesita.

en este ejemplo, extraiga todos los usuarios de AD en la unidad organizativa del Departamento principal y todas las unidades organizativas secundarias como se muestra a continuación. Esto devolverá todos los usuarios en la unidad organizativa del departamento y en todas las unidades organizativas secundarias.,

PS51> Get-ADObject -Filter * -SearchBase 'OU=Department,DC=mylab,DC=local'

aprovechando el parámetro de filtro

a partir de Ahora, puede consultar todos los objetos de usuario en la unidad organizativa del departamento y todas las unidades organizativas secundarias. Pero eso no es necesario en este momento. En su lugar, vamos a sacar a todos los usuarios de contabilidad primero. Una forma de hacerlo es usar el parámetro Filter en lugar de simplemente proporcionar un valor comodín.

para limitar los resultados, utilice el valor Filterde Department -eq 'Accounting'., Esto limita los resultados solo a aquellos objetos de la unidad organizativa del departamento que tienen un atributo de Departamento de AD establecido en Contabilidad.

Puede ver a continuación que está almacenando todos los objetos en la variable $accounting_users. Esto se utilizará más adelante.

PS51> $accounting_users = Get-ADObject -SearchBase 'OU=Department,DC=mylab,DC=local' -Filter {Department -eq "Accounting"}

outputing AD Objects to a CSV File

ahora que $accounting_users contiene todos los objetos aplicables, puede canalizar solo el Name y Department propiedades para cada objeto del cmdlet Export-Csv., Este cmdlet crea un nuevo archivo CSV y almacena cada objeto de AD como una fila.

ahora debería tener un archivo CSV llamado report_accounting_users.csv en su escritorio como la captura de pantalla a continuación.

report_accounting_users.csv

recopilar los otros objetos de usuario

ahora que conoce los conceptos básicos de cómo usar Get-ADObject para encontrar usuarios de AD, extienda eso para encontrar los objetos de usuario para los otros departamentos. Usarás el mismo concepto general que antes.,

primero, busque todos los usuarios de anuncios en la oficina de San Francisco.

report_sanfrancisco_office_users.csv

a continuación, busque todos los usuarios que trabajan en la oficina de Florida. Este ejemplo es un poco diferente porque está utilizando las propiedades calculadas del cmdlet Select-Object. Esto le permite transformar el nombre de la propiedad del objeto de simplemente stque viene de Get-ADObjecta un más descriptivo State.,

report_florida_state_users.csv

finalmente, recopile todos los usuarios de TI. Esta vez, en lugar de usar el atributo Department AD, use el parámetro Filter para buscar todos los objetos con un nombre que comience con él.

Nota: en Lugar de usar objectClass -eq 'user' en el ejemplo anterior, usted podría tener también utiliza la etiqueta Get-AdUser cmdlet.,

report_select_users.csv

Encontrar Cuentas Deshabilitadas con el Filtro LDAP

En el ejemplo anterior, se utiliza la etiqueta Filter parámetro para limitar los objetos devueltos por Get-ADObject. Otra forma de hacerlo es usar el parámetro LDAPFilter. Este parámetro realiza la misma tarea, pero le permite especificar un filtro a través de una cadena de búsqueda de consulta LDAP., El parámetro LDAPFilter se considera una opción más avanzada para buscar en Active Directory.

Ahora vamos a crear un informe para encontrar a todos los usuarios discapacitados de su organización utilizando los parámetros LDAPFilter y SearchBase para dirigirse a una unidad organizativa específica.

la configuración useraccountcontrol:1.2.840.113556.1.4.803:=2 es un atributo AD especificado para todos los usuarios deshabilitados en la base de datos Ntds de Active Directory. Es una forma de que AD marque las cuentas que no están activas (el inicio de sesión está deshabilitado)., Aquí hay más consultas LDAP de ejemplo que podrían resultarle útiles.

el siguiente comando ejecuta el parámetro de filtro LDAP que se usa para mostrar solo a los usuarios deshabilitados y, a continuación, crea un informe utilizando el cmdlet Export-CSV como ha hecho anteriormente.

report_disabled_users.csv

el resultado final

¡ahora debería tener cinco archivos CSV en su escritorio listos para su administrador!,

resumen

en este artículo, aprendió a buscar en Active Directory mediante el cmdlet Get-ADObject PowerShell.

¿Qué sigue?

para llevar lo que has aprendido más lejos, lleva este proceso de generación de informes de anuncios al siguiente nivel exportando los datos a una base de datos tal vez. Una vez en una base de datos, se puede acceder a los datos del informe de anuncios mediante un sitio web personalizado o una aplicación como Microsoft SharePoint. Esta es solo una idea. ¡Hay incontables otros!,

la capacidad de buscar en Active Directory es un conjunto de habilidades fundamentales que se necesita en muchas organizaciones y que, en última instancia, le ahorrará a usted y a su equipo horas de tiempo.

más información

  • muchos Scripts de Active Directory: ¡ven y consíguelo!
  • documentación de Microsoft