Está en la página 1de 8

CONFIGURACIN Y EJECUCIN DE SCRIPT

PARA CREACIN MASIVA DE USUARIOS


GESTIN DE REDES DE DATOS
SERVICIO NACIONAL DE APRENDIZAJE
DIEGO LEON GIL BARRIENTOS

Instructora: ISABEL CRISTINA YEPES OCAMPO


Ficha: 464327

CONFIGURACIN Y EJECUCIN DE SCRIPT PARA


CREACIN MASIVA DE USUARIOS
Nos basaremos en un script ya programado al cual le haremos cambios para
adecuarlo a nuestras necesidades.
NOTA: Recomendado crear un contenedor para hacer las pruebas del script
(donde se van a crear los respectivos usuarios) en nuestro ejemplo se cre un
contenedor llamado Script y dentro de este un sub contenedor llamado
Usuarios.

El Script que usaremos va de la mano con un archivo .csv el cual estn ambos en
una carpeta la cual pueden descargar de:
https://mega.co.nz/#F!8ApyXJTB!OnPO29lREn2eLNSD9_7tqQ

Para editar el Script damos clic derecho, editar, desde nuestro server.

NOTA: Lo pasamos a nuestro Servidor virtual mediante la carpeta compartida.


Usaremos el siguiente script el cual le haremos modificaciones para nuestras
necesidades de usuarios (as se ver sin hacerle ninguna modificacin).
###########################################################
# AUTHOR : Marius / Hican - http://www.hican.nl - @hicannl
# DATE
: 26-04-2012
# COMMENT : This script creates new Active Directory users
#
including different kind of properties based
#
on an input_create_ad_users.csv.
###########################################################
Import-Module ActiveDirectory
# Get current directory and set import file in variable
$path
= Split-Path -parent $MyInvocation.MyCommand.Definition
$newpath = $path + "\import_create_ad_users.csv"
# Define variables
$log
= $path + "\create_ad_users.log"
$date
= Get-Date
$i
= 0
# Change this to the location you want the users to be created in your AD
$location = "OU=Test,OU=Users,DC=hican,DC=nl"
# FUNCTIONS
Function createUsers
{
"Created following users (on " + $date + "): " | Out-File $log -append
"--------------------------------------------" | Out-File $log -append
Import-CSV $newpath | ForEach-Object {
# A check for the country, because those were full names and need
# to be landcodes in order for AD to accept them. I used Netherlands
# as example
If($_.CO -eq "Netherlands")
{
$_.CO = "NL"
}
# Replace dots / points (.) in names, because AD will error when a
# name ends with a dot (and it looks cleaner as well)
$replace = $_.CN.Replace(".","")
If($replace.length -lt 4)
{

$lastname = $replace
}
Else
{
$lastname = $replace.substring(0,4)
}
# Create sAMAccountName according to this 'naming convention':
# <FirstLetterInitials><FirstFourLettersLastName> for example
# hhica
$sam = $_.Initials.substring(0,1).ToLower() + $lastname.ToLower()
Try
{ $exists = Get-ADUser -LDAPFilter "(sAMAccountName=$sam)" }
Catch { }
If(!$exists)
{
$i++
# Set all variables according to the table names in the Excel
# sheet / import CSV. The names can differ in every project, but
# if the names change, make sure to change it below as well.
$setpass = ConvertTo-SecureString -AsPlainText $_.Password -force
New-ADUser $sam -GivenName $_.GivenName -Initials $_.Initials `
-Surname $_.SN -DisplayName $_.DisplayName -Office $_.OfficeName `
-Description $_.Description -EmailAddress $_.Mail `
-StreetAddress $_.StreetAddress -City $_.L `
-PostalCode $_.PostalCode -Country $_.CO -UserPrincipalName $_.UPN `
-Company $_.Company -Department $_.Department -EmployeeID $_.ID `
-Title $_.Title -OfficePhone $_.Phone -AccountPassword $setpass
# Set an ExtensionAttribute
$dn = (Get-ADUser $sam).DistinguishedName
$ext = [ADSI]"LDAP://$dn"
If ($_.ExtensionAttribute1 -ne "" -And $_.ExtensionAttribute1 -ne $Null)
{
$ext.Put("extensionAttribute1", $_.ExtensionAttribute1)
$ext.SetInfo()
}
# Move the user to the OU you set above. If you don't want to
# move the user(s) and just create them in the global Users
# OU, comment the string below
Move-ADObject -Identity $dn -TargetPath $location
# Rename the object to a good looking name (otherwise you see
# the 'ugly' shortened sAMAccountNames as a name in AD. This
# can't be set right away (as sAMAccountName) due to the 20
# character restriction
$newdn = (Get-ADUser $sam).DistinguishedName
Rename-ADObject -Identity $newdn -NewName $_.CN
$output = $i.ToString() + ") Name: " + $_.CN + "
$output += $sam + " Pass: " + $_.Password
$output | Out-File $log -append

sAMAccountName: "

}
Else
{
"SKIPPED - ALREADY EXISTS OR ERROR: " + $_.CN | Out-File $log -append
}
}
"----------------------------------------" + "`n" | Out-File $log -append
}
# RUN SCRIPT
createUsers
#Finished

