Con el siguiente cmd-let podemos ver todas las propiedades de un usuario (Xavi) de Active Directory:
Get-AdUser Xavi -Properties *|more
Ejemplo de ejecución sobre un DC con Windows Server 2012:
Siguiente página:
Siguiente página:
Con todas las propiedades podemos realizar filtros.
Algunos ejemplos:
1) Teléfono de la oficina del usuario Xavi.
Get-AdUser Xavi -Properties OfficePhone
2) Teléfono de la oficina y código postal de todos los usuarios.
Get-AdUser -Filter * -Properties OfficePhone, PostalCode
Si vais a utilizar tuberías (pipes) entre distintos cmd-lets, os recomiendo una lectura del siguiente post:
Windows: Powershell propiedad calculada (SYSADMIT.com)
Windows: Powershell propiedad calculada (SYSADMIT.com)
Hola Buenas Tarde,
ResponderEliminarEste Script me lista los usuario y sus propiedades, pero necesito tambien por cada usuario se muestre el grupo al que perteneces
Con lo que expongo a continuación es lo que quiero obtener;
SamAccountName DisplayName Status (enable) LastLoginDate WhenCreated MemberOf
Pperez Pedro I. Perez E. True 24/10/2016 15/01/2016 Domain Admin
Pperez Pedro I. Perez E. True 24/10/2016 15/01/2016 Administrators
Pperez Pedro I. Perez E. True 24/10/2016 15/01/2016 Remote Control
)
JCSuarez Julio Cesar Suarez False 2/12/2013 15/01/2010 Domain Admin
JCSuarez Julio Cesar Suarez False 2/12/2013 15/01/2010 Administrators
JCSuarez Julio Cesar Suarez False 2/12/2013 15/01/2010 Remote Control
Con este resultado sabre quien esta activo quien no y a que grupo pertenece, que es lo mas importante
Agradezco de antemano de tu gran apoyo
Saludos
Hola,
ResponderEliminarSi quieres saber si un usuario pertenece a un grupo de seguridad o no, aquí tienes otro método para controlarlo:
http://www.sysadmit.com/2013/11/script-para-realizar-mapa-de-red-segun.html
Un saludo,
Xavi.
muchas gracias estimado , justo lo que estaba buscando.
ResponderEliminarsaludos desde bolivia
Gracias, me alegro que te haya servido.
Eliminar¡Un saludo!
Xavi.
Hola, buen material, tengo mi siguiente consulta... como puedo agregar por powershell datos a un atributo en userparameters? en esto necesito agregar numero identificador a cada usuario.
ResponderEliminarCon el cmd-let: Set-Aduser, puedes cambiar valores en los atributos.
EliminarEjemplo:
Set-Aduser xavi.sysadmit –replace @{atributo1="Hola"}
Puedes usar los parámetros:
–add
-replace
–remove
¡Un saludo!
Xavi.
hola y si como ver quien creo la cuenta del usuario, que cuenta creo dicha cuenta.
ResponderEliminarHola Edgardo,
EliminarSi quieres saber el usuario que ha creado o eliminado alguna cuenta tienes que habilitar primero la auditoría de cuentas.
Aquí tienes un enlace donde explica paso a paso como hacerlo y ver el detalle de quien ha creado o eliminado una cuenta:
https://blogs.technet.microsoft.com/abizerh/2010/05/27/tracing-down-user-and-computer-account-deletion-in-active-directory/
¡Un saludo!
Xavi.
Hola me podrian colaborar, necesito comando que me traiga el Usuario pero solo con el SID y si es posible que me lo exporte a un CSV
ResponderEliminarHola Kevin,
EliminarSi ejecutas:
Get-AdUser -Filter * |select-object Name, SID
Conseguirás un listado de todos los nombres y SIDs de Active Directory.
Si quieres exportar la salida a CSV, bastará con ejecutar:
Get-AdUser -Filter * |select-object Name, SID| Export-Csv c:\SYSADMIT\User-SID.txt
Substituye la ruta y fichero de Export-Csv por la que quieras.
Un saludo,
Xavi.
Clear-Host #Extrae archivos de usuario segun sus propiedades
ResponderEliminar$Error.Clear()
#Ruta del fichero CSV a generar
#$CSV = "D:\Grupos\Users_AD_CO.csv"
If (Test-Path $CSV)
{
Remove-Item $CSV
}
Import-Module Activedirectory
$Users = (Get-ADUser -Filter * -properties * | Select-Object SamAccountName,DisplayName,EmployeeID,LastLogonDate,WhenCreated,whenChanged,enabled,CanonicalName,DistinguishedName )
$Table = @()
$Record = @{
"SamAccountName" = ""
"DisplayName" = ""
"EmployeeID" = ""
"LastLogonDate" = ""
"whenChanged" = ""
"WhenCreated" = ""
"Status" = ""
"CanonicalName" = ""
"DistinguishedName"
}
Foreach ($User in $Users)
{
$Record."DisplayName" = $User.DisplayName
$Record."SamAccountNAme" = $User.SamAccountName
$Record."EmployeeID" = $User.EmployeeID
$Record."LastLogonDate" = $User.LastLogonDate
$Record."WhenCreated" = $User.WhenCreated
$Record."WhenChanged" = $User.WhenChanged
$Record."Status" = $User.Enabled
$Record."CanonicalName" = $User.CanonicalName
$Record."DistinguishedName" = $User.DistinguishedName
$objRecord = New-Object PSObject -property $Record
$Table += $objrecord
} $Table | Export-Csv $CSV -append
{
Write-Error $Error[0].Exception.Message
}
¡Muchas gracias por tu aporte!
EliminarUn saludo,
Xavi.
Excelente aporte, justo lo que buscaba Codigo Postal y Teléfono oficina!
ResponderEliminarGracias por tu aporte!
Muchas gracias. Me alegro que te haya resultado útil.
EliminarUn saludo,
Xavi.
buenas,
ResponderEliminarUn script que extraiga el atributo lognohours y lo guarde en un txt y después recuperarlo, es decir, después de haber cambiado este atributo, volver a poner el que hemos guardado en el primer paso...
No sé si me explico.
Pero gracias de antemano.
Hola, aqui solo tienes que ver cual es la propiedad que necesitas, la filtras y listo, saludos
ResponderEliminarClear-Host #Extrae archivos de usuario segun sus propiedades
$Error.Clear()
#Ruta del fichero CSV a generar
#$CSV = "D:\Grupos\Users_AD_CO.csv"
If (Test-Path $CSV)
{
Remove-Item $CSV
}
Import-Module Activedirectory
$Users = (Get-ADUser -Filter * -properties * | Select-Object SamAccountName,DisplayName,EmployeeID,LastLogonDate,WhenCreated,whenChanged,enabled,CanonicalName,DistinguishedName )
$Table = @()
$Record = @{
"SamAccountName" = ""
"DisplayName" = ""
"EmployeeID" = ""
"LastLogonDate" = ""
"whenChanged" = ""
"WhenCreated" = ""
"Status" = ""
"CanonicalName" = ""
"DistinguishedName"
}
Foreach ($User in $Users)
{
$Record."DisplayName" = $User.DisplayName
$Record."SamAccountNAme" = $User.SamAccountName
$Record."EmployeeID" = $User.EmployeeID
$Record."LastLogonDate" = $User.LastLogonDate
$Record."WhenCreated" = $User.WhenCreated
$Record."WhenChanged" = $User.WhenChanged
$Record."Status" = $User.Enabled
$Record."CanonicalName" = $User.CanonicalName
$Record."DistinguishedName" = $User.DistinguishedName
$objRecord = New-Object PSObject -property $Record
$Table += $objrecord
} $Table | Export-Csv $CSV -append
{
Write-Error $Error[0].Exception.Message
}
¡Muchas gracias por el aporte!
EliminarUn saludo,
Xavi.
Hola haber si me puedes ayudar con lo siguente:
ResponderEliminarNecesito mostrar los usuarios del AD que tengan un mail configurado i ordenarlos por el DN.
Merci!
Hola Mohamed,
EliminarAquí lo tienes:
Get-ADUser -Properties mail -Filter {mail -like '*'}|Select-Object Name, DistinguishedName,Mail|Sort-Object DistinguishedName
Un saludo,
Xavi.
Hola me gustaria saber como hacer este mismo listado, pero en vez que sea para un solo usuario, que sea para todos los usuarios del AD. Tambien si es posible en vez de que sean usuarios tambien que sean de todos los equipos en el dominio.
ResponderEliminarMuy buen aporte. Un abrazo
Hola,
EliminarEn el segundo ejemplo del post, tienes cómo hacerlo para todos los usuarios del dominio.
Sobre tu segunda pregunta: El equivalente de Get-ADUser pero para equipos es: Get-Adcomputer
Un saludo,
Xavi.
hola buenas... como podría sacar el correo de varios usuarios sin tener que ir uno a uno.. es decir importando un fichero con los nombres de los usuarios y que trabaje dándome sus correos, se haría con un bucle for?, muchas gracias
ResponderEliminarHola,
EliminarSí, no hay problema.
Con este cmd-let, obtendrás para cada usuario de Active Directory su dirección de correo:
Get-ADUser -Filter * -Properties DisplayName, EmailAddress | select DisplayName, EmailAddress
Por otro lado, si tienes Exchange Server, puedes utilizar la PowerShell de Exchange junto con el cmd-let indicado aquí:
https://www.sysadmit.com/2018/04/exchange-exportar-direcciones-smtp.html
Un saludo,
Xavi.
Buenas tardes,
ResponderEliminarTengo una consulta.
Como puedo hacer para que me muestre todo los usuarios que hay en una "OU" con todas sus propiedades. Escribí solo el comando de GET-ADUSER -properties *|more, y me arrojo todos los usuario que hay en el AD.
Mi Consulta es como hago para solo ver los usuarios de una OU y sus propiedades completas. y luego exportarlas.
Gracias de Antemano.
Hola Luis,
EliminarAquí tienes un ejemplo de cómo hacerlo:
Get-ADUser -SearchBase "OU=USUARIOS,DC=SYSADMIT,DC=local" -Filter * -Properties *|more
En el ejemplo, el dominio es SYSADMIT.local y la OU donde están situados los usuarios es: USUARIOS.
Un saludo,
Xavi.
Muchas gracias por haber respondido.
EliminarY luego de haber hecho esto, como podría exportarlos?, es para completar unos campos y luego importarlos al AD.
Gracias.
Hola Luis,
EliminarPuedes substituir el comando |more por: |export-csv c:\Ruta\fichero.csv
y exportarás a un fichero CSV.
Un saludo,
Xavi.
Una ultima consulta, después de haber modificado y completado los campos en el archivo .csv, como sería para importar el archivo al AD?
EliminarMuchas Gracias
Hola Luis,
EliminarAquí tienes un ejemplo:
https://social.technet.microsoft.com/wiki/contents/articles/24541.powershell-bulk-create-ad-users-from-csv-file.aspx
Un saludo,
Xavi.
Muchas Gracias por las respuesta, me ayudaron en muchas cosas.
EliminarSaludos.
Gracias a ti.
EliminarMe alegro que las respuestas te hayan ayudado.
Un saludo,
Xavi.
Hola, quisiera saber con que script puedo exportar a un archivo todos los usuarios del directorio activo con la fecha de creación y estado de la cuenta
ResponderEliminarHola,
EliminarCon el cmd-let: Get-ADUser -Filter *, puedes obtener una lista de los usuarios que quieras.
Ejemplo:
- Teléfono de la oficina y código postal de todos los usuarios.
Get-AdUser -Filter * -Properties OfficePhone, PostalCode
Subtituye OfficePhone, PostalCode por las propiedades que quieras.
Un saludo,
Xavi.
hola,
ResponderEliminarquisiera saber como puedo hacer para comparar dos usuarios y que me muestre la lista de grupos diferentes a los que pertenece
Estimado.
ResponderEliminarNecesito una manera de exportar los usuarios con x atributos de un grupo de seguridad especifico
Por favor, cómo podría hacer un script a partir de una consulta en un archivo, para que me borre los registros que encontró en esa consulta?
ResponderEliminarEse Script debe ejecutarse mensualmente, cómo puede renovar el archivo de esa consulta?
Hola Evelin,
EliminarCreo que con una redirección a un fichero de texto y una tarea programada lo resolverías.
Por ejemplo:
Get-AdUser Xavi -Properties * > C:\SYSADMIT\Salida-fichero.txt
A cada ejecución, se sobrescribe el fichero de texto.
Para programar su ejecución, puedes hacerlo con una tarea programada.
Un saludo,
Xavi.
Buenos días
ResponderEliminarnecesitaría un listado de todos mis usuarios de AD con su último lastlogon indicando en que máquina se produjo.....
muchísimas gracias por anticipado
Hola,
EliminarEn el siguiente post verás cómo hacerlo:
https://superuser.com/questions/1252464/get-last-logon-time-computer-and-username-together-with-powershell
Un saludo,
Xavi.
Hola buenas tardes, me gustaría obtener un ejemplo de Script que ingresara un equipo a la OU pero si existe enviara el msj y de la opcion de eliminarlo, para evitar duplicidad.
ResponderEliminarhola me gustaria conocer las propiedades para exportar datos de usuario por OU
ResponderEliminarHola Amigo, buenas, queria saber si se puede extraer información de un grupo de usuarios que tengo en una planilla con ciertos criterios.
ResponderEliminarMuy buenas noches.
ResponderEliminarAmigo quisiera saber como puedo editar el atributo proxyAddresses en el cual encontramos SMTP:xxxxxx@dominio.com
Hola Diego,
EliminarAquí tienes algunos ejemplos:
Añadir ProxyAdresses:
Set-ADUser Usuario -add @{ProxyAddresses="smtp:Hola@dominio.com"}
Listar ProxyAdresses:
get-aduser Usuario -Properties ProxyAddresses | select Name, ProxyAddresses
Eliminar ProxyAddresses:
Set-ADUser Usuario -remove @{ProxyAddresses="smtp:Hola@dominio.com"}
Un saludo,
Xavi.
Hola!
ResponderEliminartengo una consulta, como puedo encontrar a un usuario por su numero de empleado, atributo EmployeeID?
gracias!
necesito modificar atraves de power shell propuedades extendidas :( es psible? alguien sabe como hacerlo?
ResponderEliminarHola, se podra traer solo el nombre?
ResponderEliminarCuando ejecuto
PS C:\WINDOWS\system32> Get-ADUser -Identity $env:username -Properties displayname
me trae todas las propiedades, y quiero solo el displayname
se podra?
Hola,
EliminarAquí lo tienes:
Get-ADUser -Identity $env:username -Properties displayname|Select-Object DisplayName
Saludos,
Xavi.
Hola!
ResponderEliminartengo una consulta, como puedo extraer los usuario que tiene activa o no el autenticación multifactor que atributo debo ejecutar.
gracias!