Printer Status / Queue Status

Este es un problema relativamente “joven”, hasta hace poco tiempo no tenia que preocuparme del estado de los servidores de impresión ni del estado de las “colas”, pero ahora tengo un servidor de impresión crítico para el negocio y he generado este script que me muestra el estado del servidor y los trabajos que están en curso. Tengo una tarea programada que lo ejecuta cada hora y envía el reporte por correo electrónico.

Iniciamos las variables que necesitamos en nuestro script.

image

Comprobamos y generamos el fichero del reporte, y limpiamos los antiguos. En esta versión del script y por necesidades del servicio, acumulamos estos reportes en la carpeta de Report.

image

Escribimos el encabezado del informe que vamos a generar.

image

image

Creamos la primera fila con los títulos de los campos

image

Ahora comenzamos a comprobar el estado de las “colas” de nuestro servidor de impresión.

image

Una vez que obtenemos los datos, comprobamos el estado de la “cola” y determinamos el color que debería de tener …

image

Escribimos la fila con la información obtenida

image

Colocamos el pie del informe o en su defecto la leyenda que queramos indicar en función a los colores …

image

Enviamos el correo electrónico con el contenido del informe (reporte)…

image

La estructura que nos queda al final es la siguiente:

image

Check Disk Space for Multiple Server

No me digáis que nos habéis sufrido el “ataque loco” de esa aplicación que por la noches es capaz de fagocitar todo el espacio libre de los discos de nuestros servidores. Pues bien, yo me he generado un script que de manera gráfica me envía un mensaje de correo con el espacio disponible en los discos de los servidores.

Sencillo a la vez que sutil.

La primera parte del script, es de rigor, cargamos las variables que vamos a necesitar para controlar todo el proceso.

image

Leemos el contenido de nuestro fichero de servidores y limpiamos los informes antiguos, aunque en el caso que os muestro, se almacenan en la carpeta report para mantener un histórico de los mismos.

image

Generamos el diseño de nuestro formato de informe, en HTML

image

image

Creamos el formato de la tabla y escribimos las primeras columnas

image

Comenzamos a evaluar los espacios en disco de la lista de servidores que hemos leído inicialmente.

image

Una vez que disponemos de la información, escribimos la columna con los datos

image

Añadimos el “pie de página” con la leyenda de los colores que hemos utilizado.

image

Una vez que tenemos “toda”la información de nuestros servidores, comenzamos la generación y envío del correo electrónico.

image

Y la verdad es que el resultado, es digno

image

image

Como siempre, agradezco vuestros comentarios y/o aportaciones para mejorar el funcionamiento y/o rendimiento del script y espero que os sirva de ayuda.

Network Protocol Time (windows OS)

Desde hace bastante tiempo, siempre he sufrido los problemas ocasionados por la des sincronización horaria de las maquinas con OS Windows. Pues bien, hace poco he generado un script en PowerShell que me permite tener un control sobre la sincronización de los controladores de dominio y sobre mis dos servidores que utilizo para que sincronicen la hora con las fuentes externas.

Mi infraestructura esta diseñada de la siguiente manera;

– Dos DataCenter y en cada uno de ellos 2 servidores de sincronización de tiempos (NTP01 y NTP02) con 8 fuentes externas; 3 de un proveedor (en tres continentes diferenciados) y 5 de otro (en 5 continentes diferenciados)

El resto de los controladores de dominio de la organización, sincronizan la hora con estos dos servidores, en orden inverso; primero el 02 y segundo el 01. Inicialmente el controlador de dominio con el ROL de PDC es el que marca la hora para el resto de maquinas de la infraestructura.

El script se divide en las siguientes partes;

Definimos las variables del mensaje de correo electrónico

image

Comprobamos que los ficheros que tenemos de control y si existe el fichero que utilizamos para almacenar el contenido de la comprobación lo borramos. Aprovechamos para crear el fichero correspondiente a la comprobación.

image

A continuación cargamos la variable para realizar las comprobaciones de tiempo sobre las maquinas indicadas.

image

Ejecutamos el comando de comprobación de tiempos para cada servidor, cargamos el ficheros de datos inicial y parseamos el contenido al fichero final de reporte.

image

Una vez que completamos el contenido de los ficheros con la comprobación, evaluamos si cualquiera de ellos tenga un  delay superior o inferior a  10s con un offset superior a 250.

image

Si esto valores se superan o son iguales a los valores de la comprobación, enviamos el mensaje de correo electrónico. En este punto, también podemos ampliar el script con la ejecución del comando de sincronización horaria en aquellos servidores que sufren este desfase. Inicialmente, en esta primera versión del script, el scope solo es la comprobación de la correcta sincronización de los mismos.

image

Este script, almacena un reporte cada vez que es ejecutado en la ruta indicada. El formato de mi estructura para este y otros script es:

image

Así controlamos la sincronización de nuestros servidores. Como siempre, estoy abierto a cualquier tipo de comentarios o mejoras que se puedan implementar en el script, para mejorar el control de la sincronización de tiempos en los servidores.