cristian Lozano

Automatització de tasques amb PowerShell

En aquest apartat del Active Directori es molt útil fer ús de scripts els quals s’utilitzen a PowerShell per poder automatitzar tasques que consumeixen un temps que podem guanyar fent ús d’aquests scripts, els quals afegim les dades i només al executar ho fan sense tenir nosaltres que configurar manualment on perdem temps, normalment són tasques repetitives. El exemple més clar es automatitzar la creació d’usuaris o grups, inclòs podem afegir scripts quan usuari inicia sessió o també podem afegir un script algun equip remotament des de l’AD per automatitzar una tasca en específic.  Un altre exemple pot ser reiniciar serveis o actualitzar el sistema, sempre fent això que doni opció de decidir per si de cas i visualitzar bé el que fa, en aquest cas. 

Creació estructura empresa

# Crear OU principal
New-ADOrganizationalUnit -Name "EMPRESA" -Path "DC=illa2,DC=es"

# Crear OUs internas
$base = "OU=EMPRESA,DC=illa2,DC=es"

New-ADOrganizationalUnit -Name "USUARIOS" -Path $base
New-ADOrganizationalUnit -Name "GRUPOS" -Path $base
New-ADOrganizationalUnit -Name "VENTAS" -Path "OU=USUARIOS,$base"
New-ADOrganizationalUnit -Name "RRHH" -Path "OU=USUARIOS,$base"
New-ADOrganizationalUnit -Name "IT" -Path "OU=USUARIOS,$base"

Creació dels grups

$gruposPath = "OU=GRUPOS,OU=EMPRESA,DC=illa2,DC=es"

New-ADGroup -Name "GRP_VENTAS" -GroupScope Global -GroupCategory Security -Path $gruposPath
New-ADGroup -Name "GRP_RRHH" -GroupScope Global -GroupCategory Security -Path $gruposPath
New-ADGroup -Name "GRP_IT" -GroupScope Global -GroupCategory Security -Path $gruposPath

Fet això creem un CSV amb les dades dels usuaris, en aquest cas els treballadors de l’empresa. 

Nombre,Apellido,Departamento
Ana,Gomez,VENTAS
Luis,Martinez,RRHH
Carlos,Ruiz,IT

Script per importar els usuaris del CSV

Import-Csv C:\usuarios.csv | ForEach-Object {

$nombreCompleto = "$($_.Nombre) $($_.Apellido)"
$sam = ($_.Nombre.Substring(0,1) + $_.Apellido).ToLower()
$ou = "OU=$($_.Departamento),OU=USUARIOS,OU=EMPRESA,DC=illa2,DC=es"

New-ADUser -Name $nombreCompleto `
-GivenName $_.Nombre `
-Surname $_.Apellido `
-SamAccountName $sam `
-UserPrincipalName "$sam@illa2.es" `
-Path $ou `
-AccountPassword (ConvertTo-SecureString "P@ssw0rd123" -AsPlainText -Force) `
-Enabled $true

Add-ADGroupMember -Identity "GRP_$($_.Departamento)" -Members $sam
}

Funcionament d'aquest script

  • Crea l’usuari
  • El col·loca en la OU correcta
  • Genera el login automàticament
  • El fica en el seu grup corresponent

Això és automatització real.

Verificació funcionament

Comprova usuaris creats:

Get-ADUser -Filter * -SearchBase "OU=EMPRESA,DC=illa2,DC=es"

Comprovar membres de grup:

Get-ADGroupMember GRP_VENTAS

Exemple pràctic

Aquest exemple pràctic es el que hem utilitzat per fer la creació d’usuaris. Veure el post d’Hèctor Barberà. En aquest cas amb ajuda d’un CSV amb les dades dels treballadors, Departaments i els pertanyents GRP.