miércoles, 29 de julio de 2020

Obtener nombres propios dados los 'user logon names' o samAccountName en Active Directory



Cómo obtener el nombre de una persona teniendo su nombre de usuario de Active Directory.



Si tenemos el nombre de usuario de varias personas y queremos saber rápidamente cual es el nombre completo de cada una de ellas, podemos usar un pequeño script de PowerShell.

A continuación, muestro un par de scripts que nos permiten recuperar el nombre completo dado un nombre de usuario sobre un directorio activo corriendo en Windows Server 2016 o superior.

Imaginemos que tenemos una lista de usuarios llamada users.txt con nombres de usuario, por ejemplo, jgarcia, jtorres, mvarela, etc. uno en cada línea. Para extraer sus nombres completos de Active Directory podemos usar el siguiente script:

$List = Get-Content ".\users.txt"
ForEach ($User in $List) {
Get-ADUser -Filter "SamAccountName -eq '$User'" | Select-Object samaccountname, name
} 

El output del script será:

PS C:\Temp> C:\Temp\script.ps1 samaccountname name -------------- ---- jgarcia Juan Garcia jtorres Javier Torres mvarela Marta Varela agutierrez Álvaro Gutiérrez mperez Martín Pérez

De esta forma veremos el output en la terminal, pero ¿qué ocurre si queremos exportar el resultado a un archivo, como por ejemplo, un csv?

Con el siguiente script podemos escribir los nombres propios y los user logon name en un csv:

$aResults = @()
$List = Get-Content ".\users.txt"
ForEach($Item in $List){
$Item = $Item.Trim()
$User = Get-ADUser -Filter "SamAccountName -eq '$Item'" | Select-Object samaccountname, name
$hItemDetails = New-Object -TypeName psobject -Property @{
FullName = $Item
UserName = $User.SamAccountName
}
#Add data to array
$aResults += $hItemDetails
}
$aResults | Export-CSV ".\Results.csv"

Podemos modificar el script para escribir solo los nombres propios en el archivo, si así lo necesitamos, quitando el parámetro SamAccountName del selector Select-Object.


Fuentes:

https://docs.microsoft.com/en-us/powershell/module/addsadministration/get-aduser?view=win10-ps

0 comentarios:

Publicar un comentario