Manual script usuarios masivos

8

Click here to load reader

Transcript of Manual script usuarios masivos

Page 1: Manual script usuarios masivos

CONFIGURACIÓN Y EJECUCIÓN DE SCRIPT PARA CREACIÓN MASIVA DE USUARIOS GESTIÓN DE REDES DE DATOS

SERVICIO NACIONAL DE APRENDIZAJE YIMY FERNANDO PEREZ MEDINA

Instructora: ISABEL CRISTINA YEPES OCAMPO

Ficha: 464327

Page 2: Manual script usuarios masivos

1

CONFIGURACIÓN Y EJECUCIÓN DE SCRIPT PARA

CREACIÓN 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 están ambos en una carpeta la cual pueden descargar de: https://mega.co.nz/#F!8ApyXJTB!OnPO29lREn2eLNSD9_7tqQ

Page 3: Manual script usuarios masivos

2

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 modificación). ########################################################### # 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) {

Page 4: Manual script usuarios masivos

3

$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 + " sAMAccountName: " $output += $sam + " Pass: " + $_.Password $output | Out-File $log -append } 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 tabulación o borrar algo por error inmediatamente nos puede generar error.

Page 5: Manual script usuarios masivos

4

Ahora ya analizado visual y textualmente el script procedemos a explicar y hacerle modificaciones: NOTA: - Toda línea que comience con el símbolo # es un comentario y explicación, este no afecta la ejecución del script.

- De las siguientes imágenes 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 físicamente se debe renombrar también en el script para su correcta ejecución. El archivo create_ad_users.log físicamente no lo veremos hasta llevar acabo la ejecución del script, este archivo contiene logs y pequeños registros del script.

Ahora en la línea $location veremos un tipo de “ruta” la cual especificaremos donde se van a crear los usuarios ejecutados mediante el script, nótese que la ruta es en orden jerárquica 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).

Page 6: Manual script usuarios masivos

5

En la línea resaltada anteriormente debemos establecer el país y en la parte de abajo entre comillas la abreviatura de dicho país en mayúsculas.

Este número lo cambiamos de acuerdo a nuestra necesidad que son el número máximo de caracteres del nombre de usuario.

Lo resaltado anteriormente fue lo sustituido, cambiamos iniciales por el GivenName, por la información que contiene el archivo .csv.

En esta sección no debemos hacer ninguna modificación, solo debemos agregar el comando –Enabled $true, que significa que nos cree los usuarios activos y listos para iniciar sesión con cualquiera de ellos.

Page 7: Manual script usuarios masivos

6

Ahora lo resaltado en esta sección debemos comentarlo para evitar un error con la extensión para esto simplemente agregamos el símbolo “#”.

Hasta este punto son las modificaciones del script como tal, ahora procedemos a explicar la función del archivo .csv. Este archivo contiene toda la información del usuario; en la primera línea los parámetros separados por comas y en la segunda línea la información y respuesta de dichos parámetros (información personal del usuario). NOTA: podemos crearlo y ejecutarlo en un archivo de Excel para más 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 función “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 “,”.

Page 8: Manual script usuarios masivos

7

Ahora corremos el script en nuestro server.

Ahora procedemos a mirar los usuarios creados: