net send computername some message here?
If you tried to do a net send with any version of windows since xp (vista/7/8), you've probably noticed that Microsoft removed net send entirely (with xp sp2, they disabled the service, but you could easily re-enable it).
Microsoft probably did this for security/anti-spam. Back in the days when I was in college, I would often be getting net send spam.
You can use msg.exe which will send a message to a terminal server (has to be a server vision of windows), or to display a popup on your local computer. If we combine that with psexec we have a way to replicate the functionality,
psexec \\remotecomputer msg.exe * /server:remotecomputer some message here
However this doesn't work very well if you have many computers (say a whole office?) that you need to send a message to.
So here's a script to make it easier if you have multiple computers:
rem --------beginning of netsend7.bat-------------------------
@echo off
rem this is for sending messages to computers using psexec and msg.exe
rem instead of net send. as net send doesn't exist in windows after xp
rem NEEDS PSEXEC.EXE in the the path or same folder.
if "%~1" == "" goto error
rem need to convert the list of computers
rem from comma to space delimited
for /f "tokens=*" %%c in ('echo %~1') do set comps=%%c
echo the computers are %comps%
rem extract the message from the command line
for /f "tokens=1,* delims= " %%p in ('echo %*') do set msg=%%q
echo the message is: %msg%
rem call the subroutine for each message.
for %%c in (%comps%) do call :submsg %%c
goto end
:submsg
set subcomp=%1
rem echo messaging %subcomp%, with message %msg%
psexec \\%subcomp% msg.exe * /server:%subcomp% %msg%
exit /b
:error
echo make sure to include quotes at the beginning and
echo end of the list of computers, but not the message,
echo usage "comp1,comp2,comp3,etc..." some message to the computers
rem check for psexec
where /q "$path:psexec.exe"
if %errorlevel% == 0 goto end
echo .
if not exist psexec.exe echo you need to have psexec.exe somewhere in the path.
:end
rem --------end of netsend7.bat-------------------------
If you want to accomplish the same thing without psexec, there is a guy who figured out a method using vbscript and setting a remoteRPC key in the registry on every computer you're messaging to:
No comments:
Post a Comment