CSVDE

Es una herramienta de línea de comandos que nos permite importar y exportar objetos del Active Directory hacia o desde un fichero separado por comas, es decir, un fichero CSV

Los datos que son exportados pueden ser filtrados basándose en su localización en el directorio, membresia de la OU y object Class, como por ejemplo, user, group, computer

Cuando exportamos los objetos, podemos seleccionar que atributos deben ser exportados. Por defecto se conecta al puerto 10389

La sintaxis de CSVDE y LDIFDE es similar, solo cambio el formato del fichero de salida

Exportar datos

csvde
-s <server> –f <filename> -d <RootDN> -p < scope> -r <filter> -l <attributo>

  • -f <file> à

    especifica el archivo a crear donde se exportara
    • -f c:\test.csv o –f c:\test.ldf

       

  • -S <server> à
    especifica el servidor al que conectar. Si no ponemos nada, es en el cual estamos logados
    • -s NYC-DC1

       

  • t <port> à

    puerto LDAP a usar.
    • –t 10389

       

  • -d <rootDN> à

    Especifica el contenedor desde el cual comenzaremos a exportar, permitiendo por ejemplo exportar en una determinada OU o un objetos. Si no ponemos nada, por defecto, exportara todo el dominio
    • -d “ou=ventas,dc=dominio,dc=com”    // Para exportar sola la OU “ventas”
    • -d “cn=pepe,cn=users,dc=dominio,dc=com” // Para exportar solo un usuario
  • -p < base | onelevel | subtree > à
    especifica el ámbito de la búsqueda relativa a a la ruta de “-d rootDN”- por defecto si no se pone nada es la opción “subtree”
    • –p base    //este objeto únicamente
    • –p onelevel    //objetos dentro de este contenedor
    • –p subtree    //este contenedor y todos sus subcontenedores
    • -r “(filtro)”
      à

      nos permite filtrar basándonos en una clase de objeto de tipo LDAP. Si se omite exporta todos
      • –r “(objectClass=user)”
        // exporta usuarios y maquinas de la OU “ventas”
      • –r “(objectClass=computer)”
        // exporta solo las computadoras
      • –r “(objectClass=group)”
        // exporta solo los grupos
      • –r “(objectCategory=person)”
        // exporta solo usuarios y contactos de la OU “ventas”
      • r “(&(objectClass=user)(sn=torres))” //exporta usuarios que tengan el surname “torres”
      • r “(&(objectClass=user)(sn=per*))” //exporta usuarios con surname que empiece por “per”
      • -r “(&(objectClass=user)(objectCategory=person))” //solo usuarios y no contactos

         

    • -l <atrritutos> à

      especifica los atributos a exportar. Si se omite, se exportaran todos
      • -l “objectClass,dn,office,samaccounname,givenName,sn”
  • -o <atributos>: à
    especifica los atributos que se omitirán en la exportación: Fist name, LastName,Common name
    • -o,givenName,sn,Name,StreetAddress

NOTA: Es muy importante que a la hora de exportar especifiquemos el atributo “objectClass” que determina qué tipo de objeto es (usuario, grupo, etc), de este forma al importar no nos dará el error de que falta el ObjectClass, ya que es necesario para que funcione la importación

Por ejemplo si exportamos como “objectClass=computer” y en los atributos “-l” ponemos algunos que no son validos para las computadoras, simplemente los omitirá y no los mostrara en la salida

Una vez exportados los datos no sale con la nomenclatura

 


Como vemos la nomenclatura del fichero debe ser:

  • En la primera línea, el nombre de los atributos a importar. Aunque en esta exportación no este, debe existir el atributo “objectClass”


  • Por cada elemento, una línea, en el cual debe estar los atributos a importar en el mismo orden que la cabecera

Para saber algunos atributos

Por ejemplo el objectClass puede ser todo lo que se crea con nuevo (user, computer, contact, group, organizationalunit)


Ejemplos:

Exportar todos los objetos que cuelgan de la OU marketing

  • csvde -d "ou=marketing,dc=contoso,dc=com" -f marketingobjects.csv
    

 

