Link to home
Start Free TrialLog in
Avatar of MU-IT
MU-IT

asked on

How can I send a broadcast alert message to my Win 7 AD-joined machines?

I'm beginning to deploy Windows 7 to the university, and would like to replicate our Novell broadcast message feature in our new AD environment.  

We run SCCM, so I understand that a possibility exists there, but we need it to be a more immediate message if it were a physical security situation.

Avatar of cdesigner
cdesigner
Flag of Russian Federation image

Avatar of NotVeryFat
NotVeryFat

Crude, but very basic, would MSG work? (Type msg /? in a command prompt)
Avatar of MU-IT

ASKER

This doesn't send messages out to everyone in the domain, just the machine I'm on.
Do you need a free solution?
Avatar of MU-IT

ASKER

Preferebly.  Do you have a pay-for solution in mind?
you could roll this out via GP - http://www.winpopup.net/

"LAN winpopup software supports mass messaging to all your PC users. This option help to notify about important events"
Contact them:
http://www.cezeo.com/solutions/one-way-instant-messenger/

They have huge discounts for .edu
ASKER CERTIFIED SOLUTION
Avatar of omgang
omgang
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of MU-IT

ASKER

In just trying a machines IP, with the firewall off and the registry key in place for "Allow RPC" per:  

http://social.technet.microsoft.com/Forums/en-US/itprovistanetworking/thread/257ac6da-1d9f-4354-8e40-128e11c319ee/

I still get the "Error 1722 getting session names"
Do you have admin rights on the machine?
OM Gang
And are you issuing this exact command?
msg * /SERVER:192.168.1.25 /TIME:15 This is a test message

OM Gang
Avatar of MU-IT

ASKER

Yes, that exact command (with the appropriate IP in it's place), and my id is in the administrators group.
Try to your own IP address.
If possible try logging in as local admin and issuing the command.  I recall receiving errors on machines when running as standard user.
OM Gang
Avatar of MU-IT

ASKER

I've got it working with the command: msg /SERVER:192.168.1.25  * This is a test message

after additionally  changing the registry key fDenyTSConnections from 1 to 0, and applying a reboot.

using "msg /Server:* * this is a test message" doesn't  work.
using "msg /server:machinename * this is a test message" doesn't work.

I worry about an iterative script through our various subnets (we've got a Class b) taking longer than whatever event we're trying to announce.  It takes a few seconds just to do a single machine.

With the delays I have built in for passing the admin password and the delay to let the previous command to process before issuing the next command I am expecting 30-50 seconds per 100 messages.  Might be able to tweak that down a bit with further testing.
Options to speed up messge delivery include mulitple scirpts each targeting some number of machines and a single script to call them all.....does that sound a bit like 'Lord of the Rings'?  "one ring to rule them all......
Sorry, I often get sidetracked.
Of course msg.exe may not be suitable for your situation.  I was just pointing out that it can be used.
OM Gang
Avatar of MU-IT

ASKER

No, I believe it will work perfectly for us.  I've trimmed some stuff out of the script, and am working on the iterative subnet functionality.  

Points forthcoming.

Avatar of MU-IT

ASKER

Thanks!
Avatar of MU-IT

ASKER

It would be of further help if you could provide your subnet example, please.
Example to issue the message to ip addresses 25 through 50 on the subnet specified in the recipient file.  For total coverage you'd use 1 to 254
OM Gang

Add to declarations
Dim intCounter, FirstAddy, LastAddy

FirstAddy = 25
LastAddy = 50




            'iterate through each line in the text file and issue the shell command for each
      Do While Not objTextFile.AtEndOfStream
            strDestComputer = objTextFile.ReadLine      '<---- each entry is a subnet, e.g. 192.168.1.
      For intCounter = FirstAddy to LastAddy
                    strFullCmd = strRunAsCmd & Chr(34) & strNetCmd & strDestComputer&intCounter & " /TIME:" & intDelay & " " & _
                                    strUserName & " " & strMsg & Chr(34)
                    wshShell.Run strFullCmd
                    WScript.Sleep intSleep
                    wshShell.SendKeys strPass & "~"
                          'pause execution for a bit to allow previous command to execute
                    WScript.Sleep 250
                Next
      Loop








              'broadcast - get subnet ID from text file and send a message to all available addresses
          For intCounter = FirstAddy to LastAddy
                  'build the full command we want to issue in the shell
              strFullCommand = strCommand & " " & strRecipMachine & intCounter & " " & strFullMessage
              wshShell.Run strFullCommand
              'MsgBox strFullCmd, OK, "command"
          Next
Sorry, disregard the code at the bottom of my last post (the code that begins with 'broadcast.....) as that's what I copied from one of my scripts.
OM Gang