¿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ámetroResultSetSize
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:
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
, ejecuteGet-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 Filter
de 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.
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.
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 st
que viene de Get-ADObject
a un más descriptivo State
.,
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 etiquetaGet-AdUser
cmdlet.,
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.
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