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:
El output del script será:
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:
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
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