Windows XP and Windows Server 2003 contains MSG.EXE, a command-line tool to send a message to a user.
When you type MSG /?, you receive:
Send a message to a user. MSG \{username | sessionname | sessionid | @filename | *\} \[/SERVER:servername\] \[/TIME:seconds\] \[/V\] \[/W\] \[message\] username Identifies the specified username. sessionname The name of the session. sessionid The ID of the session. @filename Identifies a file containing a list of usernames, sessionnames, and sessionids to send the message to. * Send message to all sessions on specified server. /SERVER:servername server to contact (default is current). /TIME:seconds Time delay to wait for receiver to acknowledge msg. /V Display information about actions being performed. /W Wait for response from user, useful with /V. message Message to send. If none specified, prompts for it or reads from stdin.Using only standard commands, and sub-routines that use only standard commands, I have scripted SendMsg.bat to send a message to every available computer in the domain that you are logged into.
The syntax for using SendMsg.bat is:
SendMsg "Message"
Where Message is the text that you wish to send.
NOTE: SendMsg.bat uses CMPAvail.bat and ADComp.bat, which must be located in your PATH, or in the same folder as SendMsg.bat.
SendMsg.bat contains:
@echo off if \{%1\}==\{\} @echo Syntax: SendMsg "Message"&goto :EOF if \{%2\} NEQ \{\} @echo Syntax: SendMsg "Message"&goto :EOF setlocal ENABLEDELAYEDEXPANSION set message=%1 set message=%message:"=% for /f "Tokens=1 Delims=;" %%a in ('call adcomp') do ( set comp="%%a" call CMPAvail !comp! Status if "!Status!" EQU "Y" msg * /server:!comp! %message% ) endlocal
0 comments
Hide comments