远程Powershell弹出消息

时间:2015-03-12 15:09:11

标签: powershell vbscript scripting wsh

我正在尝试为登录目标计算机的所有用户创建一个远程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"

但是,我似乎找不到使用此方法生成远程弹出窗口的方法。

对于我如何实现目标,有没有人有什么好主意?

2 个答案:

答案 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原始回答