feb 4 2011
Windows Script Host + Active Directory
A ver, este es el plan: vamos aprendiendo algo simple y muy útil sobre Windows Server 2008: Creación de VBScripts para administrar nuestro Active Directory,veamos:
Set objDomain=GetObject("LDAP://dc=ifxperu, dc=com")
Con el Set estamos declarando la variable, en este caso se denominada objDomain a la cual le estamos asignando la ubicación principal de nuestro dominio.
mensaje = Inputbox("Ingrese un mensaje para mostrar")
Un Inputbox es realmente útil, especialmente para indicar alguna decisión de un Select Case, ahora para mostrar lo escrito en el mensaje, se necesita de un messagebox:
msgbox(“mensaje”)
Para concatenar variables/mensajes se requiere un [&] en algunos casos solo es necesario uno, en otros casos se requieren 2 [&] que estén “encerrando” a la variable, en el siguiente se resaltan los bloques que deben estar entre comillas.
nombre =Inputbox("Ingrese su nombre:")
edad = Inputbox("Su edad:")
msgbox("Hola " &nombre& ",tienes " &edad& "años")
msgbox("Hasta luego " &nombre)
En el Active Directory, una de las estructuras que más se utilizan son las Unidades Organizacionales, conocidas como “OUs”, para crearlas de manera manual, vamos viendo la siguiente línea:
Set objOU = objDomain.Create(“organitazionalUnit”,”ou=Editores”)
Pero! Al momento de crear el script, primero debemos especificar su ubicación [LDAP], es decir emplear la primera línea mencionada al inicio y para que la variable sea almacenada, se requiere un SetInfo:
objOU.SetInfo
Ahora bien, si vamos a diseñar un Script que permita mediante un Inputbox registrar el nombre de una OU, tendremos lo siguiente:
Set objDomain = GetObject("LDAP://dc=ifxperu, dc=com")
nombreOU= Inputbox("Ingrese nombre de la OU: ")
Set objOU = objDomain.Create("organizationalUnit","ou="&nombreOU)
objOU.SetInfo
msgbox("Unidad Organizacional " &nombreOU& “ : creada!”)
Continuando con los scripts, el FOR tiene 3 secciones, la primera donde se declara, desde dónde comienza hasta su fin, seguido de lo que se vaya a ejecutar, en este caso te saludará 5 veces [LOL] para que finalice la secuencia actual y continue con la siguiente, se emplea un NEXT.
For i=1 to 5
msgbox("hola " &i)
Next
El Do Loop while, va de la siguiente forma:
Do
res = Inputbox("Desea repetir la operación? [S/N]")
Loop while res="s"
Revisando al Select Case, le asignamos un menú de navegación empleando un simple inputbox con todas las opciones:
Do
opcion=Inputbox("Menu IFXPERU" & vbcrlf & _
vbcrlf & "[1] Opción 01 " & vbcrlf & _
vbcrlf & "[2] Opción 02 " & vbcrlf & _
vbcrlf & "[6] Salir del programa " & vbcrlf)
Select Case opcion
Case”1”
msgbox(“Opcion 01”)
Case “2”
msgbox(“Opcion 02”)
End Select
Loop while opcion <>6
Para Crear usuarios, se tiene que tener en cuenta los diversos campos con lo que se trabajará, utilizaremos lo mencionado al inicio para determinar en qué OU crearemos al usuario, asignándole nombre completo, login, password y de paso habilitando su cuenta:
nom = Inputbox("Especificar OU: ")
Set objDomain=GetObject("LDAP://ou="&nom&", dc=ifxperu, dc=com")
userFullName = Inputbox("Nombre completo de usuario:")
Set oUSR= objDomain.Create("user", "cn="&userFullName)
userLoginName= Inputbox("Nombre de login")
oUSR.Put "samAccountName", userLoginName
oUSR.SetInfo
userPassword=Inputbox("Asignar contraseña:")
oUSR.SetPassword "&userPassword"
oUSR.AccountDisabled=false
oUSR.SetInfo
msgbox(“Usuario ” &userLoginName& “ : creado!”)
Hasta el primer oUSR.SetInfo tenemos la información básica, luego “actualizamos” nuevamente con otro SetInfo.
Referencias: Microsoft Technet Script Center
Saludos!






feb 07, 2011 @ 09:34:34
Si deseas ver mas de otras formas de como crear VBScript lo puedes ver en mi post de mis publicaciones: http://hwongu.blogspot.com/2011/01/vbscript-crear-usuarios-unidades.html .. Saludos
feb 08, 2011 @ 07:51:46
Se ve bravazo!!! desarrollé un Script similar, luego será publicado con la parte II de Windows Script Host + Active Directory.
Saludos y sigue leyendonos