... it's just the username I'm trying to work out for the other PC which I'm having difficulty with. I've now got it to give me an error of 'unknown username or bad password'.
Always use quotes around usernames; it's a good habit if you like to use a variable containing the user name. If the username contains spaces, it'll treat every word after the first as another parameter. I'll bet this is what's causing your problem.
MSG.exe is usable on all editions of Windows. Just make sure you can find it in the system root (C:\Windows\System32). If it's not there,
you can copy it over from a computer that does have it. (Afaik, there aren't any prerequisite dependencies.) It may not always be found, but it's always usable if you have it.
And yes, you can send it over the network, not just on the local machine. Like so...
msg "Trevor Ray" /SERVER:OTHERCOMPUTERNAME Hello you silly willy.
Use the /SERVER option to specify which computer to send it to. If omitted, it will just send the message locally (on the same computer it's running).
You can see your computer name in the System section of the Control Panel. (Windows Key + Pause/Break)
In this case, my computer's name is "Pantheon."
I've got it running just fine on three computers; two are Ultimate, and one is Home. All of them can send messages to each other just fine using this.
If you need to send messages between networks (over the internet), I guess you could use a VPN to hook networks together... I dunno. Never tried it.
Here's the output from msg /? (The help dialogue)
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.