Is there a third-party Windows 7/8/10 software solution where I can deploy messages/notes to a list of computers on my network after I work on them? I'm in IT and sometimes when we do department-wide modifications to machines, we get e-mails asking "Why did you touch my computer? What did you do? I saw you logged in!" etc.

I'd like to be able to remotely send batch notices that detail the modifications we made to their computers. I'd like the message to pop up in a window (that appears only once on login, then never again) that they can then close.

(We do already manage most of our computers on our network using LANDESK, so if someone has a clear & easy solution through that, that might work too.)

  • 2
    What's wrong with sending an email?
    – DavidPostill
    Jun 12 '17 at 21:52
  • 2
    I'm unwilling to manage an email list of the researchers who leave, new arrivals, where they're located and have relocated to, etc. (I'm not notified of such changes and it would be hard to set up communications with all professors in the college so that I am.) It's a pretty dynamic environment in terms of who uses which machines
    – velkoon
    Jun 12 '17 at 22:35
  • Man, I feel that pain. Me "where's so and so with all the special permissions" HR "we fired him 3 weeks ago" Me "When were you planning on telling me?" Jun 13 '17 at 3:34

From here: https://stackoverflow.com/a/29017619/704977

PowerShell allows you to remotely notify users:


ForEach ($computer in $PCLIST) {

    Invoke-Command -ComputerName $computer -Scriptblock {
        $GetUserName = [Environment]::UserName
        $CmdMessage = {C:\windows\system32\msg.exe * 'Hello' $GetUserName 'This is a test!'}

        $CmdMessage | Invoke-Expression


You could use either the computer names in a text file like the above code does, or you could simply replace the $computer after Invoke-Command with a specific computer name.

This will likely require administrative privileges on the remote computer.

  • So cool! Thank you. FYI for Googlers: The message appears on the login screen if no one's logged in. I ran winrm quickconfig in powershell as Admin on host and client machines before being able to get the script to work. If winrm quickconfig gives you an error mentioning Public connection types, run these in Powershell: 1.$networkListManager = [Activator]::CreateInstance([Type]::GetTypeFromCLSID([Guid]"{DCB00C01-570F-4A9B-8D69-199FDBA5723B}")) 2.$connections = $networkListManager.GetNetworkConnections() 3.$connections | % {$_.GetNetwork().SetCategory(1)}
    – velkoon
    Jun 13 '17 at 2:25
  • Oh, and on the host machine (the one you're managing from) you'll need to enable Powershell remoting access for each computer you plan on managing. Luckily there is a Powershell (Admin) command that enables Powershell remoting for all computers: Set-Item WSMan:\localhost\Client\TrustedHosts * (you may then need to run Restart-Service winrm -Force)
    – velkoon
    Jun 13 '17 at 4:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.