Exportar solo a los usuarios de todo el dominio (ya que he omitido "-d <rootDN>" ,y con  todos los atributos (omitido "-l <attr>), y además como ámbito es –p subtree, por lo que cogera todos los subcontenedores

  • csvde -r objectClass=user -f usersonly.csv
    

 

Exporta de la OU ventas, solos los objetos users (usuarios y equipos)

  • csvde -d "ou=ventas,dc=contoso,dc=com" –r "(objectClass=user)"
    					–f c:\export.csv
    

 

 

 

Importar fichero CSV

Con CSVDE no se puede importar passwords, y sin passwords, las cuentas de usuarios serán desactivadas inicialmente. Tendremos que resetear la password

Sintaxis:

Csvde –i –f input.csv –k

 

  • -i Indica que vamos a importar un fichero
  • -f <file>:
    especifica el archivo a importar
    • Csvde –i -f c:\test.csv
    • -k Indica que ignora errores. Por ejemplo si un objeto a importar ya existe en el directorio Activo, lo omite y continua procesando

 

Con CSVDE no se puede importar passwords, y sin passwords, las cuentas de usuarios serán desactivadas inicialmente. Tendremos que resetear la password

El formato del fichero debe ser como se muestra

  • En la primera línea, el nombre de los atributos a importar. debe existir el atributo “objectClass”, si no, fallara
  • Por cada elemento, una línea, en el cual debe estar los atributos a importar en el mismo orden que la cabecera

     


 

Algunos atributos LDAP

 

 

Atributo LDAP

Correspondencia en AD

ejemplo

CN “common name”

givenName +Sn

Cn=pepe gil

description

description

La descripción de la pestaña general

displayName

displayName

No es lo mismo que el CN. El displayName de la pestaña general

Name

givenName +Sn

Es el nombre y apellido. No es lo mismo que nameDisplay

physicalDeliveryOfficename

office

 

mail

e-mail

 

DN

Cn=pepe,cn=users,dc=domain,dc=com

El atributo mas importante de LDAP

GivenName

FirstName

 

SN

LastName

 

Home drive

El Home Folder

 

objectClass

 

Puede ser computer, OU o un container

profilepath

 

Roaming profile path

sAMAccountName

User logonname pre 2000

 

userControlAccount

 

Usado para deshabilitar cuenta. Un valor de 512 lo deshabilita y 512 lo habilita

userprincipalname

User logon name

User logon name de la pestaña account (pepep@contoso.com(

C

Country o region

 

company

Company or organization name

 

department

departmen

Útil para filtar

location

 

Importante para impresoras y computers

Manager

manager

 

Mobile

Mobile Phone number

 

objectClass

 

Habitualmente User o Computer

OU

   

pwdLastSet

 

Fuerza a cambiar password en el próximo logon

Streetaddress

 

Primera línea de direccion

telephoneNumber

 

Office phone

 

 

Importar con PowerShell

Con powershell también podemos importar de un fichero CSV, cuya información se saco con csvde. Vamos a sacar, el nombre, apellidos (siempre SN desde csvde y ldifde) y el common name

  • Csvde –f c:\file.csv –r “(&(objectClass=user)(objectCategory=person))”

–d “OU=test,DC=contoso,DC=com” –l “samAccountName,Name,sn,givenName”

Nos creara el siguiente fichero: la cabecera con el nombre de los atributos exportados con la opción “-l”


Para importar con poweshell usaremos

  • Import-csv
  • New-Aduser

Cuando creamos en New user y especificamos los atributos Name, SamAccountName, etc… como valor en vez de ponerlo a mano, como valor cogemos los campos del fichero, por lo que $_.givenname significa que al atributo GivenName le va a asignar la columna givenname, que contiene los valores mariano y alfredo

  • Tambien puedo dar al altributo UserPrincipalname un valor de los existentes en el fichero, aunque no esté en sí el UPN. Le digo que el UPN va a ser los valores de la columna sAMAccountName
  • La línea path indica donde se van a crear los objetos. Si se omite, los creara en el contenedor por defect “Users”
  • aquí le decimos que como contraseña ponga el valor de la columna samaccountname

 

Import-csv c:\fife.csv | foreach {New-ADUser -Name $_.name –Surname $_sn –Givenname $_.givenname –UserPrincipalname $_. sAMAccountName –SamAccountName $_.sAMAccountName

-Path “OU=ventas,DC=contoso,DC=com”

-AccountPassword (ConvertTo-SecureString –AsPlainText $_.samaccountname –force)

-enabled $true}

Be the first to comment

Leave a Reply