業務中に相談しながら作業したいって時ありますよね。
しかし、静かな環境であったり、座席が離れていたりして、会話しにくい時があります。
そういう時、チャットツールやメッセージツールなりを使って、リアルタイムに話ができれば効率が上がります。
インターネットに繋がれば、クラウドのチャットサービスも利用できますが、ローカルLANのみの作業環境もあるのではないでしょうか。また、昨今のセキュリティ事情から、ツールのインストールが制限されていることも多いです。
そこで、作業で使っている端末の標準機能のみを使ったメッセージのやり取りを試したいと思います。
私の使っているWindows7で試してみようと思います。
まずは、昔よくつかっていた方法からやってみます。
自分のマシン: windows7 192.168.13.7/255.255.255.0
相手のマシン: windows7 192.168.13.8/255.255.255.0
ローカルLANにどちらも繋がっています。
とりあえず、CMD命令でDOS窓を起動して、net sendをしてみます。
C:\Users\user1>net send 192.168.13.8 "テスト送信"
このコマンドの構文は次のとおりです:
NET
[ ACCOUNTS | COMPUTER | CONFIG | CONTINUE | FILE | GROUP | HELP |
HELPMSG | LOCALGROUP | PAUSE | SESSION | SHARE | START |
STATISTICS | STOP | TIME | USE | USER | VIEW ]
C:\Users\user1>
あれ?windows7ではSENDが使えなくなっていますね。
じゃあ、他の手段を試してみましょう。
調べてみると、windows7やvista以降は、msg.exeに置き換わったようです。
ではmsgコマンドを使ってみます。
C:\Users\user1>msg
ユーザーにメッセージを送信します。
MSG {ユーザー名 | セッション名 | セッション ID | @ファイル名 | *}
[/SERVER:サーバー名] [/TIME:秒] [/V] [/W] [メッセージ]
ユーザー名 送信先のユーザー名を指定します。
セッション名 セッション名を指定します。
セッションID セッション ID を指定します。
@ファイル名 メッセージの送信先一覧のファイル (ユーザー名、
セッション名、セッション ID) を指定します。
* 指定されたサーバーのすべてのセッションにメッセージを
送信します。
/SERVER:サーバー名 送信先のサーバーを指定します (既定値は現在のサーバー)。
/TIME:秒 受信者の確認応答までの待ち時間を指定します。
/V 実行中に詳細情報を表示します。
/W ユーザーからの応答を待ちます。通常 /V オプションと共に
指定します。
メッセージ 送信するメッセージを指定します。指定しない場合は、入力
プロンプトが表示されるか、または stdin から読み取ります。
C:\Users\user1>C:\Users\user1>msg Console /server:192.168.13.8 "テスト送信"
セッション名の取得エラー 5
C:\Users\user1>
コマンドは有効そうですが、「セッション名の取得エラー 5」っていうエラーになりました。
リモートメッセージだからかな。。。。自分の端末に送ってみる。
C:\Users\user1>msg Console /server:192.168.13.7 "テスト送信"
C:\Users\user1>
自分の端末へは送信できたようです。
相手の端末に何か設定が必要そう。。
どうやら、msgコマンドの規定ではリモートの Windows 7 や Windows Vistaに対してメッセージを送付することができないようです。でも自分のPCへは送信できたので、レジストリで制限があるのだろうと予測して調べてみました。
やはり、変更をすれば動きそうなので、やってみます。
原因は、ターミナルサービスセッションに対するリモートからのRPC接続が無効に設定されているからのようです。
キー HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
値の名前 AllowRemoteRPC
タイプ REG_DWORD
値 0→1
C:\Windows\system32>reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Se
rver" /v AllowRemoteRPC /s
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
AllowRemoteRPC REG_DWORD 0x0
検索の完了: 該当 1 件
C:\Windows\system32>reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Serv
er" /v AllowRemoteRPC /d 1 /t REG_DWORD
値 AllowRemoteRPC は存在します。上書きしますか? (Yes/No) y
この操作を正しく終了しました。
C:\Windows\system32>reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Se
rver" /v AllowRemoteRPC /s
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
AllowRemoteRPC REG_DWORD 0x1
検索の完了: 該当 1 件
C:\Windows\system32>
※レジストリをコマンドで変更する時は、管理者権限でコマンドプロンプトを起動する必要があります。
では、早速、試してみます。
C:\Users\user1>msg Console /server:192.168.13.8 "テスト送信"
セッション名の取得エラー 5
C:\Users\user1>
あれ。。。。
調べてみると、制限があるようです。
- 対象はドメインのメンバーコンピューターのみ
- 管理者権限が必要
-
ファイアウォールを開ける必要がある
以下のグループポリシーを追加します。
Windows Vista, 7の場合
コンピューターの構成/ポリシー/Windows の設定/セキュリティの設定/セキュリティが強化された Windows ファイアウォール/セキュリティが強化された Windows ファイアウォール - LDAP://(略)/受信の規則/
新規作成して、リモートサービス管理をあける
Windows XPの場合
コンピューターの構成/ポリシー/管理用テンプレート/ネットワーク/ネットワーク接続/Windows ファイアウォール/ドメイン プロファイル/
Windows ファイアウォール: 着信リモート管理の例外を許可する
ということで、今回は、あきらめました(残念)