Mostrando entradas con la etiqueta AD. Mostrar todas las entradas
Mostrando entradas con la etiqueta AD. Mostrar todas las entradas

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.

Añadir objetos de AD a un grupo

En el caso de necesitar añadir una gran cantidad de objetos Computer del AD a un determinado grupo podemos hacerlo usando el cmdlet de Powershell Add-ADGroupMember.

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.

En el ejemplo que indico ya se importa este módulo pero, hay que tener en cuenta que deberemos ejecutar el Powershell con privilegios elevados.

El script utiliza un fichero CSV llamado Miembros.CSV cuyo formato es el siguiente:

   Equipo
   Equipo1
   Equipo2
   Equipo3

Siendo Equipo la cabecera del fichero y Equipo1, ..2 y ..3 los nombres de los objetos Computer del AD a incluir en el grupo.

El script que indico a continuación como ejemplo asume que todos los equipos se añaden al grupo Servidores_Uno.

Import-Module ActiveDirectory 
$Miembros=Import-CSV miembros.csv -Delimiter "," 
$Grupo="Servidores_Uno" 
foreach($Miembro in $Miembros) 

 # -- Añade el objeto al grupo solicitado 
 Write-Host "Añade el objeto " $Miembro.Equipo " al grupo " $Grupo 
 $Comp=Get-ADComputer $Miembro.Equipo 
 Add-ADGroupMember -identity $Grupo -Member $Comp 



Espero haber ayudado con esto.

martes, 15 de enero de 2013

Renombrar un ordenador en un dominio existente por comando.



Ya he explicado varias formas de usar el comando NETDOM, en este caso lo que vamos a ver es como renombrar un ordenador del dominio, este comando renombra tanto el ordenador como el objeto asociado en el dominio.

Al igual que cuando lo utilizamos para añadir el ordenador al dominio (Enlace), su ejecución requiere elevación con lo que deberemos ejecutarlo como administrador.

Si queremos renombrar el ordenador llamado Desarrollo1 a Desarrollo2 del dominio empresa.local deberemos ejecutar el comando:

Netdom renamecomputer Desarrollo1 /newname:Desarrollo2.empresa.local
  
Si el usuario con el que hemos iniciado sesión en el servidor desde donde lanzamos el comando no tiene derechos para poder eliminar un objeto en el dominio podemos especificar el usuario con derechos agregando lo siguiente al comando:

/userd:Administrador /passwordd:*

Siendo /userd donde indicas el usuario con derechos y /passwordd es donde le indicas el password, puedes escribirlo o, como en el ejemplo poner un * que indica que nos pida la contraseña al ejecutar el comando.

Como la maquina ya está en dominio las credenciales de acceso serán las del dominio pero, para ejecutarse correctamente el comando hará  login en la maquina remota, si no se especifican las credenciales utilizará las credenciales con las que hemos ejecutado el comando si no son correctas deberemos añadir lo siguiente al comando:

/usero:Usuario /passwordo:*

Siendo /usero donde indicas el usuario de conexión al ordenador remoto y /passwordo: donde indicas la contraseña, aquí ocurre lo mismo que con el anterior parámetro, el asterisco indica que nos va a pedir la contraseña.

Al ejecutar el comando nos solicitará confirmación, si queremos forzarlo sin confirmación debemos añadir lo siguiente al comando:

/force

Al terminar el comando es necesario reiniciar el ordenador remoto para que se apliquen los cambios, podemos hacerlo automáticamente añadiendo lo siguiente al comando:

/reboot:<Segundos de retraso>

Siendo <Segundos de retraso> los segundos que espera antes de reiniciar, si no se indica el tiempo, el valor por defecto es 20 segundos.

Borrar un ordenador de un dominio existente por comando.



Ya he explicado varias formas de usar el comando NETDOM, en este caso lo que vamos a ver es como eliminar un ordenador del dominio. 
Al igual que cuando lo utilizamos para añadir el ordenador al dominio (Enlace), su ejecución requiere elevación con lo que deberemos ejecutarlo como administrador.

Si queremos eliminar el ordenador llamado Desarrollo1 del dominio empresa.local deberemos ejecutar el comando:

