Anuncios

Bienvenidos sean a este post, en el post anterior vimos como habilitar el IIS en un workstation hoy veremos como habilitarlo en el server que creamos para el laboratorio.

Anuncios

Sino lo tienes instalado te recomiendo este post donde explico como instalar un Windows Server 2003, si ya tienen instalado el server solo deben usar el Manage your server, pulsen Add or remove a role, se abre una nueva ventana y pulsan Next, seleccionen Appication Server y pulsen Next, tilden Enable ASP.NET y pulsen Next, pulsen nuevamente Next para empezar la instalacion, una vez que termine pulsen Finish, con esto tenemos casi cocinado el IIS, nuestro siguiente paso sera habilitar el servidor, para ello deben ir a Inicio->Administrative Tools->Internet Information Services Manager, una vez abierto seleccionen Web Services Extension

Anuncios

Seleccionen Active Server Pages y pulsen el boton Allow, lo cual pasara al ASP de estado Prohibited a Allowed como se ve a continuacion

Anuncios

Con esto tenemos habilitado ASP para nuestro servidor, antes de pasar a ver como va a ser nuestra pagina debemos hacer una modificacion mas, en Web_Sites ve a Default_web_site presiona con el boton derecho sobre esta y selecciona propiedades, aparecera el siguiente cuadro

Anuncios

Deben ir a la solapa Direcory Security y presionen el boton Edit de la opcion Authentication and access control, aparecera este nuevo cuadro

Anuncios

En este cuadro deben destildar la opcion de Enable Anonymous access y tildar la opcion Integrated Windows Authentication, quedando de la siguiente forma

Anuncios

Esto permitira que cuando ingresemos a la pagina en lugar de usar un usuario anonimo utilizara el usuario de dominio con el que hayamos ingresado, con esto configurado presionen Ok en todos los cuadros hasta que no quede ninguno, nuestro siguiente paso sera crear la pagina para ello deben ir hasta c:\inetpub\wwwroot y crear un nuevo documento de texto en blanco que llamaran adtools.asp:

Nota: El usuario debemos configurarlo asi porque de lo contrario no tendra permisos y nuestra pagina no funcionara.

adtools.asp

<%@ language="vbscript" %>

<%
user=request.form("usuario")

Set objRootDSE = GetObject("LDAP://rootDSE")
dominio = objRootDSE.Get("defaultNamingContext")

vuser = FindUser(user, dominio)

if (vuser = "Not Found") then

texto =  user & " no encontrado en el AD."

else

Set objUser = GetObject("LDAP://" & vuser)
objUser.IsAccountLocked = False
objUser.SetInfo

texto = user & " fue desbloqueado"

end if

Function FindUser(Byval UserName, Byval Domain)

	dim vUsuario

	set cn = createobject("ADODB.Connection")
	set cmd = createobject("ADODB.Command")
	set rs = createobject("ADODB.Recordset")
	cn.open "Provider=ADsDSOObject;"

	cmd.activeconnection=cn
	cmd.commandtext="SELECT ADsPath FROM 'GC://" & Domain & _
	   "' WHERE sAMAccountName = '" & UserName & "'"

	set rs = cmd.execute
	if err<>0 then
		 FindUser="Error conectandose a la base del AD:" & err.description
	else

		 if not rs.BOF and not rs.EOF then
			rs.MoveFirst
			vUsuario = Replace(rs(0),"GC://","")
			FindUser=vUsuario
		 else
			FindUser = "Not Found"
	 	end if
	end if
	cn.close
end function	
	
%>
<html>
<head><title>AD Tools</title></head>

<body>
<form id="form1" name="form1" method="POST" action="">
	Desbloqueo de usuarios<br>
	Ingresa el usuario: <input id="usuario" name="usuario" value=""><br>
	<button type="submit">Desbloquea el usuario</button>
</form>
<% response.write(texto) %>
</body>
</html>
Anuncios

Esta es una pagina simple, primero veamos el codigo del HTML:

<html>
<head><title>AD Tools</title></head>

<body>
<form id="form1" name="form1" method="POST" action="">
	Desbloqueo de usuarios<br>
	Ingresa el usuario: <input id="usuario" name="usuario" value=""><br>
	<button type="submit">Desbloquea el usuario</button>
</form>
<% response.write(texto) %>
</body>
</html>
Anuncios

