Enviar mensaje masivo a PCs con Windows en un Dominio

En la oficina estábamos tratando de optimizar el proceso de reinicio de un Servicio indispensable para gran parte de los usuarios de la empresa, pero sin caer en el viejo y obsoleto método del correo o la llamada telefónica. La duda era, ¿cómo les notificamos de forma fácil que debíamos reiniciar el Servicio?

Era indispensable que los usuarios cerrasen sus Apps que se conectaban a dicho "demonio", para así tener la tranquilidad de que esos programas no quedasen "frizados" y evitar el maremoto de llamadas y reclamos para luego matar uno a uno dicho proceso de forma remota.

En Windows, el comando que debemos usar es msg.exe, no disponible en Windows XP, pero si para Windows Vista y posteriores.

Primero, necesitábamos listar aquellos equipos que tenían la App dependiente de dicho Servicio, armar un listado con ellas y así ejecutar el comando msg en función a ese listado. Para ello, acudimos a nuestro System Center Configuration Manager, y mediante un Reporte, listamos todos los equipos que tenían la App instalada. Luego, generamos un archivo de texto ubicado localmente en nuestro equipo que contendría el listado de las PCs.

Una vez hecho ésto, generamos un .bat que contiene lo siguiente:

FOR /F %%p IN (C:\temp\pc.txt) DO msg * /server:%%p /time:600 El Servicio XYZ se reiniciara en 5 minutos. Muchas Gracias.

...donde:

C:\temp\pc.txt es nuestro archivo de texto que contiene el listado de PCs a enviar el mensaje.

msg * /server:%%p /time:600 el comando msg.exe, * en envía el mensaje a todas las sesiones del equipo destino, /server:%%p enviará el mensaje a los servidores declarados en la variable %%p, /time:600 el tiempo de vida del mensaje en la sesión de la PC (en segundos).

Ejecutamos como Administrador de Dominio nuestro .bat y el mensaje será enviado, mostrándose como:




Ejemplo básico:

Para enviar un simple mensaje a una PC particular, simplemente bastaría (mediante el Símbolo de Sistema) ejecutar también como Administrador:

C:\windows\system32\msg.exe * /server:nombrePC /time:10 Mensaje a enviar.

IMPORTANTE:

Para los equipos destino que tengan Windows XP, deberemos configurar la siguiente Clave de Registro:

HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server

El valor DWORD llamado AllowRemoteRPC debe estar seteado en 1. En el caso de tratarse de un Dominio Active Directory, podremos setear dicha clave mediante el uso de Preferencias vía Administración de Directivas de Grupo (las milagrosas Group Policies).
Publicar un comentario

Entradas populares de este blog

Botones capacitivos no vibran o encienden en Samsung S6

PARTE I: Instalar OCS Inventory NG (Server) en Ubuntu Linux 14.04 LTS