如何向遠端桌面發送觸發操作的提示

如何向遠端桌面發送觸發操作的提示

我們的辦公環境中有一個虛擬機器(透過 Azure)。在此虛擬機器中,我們執行 Python 腳本來分析我們提取的資料。

我們團隊中有五個人,每當我們中的一個人繼續工作而其他人在虛擬機器中時,已經在工作的人就會被踢掉。

有沒有辦法推送虛擬機器的提示,詢問是否有人在,並帶有“是”或“否”按鈕?目前我在批次檔中有此程式碼:

@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 中尋找解決方案,因為虛擬機器已預先安裝了這些解決方案,但我們的團隊擁有使用不同形式的程式碼的經驗,因此願意嘗試其他可行的形式。

Msg並且Net Send不適合我們。我們使用的是 Windows 10。

謝謝,

長毛象

答案1

您顯示的程式碼是 .bat/.cmd 文件,而不是 PowerShell 腳本。 PowerShell,可以彈出對話框/訊息框,而無需求助於批次檔。

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/Send-PopupMessage.ps1

相關內容