将消息发送到远程PC而不依赖于WinRM服务

时间:2015-05-23 10:18:25

标签: powershell winrm

我想知道是否可以在不依赖WinRM服务的情况下将系统托盘消息或弹出消息框发送到远程PC。每次我尝试我都会收到错误,因为该服务在我正在测试的地方没有激活,并且无法通过正常的用户级别访问激活。

对于系统托盘msg我使用此代码(适用于我所在的本地PC)

[void]   
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$objNotifyIcon = New-Object System.Windows.Forms.NotifyIcon 
$objNotifyIcon.Icon = "c:\temp\shake.ico"
$objNotifyIcon.BalloonTipText = "Message Text" 
$objNotifyIcon.BalloonTipTitle = "Do you agree?"
$objNotifyIcon.Visible = $True 
$objNotifyIcon.ShowBalloonTip(10000)

对于弹出式消息,我使用此代码

[void
System.Reflection.Assembly]::LoadWithPartialName(‘Microsoft.VisualBasic’)
$result = [Microsoft.VisualBasic.Interaction]::MsgBox(“Do you agree?”,     
‘YesNoCancel,Question’, “Respond please”)
switch ($result) 
{ ‘Yes’ { “Ah good” } ‘No’ { “Sorry to hear that” } ‘Cancel’ { “Bye…” } }

请注意,这些是从各种PowerShell脚本站点获取的示例代码,而不是我自己的(如果有人识别代码)。

1 个答案:

答案 0 :(得分:2)

您需要WinRM才能使用PowerShell远程处理。

如果您具有文件访问权限和WMI访问权限,则可以将文件复制到远程计算机并直接使用psexec或WMI调用powershell -File c:\temp\myscript.ps1作为当前用户的交互式进程在远程计算机上。

不在一边:如果您无权配置WinRM服务,那么您可能也不允许向远程计算机发送消息,因为这是管理员的工作(在这种情况下,您将有权配置WinRM。)