jueves, 14 de noviembre de 2013

Crear objetos Computer en AD



El script de Powershell que voy a mostrar permite el poder crear de forma masiva objetos Computer en el directorio activo y poderle indicar varios parámetros como la descripción o la OU donde queremos crear el objeto.

Hay que tener en cuenta que para poder ejecutar este comando es necesario importar el módulo ActiveDirectory que solo se encuentra disponible si es un servidor de dominio o hemos instalado en un ordenador miembro del dominio las herramientas administrativas del directorio activo. También hay que tener en cuenta que deberemos ejecutar el Powershell con privilegios elevados y que debe estar permitido la ejecución de scripts.


El fichero CSV en el cual deberemos indicar los datos de los objetos a crear debe tener el formato siguiente:

Nombre;NombrePre;Descripcion;Grupo;Path
Ordenador1; Ordenador1;Descripcción Ordenador1;Equipos almacen;OU=Almacen


Teniendo en cuenta de que la primera línea es la cabecera  que no deberemos modificar que tendrá el formato:

Nombre: El nombre a crear del objeto que será el nombre del ordenador

NombrePre:El nombre a crear del objeto para las versiones anteriores a Windows 2000, normalmente es el mismo de Nombre

Descripccion:Es la descripción que queremos darle al objeto

Grupo:Grupo al queremos añadir este objeto

Path:OU final donde queremos que se cree el objeto. En mi ejemplo todos se crean en la misma OU cuya raíz es OU=Ordenadores,OU=Valencia,DC=lab,DC=local con lo que aquí únicamente indicaremos la OU final. Cada uno que lo modifique como crea necesario.


El script es el siguiente, he añadido comentarios para saber lo que se está haciendo.

# -- Importar el modulo de directorio activo

Import-Module ActiveDirectory

# -- Leer los datos del fichero CSV

$Computers = Import-CSV Computers.csv -delimiter ";"


# -- Parte común del path donde ubicar el objeto

$CommonPath = ",OU=Ordenadores,OU=Valencia,DC=Lab,DC=local"


# -- Comienza a leer los objetos

foreach($Computer in $Computers)

{

  # -- Prepara todas las variables

  $Name = $Computer.Nombre

  $SamAccountName = $Computer.NombrePRE

  $Description = $Computer.Descripcion

  $Path = $Computer.Path + $CommonPath

  $Group = $Computer.Grupo

  $CN = "CN="+$Name+","+$Path

  $CN = "`"$CN`""

  
  # -- Comprueba si el objeto ya existe

  $Message="Ya existe="+$CN

  $Exist = dsquery computer -name $Name

  if ($Exist -eq $CN) {echo $Message}

  else 
  {

  # -- No existe, crea el objeto

  Write-Host "-- Creando objeto " $Name

  New-ADComputer -Name $Name -SamAccountName $SamAccountName -Description $Description -Path $Path


  # -- Añade el objeto al grupo solicitado

  Write-Host "Añade el objeto " $Name " al grupo " $Group

  $Comp=Get-ADComputer $Name

  Add-ADGroupMember -identity $Group -Member $Comp

  }

 }

Espero haber ayudado con esto.

No hay comentarios:

Publicar un comentario