私たちのオフィス環境には仮想マシン (Azure 経由) があります。この VM で Python スクリプトを実行し、取得したデータを分析します。
チームには 5 人がいますが、誰かが VM にいるときに他の 1 人が参加すると、すでに参加していた人が退出させられます。
はいまたはいいえボタンを使用して、誰かがオンラインになっているかどうかを尋ねる 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
表示されているコードは .bat/.cmd ファイルであり、PowerShell スクリプトではありません。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 スクリプト