Active Directory: envíe mensajes a todos los usuarios actualmente conectados (msg.exe)
¿Recuerdas el comando net send? ¿Y recuerdas las preocupaciones de seguridad? La semana pasada jugué con msg.exe. Msg es el “nuevo” envío neto. Intenté enviar un mensaje a todos los usuarios y computadoras de mi dominio. ¿Por qué? Quería indicar a todos los usuarios que cerraran todos los programas abiertos. Y ahora quiero conservar y compartir este conocimiento en forma de esta publicación de blog.
Introducción (msg.exe)
Msg envía un mensaje a un usuario. Este usuario debe iniciar sesión como usuario de dominio (Perfil de dominio). Lo que significa que lo siguiente sólo funciona en un entorno de dominio. Para técnicos de red: msg utiliza el puerto 445 (SMB/CIFS). Si envía un mensaje a un usuario, debe proporcionar un nombre de computadora y un nombre de usuario. O puedes intentar enviarte un mensaje a ti mismo:
msg * "Hallo, this is a test!"
* significa que el mensaje se envía a todos los usuarios registrados. Tenga en cuenta que Windows es un sistema operativo multiusuario. ¡No te olvides de los demás! ?
Requisitos previos
El titular es algo engañoso. Sí, vamos a enviar mensajes a todos los usuarios, pero en realidad a todos los ordenadores. Supongamos que todas sus computadoras cliente están almacenadas en una unidad organizativa específica llamada Estaciones de trabajo. Quiere informar a todos los usuarios que iniciaron sesión en estas computadoras. Voy a utilizar Invoke-Command. Asegúrese de que sus computadoras cliente acepten comandos remotos de PowerShell. Puede ejecutar Enable-PSRemoting en cada uno de ellos. O puede configurar WinRM mediante Políticas de grupo:
Políticas de grupo: habilitación de WinRM para sistemas operativos de cliente Windows (Windows 10, Windows 8, Windows 7)
Resumen
- Todas las computadoras deben residir en el mismo dominio.
- WinRM debe habilitarse en las computadoras cliente ejecutando Enable-PSRemoting o configurándolo a través de Políticas de grupo, como se describe en el enlace anterior. Tenga en cuenta que en los sistemas operativos Windows Server 2012/2016, WinRM está habilitado de forma predeterminada, pero no en los sistemas cliente de Windows.
Envío de mensajes a todos los usuarios: PowerShell y Msg.exe en acción
El siguiente resumen obtiene todos los nombres de computadora de las estaciones de trabajo OU en el dominio sid-500.com. Luego se ejecuta el mensaje para cada computadora en las estaciones de trabajo de la unidad organizativa. El mensaje se envía a todos los usuarios que actualmente están conectados.
(Get-ADComputer -SearchBase "OU=Workstations,DC=sid-500,DC=com" -Filter *).Name | Foreach-Object {Invoke-Command -ComputerName $_ {msg * "Please close all open files. The Server will be shut down in 5 Minutes"}}
Client01 es miembro de OU Workstation. Client01 recibe el mensaje.
¡Diviértete jugando con msg!


