Archivo .bat para apagar un servidor Windows desde otra PC en la misma red

Si usas un servidor local seguramente tienes la pura caja, sin monitor ni teclado. Cuando trabajas en el servidor lo haces usando Escritorio Remoto (Remote Desktop). Si es así, te gustará este tip para apagar tu servidor haciendo doble clic en un archivo .bat desde cualquier PC en tu red local.

Simplemente abre un bloc de notas y teclea lo siguiente:

shutdown /s /m servidor

Guarda el archivo como apagar.bat. Listo, ahora dale doble clic y tu servidor se apagará.

Nota: Debes estar autenticado en el servidor. Es decir, conéctate al servidor tecleando servidor en el explorador de windows y proporciona tu nombre de usuario y contraseña.

Si ejecutaste el archivo apagar.bat e inmediatamente después te das cuenta de que no lo querías apagar, debes ejecutar el siguiente comando para abortar el apagado:

shutdown /a /m servidor

Solamente funciona si lo haces en 30 segundos o menos después de haber enviado el primer comando.

Igual que antes, puedes teclear esto en un archivo y llamarlo abortar.bat para tenerlo a la mano en caso de que te arrepientas.

Crea una tercera sesión de Escritorio Remoto (Remote Desktop)

Cuando intentas conectarte a tu servidor con Escritorio Remoto (Remote Desktop) obtienes el siguiente error:

Servicios de Terminal Server ha sobrepasado el número máximo de conexiones permitidas. El sistema no puede iniciar su sesión en (1B8E). Vuelva a intentarlo o consulte a su administrador del sistema.

En inglés:
The terminal server has exceeded the maximum number of allowed connections. The system cannot log you on (1B8E). Please try again or consult your system administrator.

La razón es que el servidor solamente acepta 2 sesiones remotas, ya sea activas o desconectadas. Es decir, abriste dos sesiones y las dejaste abiertas (simplemente cerraste las conexiones cerrando la ventana de Escritorio Remoto en vez de hacer clic en Inicio -> Cerrar sesión).

Afortunadamente puedes crear una tercera sesión ejecutando este comando desde una ventana de MS-DOS:

c:>mstsc /v:ip_del_servidor /console

Esto te permitirá conectarte a la sesión de consola de tu servidor, y una vez dentro te recomiendo matar las sesiones que se quedaron activas.

Por cierto, si piensas reiniciar tu servidor, la manera más confiable de hacerlo es desde la sesión de consola.

Como enviar mensajes de correo electrónico con System.Net.Mail

Para enviar mails con ASP.NET 2 necesitas utilizar System.Net.Mail.

Antes que nada, no olvides importar la librería:

  1. Imports System.Net.Mail

Para enviar el e-mail la sintaxis es la siguiente:

  1. Dim mail As New MailMessage()
  2. 'Para enviar mensaje en HTML
  3. mail.IsBodyHtml = True
  4.  
  5. 'A quien se le envia
  6. mail.To.Add("destinatario@ejemplo.com")
  7. mail.To.Add("OtroDestinatario@ejemplo.com")
  8. 'Con copia para
  9. mail.CC.Add("Copia@ejemplo.com")
  10. 'Con copia oculta
  11. mail.Bcc.Add("CopiaOculta@ejemplo.com")
  12. 'De parte de quien
  13. mail.From = New MailAddress("DeParteDeQuien@ejemplo.com", "Juan Pérez")
  14.  
  15. 'Si necesitas agregar una direccion de respuesta distinta
  16. mail.ReplyTo = New MailAddress("AQuienResponder@ejemplo.com", "Elisa Romero")
  17. 'Asunto
  18. mail.Subject = "Hola amigos"
  19. 'Cuerpo
  20. mail.Body = "<b>Hola, como están</b> todos?"
  21.  
  22. 'Por si necesitas aniadir archivos adjuntos
  23. mail.Attachments.Add(New Attachment("c:archivo1.jpg"))
  24. mail.Attachments.Add(New Attachment("c:archivo2.jpg"))
  25.  
  26. Dim smtp As New SmtpClient("127.0.0.1")  'La direccion IP del servidor SMTP
  27. 'Si deseas autenticacion usa la siguiente linea
  28. smtp.Credentials = New Net.NetworkCredential("login", "password")
  29. 'Listo, envia el mail
  30. smtp.Send(mail)

Crea tu propio validador (CustomValidator)

Para implementar tu propia lógica en un validador utiliza un CustomValidator.

En la página aspx agrega la propiedad OnServerValidate al validador y dale como valor el nombre de una función que tú mismo escribirás.

  1. <asp:customvalidator id="CustomValidator1" runat="server" CssClass="validador" Display="Dynamic" ErrorMessage="Debe seleccionar al menos un grupo" OnServerValidate="validaGrupos"></asp:customvalidator>

En el archivo aspx.vb (o en la porción de código de servidor de tu archivo aspx) implementa la función, como se muestra a continuación. Si tu lógica indica que el dato es aceptado, establece args.IsValid a true, y si no, a false.

  1. Sub validaGrupos(ByVal sender As Object, ByVal args As ServerValidateEventArgs)
  2.    Dim vacio As Boolean
  3.    vacio = True
  4.    Dim elemento As ListItem
  5.    For Each elemento In Grupos.Items
  6.       If elemento.Selected = True Then
  7.           vacio = False
  8.       End If
  9.    Next
  10.    args.IsValid = Not vacio
  11. End Sub

Cómo mostrar los n primeros registros de una tabla o consulta

En ocasiones es necesario mostrar los n primeros registros de una tabla o consulta.

Supón que tienes una base de datos donde guardas un historial de noticias. Quieres mostrar en la portada de tu sitio web las 5 noticias más recientes. Es sencillo realizar una consulta que te devuelva todas las noticias ordenadas por fecha descendente, pero solamente necesitas las 5 primeras.

Para hacerlo en mySQL se utiliza LIMIT

Sintaxis:

SELECT * FROM tabla LIMIT x, y

Donde:
x es el renglón a partir del cual se devolverá. El primer renglón es 0, no 1.
y es la cantidad de registros a devolver.

De tal manera que:

SELECT * FROM tabla LIMIT 0, 5

devuelve los primeros cinco renglones a partir del primero. Es decir, los renglones 0, 1, 2, 3 y 4.

SELECT * FROM tabla LIMIT 5, 10

devuelve 10 renglones a partir del sexto, es decir, los renglones 6, 7, 8, 9, 10, 11, 12, 13, 14 y 15.

Regresando al caso que planteado al inicio de este post, la sentencia SQL quedaría asi:

SELECT * FROM noticias ORDER BY fecha DESC LIMIT 0,5

Para una referencia completa visita:
http://dev.mysql.com/doc/refman/5.0/es/select.html