martes, 20 de mayo de 2008

Matar procesos en Windows XP/2003

Imaginad que tenéis un script que te para y te vuelve a arrancar un servicio, pero por lo que sea, el proceso no se para de manera automática, sino que tarda unos segundos (o se quedan procesos pululando por el sistema). En este caso, rearrancar el servicio no te sirve de mucho porque o no se arranca bien, o te abre más instancias de las necesarias y siempre es un problema.

El caso es que lo ideal entre la parada y la arrancada del servicio sería matar los procesos que queden vivos de alguna manera. Yo he encontrado un comando (que por lo visto funciona en XP y en 2003 Server) que realiza esta tarea de una manera muy efectiva:

Desde la línea de comandos, la idea es matar el proceso. Sabiendo el nombre exacto (notepad.exe, winword.exe, firefox.exe, iexplore.exe), podemos matarlo y quedarnos más anchos que largos...
Inicio --> Ejecutar --> cmd (Aceptar)

Microsoft Windows 2000 [Version 5.00.2195]
(C) Copyright 1985-2000 Microsoft Corp.

C:\Documents and Settings\Administrator> taskkill /IM nombre_del_proceso.exe

Y punto pelota.

De todas maneras, en algún caso me he encontrado con que no puede acabar con el proceso porque hay que forzarlo (usando la opción /F). En este caso, la forma correcta es:

taskkill /F /IM nombre_del_proceso.exe

O si lo queremos hacer con el Process ID (PID), lo hacemos así:

taskkill /PID pid_del_proceso_a_matar

Si queréis saber más utilidades de este comando, podéis usar la ayuda. La verdad es que es bastante versátil.

lunes, 12 de mayo de 2008

Windows Vista y Telnet

Por defecto, Windows Vista no trae habilitadas muchas funciones básicas para administradores de sistemas, como puede ser el servicio SNMP o el protocolo TELNET. Habilitarlos es algo relativamente sencillo, pero bastante importante si, como en mi caso, nos dedicamos al área de networking.

Se trata de hacer
Inicio --> Configuración --> Panel de Control --> Programas y Características --> (menú izquierda) Activar o desactivar las características de Windows

Esperamos a que se cargue la ventana y activamos/desactivamos las opciones que nos interesen. En este caso (para activar el telnet) yo habilito las opciones de

Servidor Telnet
Cliente Telnet

y para el caso del SNMP simplemente habilitamos la Característica SNMP.

Aceptamos y esperamos a que se instalen los servicios requeridos y punto pelota.

viernes, 9 de mayo de 2008

Alta de usuario en SQL Server (Enterprise Manager 2005)

Este post va dedicado a mí: esta mañana nos hemos pasado una hora para una tontería tan tonta que casi me da vergüenza aceptarlo. Pero bueno, como de los errores se aprende, no me arrepiento.

A ver, abrimos el SQL Enterprise Managerm en mi caso

Inicio --> Programas --> Microsoft SQL Server --> Administrador Coporativo

y desplegamos hasta localizar la carpeta Seguridad. La desplegamos también y nos vamos a Inicios de Sesión y (botón derecho -->) Nuevo Inicio de Sesión.

El usuario que vamos a crear será sólo para SQL, nada que ver con la autentificación Windows, así que en Nombre ponemos el nombre que hayamos pensado y habilitamos la opción "Autentificación de SQL Server" y escribimos la contraseña que queramos. En Base de Datos (en el apartado Predeterminado) seleccionamos la base de datos (la principal si son más de una) para la que este usuario tendrá permisos (si no está porque aún no la has dado de alta, te das cuenta que has empezado la casa por el tejado).

Buscamos la pestaña Acceso a Base de Datos y seleccionamos todas las BBDD a las que tenga que tener acceso, y el nivel de acceso. Cuando marcamos una BDD, en el recuadro de abajo aparecen las diferentes funciones que puede hacer el usuario. Por defecto, viene marcada public, pero si queremos que el usuario pueda administrarla marcaremos bd_owner.

[Aquí había estado mi fallo: había marcado una opción que no tocaba]

Salvaremos, saldremos y ya estará el usuario creado. Si queréis ver si este usuario tiene permisos realmente, abrid el Analizador de Consultas, logaros con ese usuario y haced alguna consulta contra alguna de las BDD a las que tenga acceso, del estilo
select * from tabla

y para que se ejecute, clickad en el play que hay arriba. Si no devuelve ningún error, está todo bien. Si no, repasad vuestros pasos.

Para dar de alta una base de datos: Fácil, desde el propio Enterprise Manager, váis a Bases de Datos y (botón derecho -->) Nueva Base de Datos. Se abre una ventana, donde tendréis que poner el nombre de la nueva base de datos. Y (no es necesario) también podéis indicarle dónde queréis que el sistema guarde los archivos de la base de datos y el registro de transacciones. El primero son los datos de la base de datos, y el segundo un registro de los movimientos que se hacen en esa base de datos. A veces va bien poder elegir dónde los guarda, sobre todo cuando en la unidad C: (donde se guarda normalmente por defecto) no hay mucho espacio, ya que esto ocupa mucho espacio.

Una vez creada la base de datos, si queremos importar algún backup, nos pondremos encima y (botón derecho -->) Todas las tareas --> Restaurar Base de Datos. Si de la copia de seguridad tenemos un archivo .BAK (lo más normal si es un backup del propio SQL), seleccionaremos Desde Dispositivo, y en Dispositivo seleccionaremos el archivo .BAK que queramos restaurar. Y aceptar, y él sólo restaura. Si veis que os da algún error, es probable (si el backup era de otra máquina, con otra configuración) que vosotros no tengáis la misma estructura, y, por ejemplo, que en lugar de guardar los archivos en la D: como se hacía en la otra máquina, los guardéis en la C. Sólo tendréis que cambiarlo en la pestaña Opciones. Simplemente habrá que tener en cuenta estos pequeños detalles y no habrá problema para restaurar.

Ale, cómo me he enrollado. Espero que quede claro. Cualquier duda, dejadme un comentario!!!!

martes, 6 de mayo de 2008

Programar la parada/arranque de un servicio en Windows

Después de tiempo sin postear nada, aquí va una pequeña perla de sabiduría...
Algo bastante sencillo y que os puede sacar de algún apuro en algún momento.

Para programar la parada/arranque de un servicio de Windows, vamos a crear un archivo bat (lo_que_sea.bat) muy sencillito, e incluiremos

NET STOP "xxxxx"
NET START "xxxxx"

donde xxxxx es el nombre del servicio de Windows que queremos parar (NET STOP) o arrancar (NET START). El nombre es el que aparece en Servicios, no el nombre del ejecutable ni nada de eso, así de sencillo.

Bueno, yo aquí lo he hecho de manera que el script primero pararía el servicio y después lo arrancaría, lo que sería equivalente a reiniciarlo.

Y una vez tenemos el script y hemos comprobado que funciona, habría que programarlo para que se ejecute cuando sea requerido. Esto lo hacemos con la función de Tareas Programadas

Inicio --> Programas --> Accesorios --> Herramientas de Sistema --> Tareas Programadas

indicándole qué queremos ejecutar (el .bat) y cuando. Y ya está.
Estad un poco por el tema al menos la primera vez que se tenga que ejecutar, para comprobar que se hace bien.

Y por hoy, ya es bastante...! Con esto y un bizcocho...