如何向远程桌面发送触发操作的提示

如何向远程桌面发送触发操作的提示

我们的办公环境中有一个虚拟机(通过 Azure)。在这个虚拟机中,我们运行 Python 脚本来分析我们提取的数据。

我们团队有五个人,每次我们中的一个人继续工作而其他人仍在 VM 中,那么已经在线的人就会被踢出。

有没有办法通过“是”或“否”按钮来推送虚拟机的提示,询问是否有人在线?目前,我在批处理文件中有以下代码:

@echo off

echo code=Msgbox("Is someone one the VM?", vbYesNo, "VM?") > "%temp%\popupBox.vbs"
echo WScript.Quit code >> "%temp%\popupBox.vbs"
cscript /nologo "%temp%\popupBox.vbs"

if %errorlevel%==7 call :cancel_tag
if %errorlevel%==6 call :ok_tag
exit /b 1

:ok_tag
echo Yes I am!
exit /b

:cancel_tag
echo No!
exit /b

这显然只适用于您正在使用的计算机,我希望找到一种方法将其推送到虚拟机上,如果有人按“是”,则什么也不会发生。如果有人按“否”或有时间延迟而无人应答(因为虚拟机上没有人),那么它将运行我们拥有的另一个批处理文件,该文件会自动为您登录虚拟机。这可行吗?

到目前为止,我们已经尝试在 cmd 或 PowerShell 中寻找解决方案,因为 VM 已预先安装了这些,但我们的团队有使用不同形式的代码的经验,因此愿意尝试其他可行的形式。

MsgNet Send我们来说不起作用。我们使用的是 Windows 10。

谢谢,

长毛象

答案1

您显示的代码是 .bat/.cmd 文件,而不是 PowerShell 脚本。PowerShell 可以弹出对话框/消息框,而无需借助批处理文件。

Net Send 作为一个操作系统工具,可以对机器或用户执行此操作,但您必须告诉它使用什么。

您没有表明您在 net send 调用中使用了任何 Net send 参数。您也没有说明目标是否与用户位于同一林/域中。

您无法使用以下不在同一域中的用户/计算机发送消息。计算机和名称必须可解析。

net send
The syntax of this command is:

NET
    [ ACCOUNTS | COMPUTER | CONFIG | CONTINUE | FILE | GROUP | HELP |
      HELPMSG | LOCALGROUP | PAUSE | SESSION | SHARE | START |
      STATISTICS | STOP | TIME | USE | USER | VIEW ]

你可以使用 msg.exe

msg
Send a message to a user.

MSG {username | sessionname | sessionid | @filename | *}
    [/SERVER:servername] [/TIME:seconds] [/V] [/W] [message]

  username            Identifies the specified username.
  sessionname         The name of the session.
  sessionid           The ID of the session.
  @filename           Identifies a file containing a list of usernames,
                      sessionnames, and sessionids to send the message to.
  *                   Send message to all sessions on specified server.
  /SERVER:servername  server to contact (default is current).
  /TIME:seconds       Time delay to wait for receiver to acknowledge msg.
  /V                  Display information about actions being performed.
  /W                  Wait for response from user, useful with /V.
  message             Message to send.  If none specified, prompts for it
                      or reads from stdin.

msg SomeDomainUserName /server:SomeDomainHostname message logoff

如果您想使用 PowerShell,您可以,有很多关于该主题的文章。

PowerShell 脚本向网络计算机发送消息

如何使用 powershell 在远程计算机中显示弹出消息

jdhitsolutions/发送弹出消息.ps1

相关内容