우리 사무실 환경에는 Azure를 통한 가상 머신이 있습니다. 이 VM에서는 Python 스크립트를 실행하여 가져온 데이터를 분석합니다.
팀에는 다섯 명이 있는데, 다른 사람이 VM에 있는 동안 우리 중 한 사람이 계속할 때마다 이미 참여하고 있는 사람이 쫓겨납니다.
예 또는 아니요 버튼을 사용하여 누군가 켜져 있는지 묻는 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
이것은 분명히 사용 중인 컴퓨터에서만 작동합니다. 저는 이것을 VM에 푸시할 수 있는 방법을 찾고 싶었는데 누군가 '예'를 누르면 아무 일도 일어나지 않습니다. 누군가 '아니요'를 누르거나 VM에 아무도 없기 때문에 아무도 응답하지 않는 시간 지연이 있는 경우 자동으로 VM에 로그인하는 다른 배치 파일이 실행됩니다. 이것이 가능합니까?
지금까지 우리는 VM에 이러한 기능이 사전 설치되어 있으므로 cmd 또는 PowerShell에서 솔루션을 찾으려고 노력했지만, 우리 팀은 다양한 형태의 코드를 사용한 경험이 있으므로 작동하는 다른 형태를 기꺼이 시도할 것입니다.
Msg
그리고 Net Send
우리를 위해 일하지 않습니다. 우리는 Windows 10을 사용하고 있습니다.
감사해요,
거대한
답변1
표시되는 코드는 PowerShell 스크립트가 아닌 .bat/.cmd 파일입니다. PowerShell은 배치 파일을 사용하지 않고도 대화 상자/메시지 상자를 표시할 수 있습니다.
Net Send는 OS 도구이므로 컴퓨터나 사용자에게 이 작업을 수행할 수 있지만 무엇을 사용해야 하는지 알려주어야 합니다.
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 스크립트