Deploy login popup window/message to batch of computers on network?

1

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.)

velkoon

Posted 2017-06-12T21:44:51.720

Reputation: 142

2What's wrong with sending an email? – DavidPostill – 2017-06-12T21:52:03.783

2I'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 – 2017-06-12T22:35:48.417

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?" – music2myear – 2017-06-13T03:34:13.207

Answers

2

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

PowerShell allows you to remotely notify users:

$PCLIST = Get-Content 'C:\TEST\PCLIST.TXT'

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.

music2myear

Posted 2017-06-12T21:44:51.720

Reputation: 34 957

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 – 2017-06-13T02:25:33.773

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 – 2017-06-13T04:47:25.433