Debemos tener mucho cuidado cuando vayamos a comenzar a editar este script,
porque cualquier espacio mal dado, una mala tabulacin o borrar algo por error
inmediatamente nos puede generar error.

Ahora ya analizado visual y textualmente el script procedemos a explicar y


hacerle modificaciones:
NOTA: - Toda lnea que comience con el smbolo # es un comentario y
explicacin, este no afecta la ejecucin del script.
- De las siguientes imgenes las secciones resaltadas son las partes que
debemos editar y adecuar a nuestras necesidades.
-

El archivo llamado import_create_ad_users.csv es el archivo que contiene sola y


nicamente los datos de los usuarios a crear, este es el nombre exacto del archivo
si se renombra fsicamente se debe renombrar tambin en el script para su
correcta ejecucin.
El archivo create_ad_users.log fsicamente no lo veremos hasta llevar acabo la
ejecucin del script, este archivo contiene logs y pequeos registros del script.

Ahora en la lnea $location veremos un tipo de ruta la cual especificaremos


donde se van a crear los usuarios ejecutados mediante el script, ntese que la ruta
es en orden jerrquica de derecha a izquierda, primero va el sufijo (com), luego el
dominio (sena), luego el contenedor principal (Script) y dentro del contenedor
principal hay un sub contenedor (Usuarios).

En la lnea resaltada anteriormente debemos establecer el pas y en la parte de


abajo entre comillas la abreviatura de dicho pas en maysculas.

Este nmero lo cambiamos de acuerdo a nuestra necesidad que son el nmero


mximo de caracteres del nombre de usuario.

Lo resaltado anteriormente fue lo sustituido, cambiamos iniciales por el


GivenName, por la informacin que contiene el archivo .csv.

En esta seccin no debemos hacer ninguna modificacin, solo debemos agregar


el comando Enabled $true, que significa que nos cree los usuarios activos y
listos para iniciar sesin con cualquiera de ellos.

Ahora lo resaltado en esta seccin debemos comentarlo para evitar un error con la
extensin para esto simplemente agregamos el smbolo #.

Hasta este punto son las modificaciones del script como tal, ahora procedemos a
explicar la funcin del archivo .csv.
Este archivo contiene toda la informacin del usuario; en la primera lnea los
parmetros separados por comas y en la segunda lnea la informacin y
respuesta de dichos parmetros (informacin personal del usuario).
NOTA: podemos crearlo y ejecutarlo en un archivo de Excel para ms comodidad
con las columnas sin embargo recuerde que debe ser llamado exactamente igual,
al archivo que llama el script (Archivo .CSV delimitado por comas).
ATENCION!
Al guardar un archivo de Excel con la funcin guardar como y seleccionamos
.csv delimitado por comas, nos guardar el archivo pero delimitado con punto y
coma, el cual debemos abrir con un editor de texto (bloc de notas) y reemplazar
todos los ; por ,.

Ahora corremos el script en nuestro server.

Ahora procedemos a mirar los usuarios creados:

También podría gustarte