Tenemos las etiquetas HTML y HEAD al inicio, dentro de HEAD usamos a TITLE para asignar el titulo de la pagina, despues viene BODY dentro de esta tenemos un formulario (FORM) el cual se llama form1, usara un metodo POST y sin accion, dentro pediremos el nombre del usuario y lo almacenaremos en un INPUT de texto que se llama usuario, por ultimo el boton que “submite” el formulario, aunque esta no es la ultima accion porque en realidad tenemos una linea de ASP que muestra una variable llamada texto pero todavia no hablaremos de ella, pasemos al codigo en ASP, primero veamos esta funcion:

Function FindUser(Byval UserName, Byval Domain)

	dim vUsuario

	set cn = createobject("ADODB.Connection")
	set cmd = createobject("ADODB.Command")
	set rs = createobject("ADODB.Recordset")
	cn.open "Provider=ADsDSOObject;"

	cmd.activeconnection=cn
	cmd.commandtext="SELECT ADsPath FROM 'GC://" & Domain & _
	   "' WHERE sAMAccountName = '" & UserName & "'"

	set rs = cmd.execute
	if err<>0 then
		 FindUser="Error conectandose a la base del AD:" & err.description
	else

		 if not rs.BOF and not rs.EOF then
			rs.MoveFirst
			vUsuario = Replace(rs(0),"GC://","")
			FindUser=vUsuario
		 else
			FindUser = "Not Found"
	 	end if
	end if
	cn.close
end function
Anuncios

Aqui tenemos a nuestra mitica funcion FindUser, la cual recibe dos datos, el usuario y el dominio, si quieren saber mas sobre esta funcion les recomiendo este post donde la explico como debe ser pero resumiendo recibe dos datos, los utiliza para buscar en el AD, si lo encuentra devuelve el valor de la ubicacion del usuario en el AD por medio de la funcion si no lo encuentra la funcion devuelve un Not Found, ahora pasemos a ver el bloque que se encarga de la magia:

user=request.form("usuario")

Set objRootDSE = GetObject("LDAP://rootDSE")
dominio = objRootDSE.Get("defaultNamingContext")

vuser = FindUser(user, dominio)

if (vuser = "Not Found") then

texto =  user & " no encontrado en el AD."

else

Set objUser = GetObject("LDAP://" & vuser)
objUser.IsAccountLocked = False
objUser.SetInfo

texto = user & " fue desbloqueado"

end if
Anuncios

La primer linea se encarga de tomar el dato enviado por el formulario, entre comillas siempre debe ir el nombre del campo del formulario y esto lo vamos a asignar a user, la siguiente linea se encarga de crear un objeto para almacenar la coleccion del AD, la siguiente linea obtiene el dominio del AD en formato para usar en scripts y lo almacena en dominio, con estos dos datos lo enviamos a FindUser para que verifque si el usuario que ingresamos en el formulario existe y este resultado es asignado a vuser, nuestro siguiente paso sera un condicional donde primero verifica si vuser es igual a “Not Found”, en caso de ser cierto (o verdadero) procede a asignar a texto el nombre del usuario y un mensaje informando que no existe en el AD, en caso contrario que el usuario exista procede crear el objeto del usuario con la informacion obtenida de FindUser, con nuestro objeto creado setearemos la propiedad que verifica si la cuenta esta bloqueada (IsAccountLocked) como falsa y luego usamos a SetInfo para efectuar la modificacion. por ultimo asignamos a texto el usuario y el mensaje de que fue desbloqueado, vamos a probarlo mediante el siguiente video

Anuncios

En este video podemos ver como tenemos un usuario bloqueado, luego ingresamos a la pagina y desbloqueamos el usuario via ASP y VBSCript, verificamos que haya sido asi y por ultimo hacemos un ejemplo donde no existe un usuario.

Anuncios

En resumen, hoy hemos visto como configurar un servidor web en un servidor de Windows, hemos visto que debemos habilitar para usar ASP, luego que otra opcion mas debemos habilitar para no obtener errrores, luego hicimos una pagina, lo probamos y funciono correctamente, espero les haya sido util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Tengo un Patreon donde podes acceder de manera exclusiva a material para este blog antes de ser publicado, sigue los pasos del link para saber como.

Tambien podes comprar mi libro sobre VBscript en Amazon

Tambien podes donar

Es para mantenimiento del sitio, gracias!

$1.00