我正在尝试为登录目标计算机的所有用户创建一个远程PowerShell弹出窗口。
我找到了一个创建弹出窗口的简单脚本:
(New-Object -ComObject wscript.shell).popup("THIS IS A TEST MESSAGE")
但是,我无法在远程设备上运行此脚本。我们在我们的环境中限制了powershell远程处理,所以我不能在powershell中使用invoke-command cmdlet。
我过去通过使用Invoke-WmiMethod cmdlet绕过此限制并远程创建新进程以获得所需的结果,例如:
Invoke-WmiMethod -Class Win32_Process -ComputerName $computer -Name Create -ArgumentList "C:\Program Files\Test\Test.exe -argument"
但是,我似乎找不到使用此方法生成远程弹出窗口的方法。
对于我如何实现目标,有没有人有什么好主意?
答案 0 :(得分:3)
我想出来了。我使用msg.exe应用程序显示我的消息,并使用powershell Invoke-WmiMethod在PC上本地执行命令,因为我们禁用了远程消息:
Invoke-WmiMethod -Class Win32_Process -ComputerName HostPC -Name Create -ArgumentList "C:\Windows\System32\msg.exe * This is a test message."
答案 1 :(得分:2)
我使用Powershell编辑了上面的脚本示例,以便更容易使用变量运行,因此您不必每次都编辑该文件。
$server = read-host -prompt 'Input server name';
$message = read-host -prompt 'add text string';
Invoke-WmiMethod -Class win32_process -ComputerName $server -Name create -ArgumentList "c:\windows\system32\msg.exe * $message"
感谢Maumee River原始回答