Netdom remove /d:empresa.local Desarrollo1

Si el usuario con el que hemos iniciado sesión en el servidor desde donde lanzamos el comando no tiene derechos para poder eliminar un objeto en el dominio podemos especificar el usuario con derechos agregando lo siguiente al comando:

/userd:EMPRESA\UserAdmin /passwordd:*

Siendo /userd donde indicas el usuario con derechos en el formato DOMINIO\Usuario y /passwordd es donde le indicas el password, puedes escribirlo o, como en el ejemplo poner un * que indica que nos pida la contraseña al ejecutar el comando.

Como la maquina ya está en dominio las credenciales de acceso serán las del dominio pero, para ejecutarse correctamente el comando hará  login en la maquina remota, si no se especifican las credenciales utilizará las credenciales con las que hemos ejecutado el comando si no son correctas deberemos añadir lo siguiente al comando:

/usero:Usuario /passwordo:*

Siendo /usero donde indicas el usuario de conexión al ordenador remoto y /passwordo: donde indicas la contraseña, aquí ocurre lo mismo que con el anterior parámetro, el asterisco indica que nos va a pedir la contraseña.

Al terminar el comando es necesario reiniciar el ordenador remoto para que se apliquen los cambios, podemos hacerlo automáticamente añadiendo lo siguiente al comando:

/reboot:<Segundos de retraso>

Siendo <Segundos de retraso> los segundos que espera antes de reiniciar, si no se indica el tiempo, el valor por defecto es 20 segundos.

Unir un ordenador a un dominio existente por comando.



NETDOM es otra de esas utilidades que nos pueden ayudar en nuestro trabajo, este comando solo se puede ejecutar desde un servidor que tenga los servicios de directorio activo instalados o desde cualquier equipo cliente que tenga instaladas las herramientas de administración (http://technet.microsoft.com/es-es/library/ee649281(v=ws.10).aspx)

Hay que decir que su ejecución requiere elevación con lo que deberemos ejecutarlo como administrador.

La parte que vamos a ver ahora es la de poder unir un ordenador a un dominio de forma remota, el ordenador debe tener instalado Windows XP Profesional, Vista o Windows 7 a un dominio de Windows NT 4.0 o superior como Windows 2008 R2. Si la cuenta de maquina del directorio activo no está creada la creará dentro de la OU especificada.

Si queremos añadir el ordenador llamado Desarrollo1 al dominio empresa.local dentro de la OU Clientes/Desarrollo deberemos ejecutar el comando:

Netdom join /d:empresa.local Desarrollo1 /OU:OU=Clientes,OU=Desarrollo,DC=empresa,DC=local

Si el usuario con el que hemos iniciado sesión en el servidor desde donde lanzamos el comando no tiene derechos para poder añadir un objeto en el dominio podemos especificar el usuario con derechos agregando lo siguiente al comando:

/ud:EMPRESA\UserAdmin /pd:*

Siendo /ud donde indicas el usuario con derechos en el formato DOMINIO\Usuario y /pd es donde le indicas el password, puedes escribirlo o, como en el ejemplo poner un * que indica que nos pida la contraseña al ejecutar el comando.

Obviamente al ejecutar el comando se debe conectar a la maquina destino para poder modificar los valores necesarios de Shares y derechos con lo que debe hacer login, si no se especifica el usuario de conexión utilizará las credenciales con las que hemos accedido al servidor desde donde se ejecuta el comando, si no son correctas deberemos añadir lo siguiente al comando:

/uo:Usuario /po:*

Siendo /up donde indicas el usuario de conexión al ordenador remoto y /po: donde indicas la contraseña, aquí ocurre lo mismo que con el anterior parámetro, el asterisco indica que nos va a pedir la contraseña.

Al terminar el comando es necesario reiniciar el ordenador remoto para que se apliquen los cambios, podemos hacerlo automáticamente añadiendo lo siguiente al comando:

/reboot:<Segundos de retraso>

Siendo <Segundos de retraso> los segundos que espera antes de reiniciar, si no se indica el tiempo, el valor por defecto es 20 segundos.