『MSG』コマンド
下準備
メッセージ送信先のPCで、以下のコマンドを実行する。なお、実行は管理者権限で行うこと。
C:\> reg add "HKEY\SYSTEM\CurrentControlSet\Control\Terminal Server" /v AllowRemoteRPC /t REG_DWORD /d 1
.コマンド実行
次に、送信側で以下のようにコマンドを実行
C:\> msg 送信先ユーザ名 /SERVER:送信先のIPアドレス メッセージ内容
これで、ポップアップでメッセージが送信される。
-----------------------
実証例
メッセージ送信先PCを kazuya/kazuya-HP 192.168.1.9 とする。
WinWol.exe で、起動状態を確認
pcwakeup.exe /MagicBoot.exeなど、boot コマンド送信起動は失敗
直接、kazuya-HPを起動
「リモートデスクトップ接続」で、kazuya-HPに接続
何も設定しない状態でz800PC から、msg コマンドを送信してみる
C:\WINDOWS\system32>msg kazuya /kazuya-HP:192.168.1.9 "調子はどうですか?"
kazuya/kazuya-hp は存在しないか、切断されています。
kazuya-HPの C:\windows\regedit.exeを起動レジストリエディタを開く
「HKEY\SYSTEM\CurrentControlSet\Control\Terminal Server」を確認。
無ければ、
管理者権限でコマンドプロンプトを起動、コマンド実行
C:\WINDOWS\system32>reg add "HKEY\SYSTEM\CurrentControlSet\Control\Terminal Server" /v AllowRemoteRPC /t REG_DWORD /d 1
エラー: キー名が無効です。
"REG ADD /?" と入力すると使用法が表示されます。
----
C:\WINDOWS\system32>REG ADD /?
REG ADD キー名 [/v 値名 | /ve] [/t 種類] [/s セパレーター] [/d データ] [/f]
[/reg:32 | /reg:64]
キー名 [\\コンピューター\]完全キー
コンピューター リモート コンピューター名 - 省略した場合、現在の
コンピューターが既定として使われます。HKLM と HKU
のみリモート コンピューターで利用できます。
完全キー ルートキー\サブキー
ルートキー [ HKLM | HKCU | HKCR | HKU | HKCC ]
サブキー 選択したルートキーの下のレジストリ キーの完全な名前。
/v 選択したキーの下の追加される値名。
/ve キーの空の値名 (既定値) を追加します。
/t レジストリ キーのデータの種類
[ REG_SZ | REG_MULTI_SZ | REG_EXPAND_SZ |
REG_DWORD | REG_QWORD | REG_BINARY | REG_NONE ]
省略された場合、REG_SZ を想定します。
/s REG_MULTI_SZ のデータ文字列でセパレーターとして使う文字を 1 つ
指定します。省略した場合、"\0" がセパレーターとして使われます。
/d 追加されているレジストリ値名へ割り当てられるデータ。
/f プロンプトなしで既存のレジストリ エントリを強制的に上書きします。
/reg:32 32 ビット レジストリ ビューを使用して
キーにアクセスする必要があることを指定します。
/reg:64 64 ビット レジストリ ビューを使用して
キーにアクセスする必要があることを指定します。
例:
REG ADD \\ABC\HKLM\Software\MyCo
リモート コンピューター ABC にキー HKLM\Software\MyCo を追加します
REG ADD HKLM\Software\MyCo /v Data /t REG_BINARY /d fe340ead
値を追加します (名前: Data、種類: REG_BINARY、データ: fe340ead)
REG ADD HKLM\Software\MyCo /v MRU /t REG_MULTI_SZ /d fax\0mail
値を追加します (名前: MRU、種類: REG_MULTI_SZ、データ: fax\0mail\0\0)
REG ADD HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d ^%systemroot^%
値を追加します (名前: Path、種類: REG_EXPAND_SZ、データ: %systemroot%)
注意: 文字列を展開するには、キャレット記号 ( ^ ) で囲んでください。
HKLMキーは無かったので、HKEYとしたのが間違いか?。
HKLMキーで実行
C:\WINDOWS\system32>reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v AllowRemoteRPC /t REG_DWORD /d 1
値 AllowRemoteRPC は存在します。上書きしますか? (Yes/No) yes
この操作を正しく終了しました。
再度、z800PC から、msg コマンドを送信してみる。
C:\WINDOWS\system32>msg kazuya /kazuya-HP:192.168.1.9 "調子はどうですか?"
無効なパラメーター
ユーザーにメッセージを送信します。
MSG {ユーザー名 | セッション名 | セッション ID | @ファイル名 | *}
[/SERVER:サーバー名] [/TIME:秒] [/V] [/W] [メッセージ]
ユーザー名 送信先のユーザー名を指定します。
セッション名 セッション名を指定します。
セッションID セッション ID を指定します。
@ファイル名 メッセージの送信先一覧のファイル (ユーザー名、
セッション名、セッション ID) を指定します。
* 指定されたサーバーのすべてのセッションにメッセージを
送信します。
/SERVER:サーバー名 送信先のサーバーを指定します (既定値は現在のサーバー)。
/TIME:秒 受信者の確認応答までの待ち時間を指定します。
/V 実行中に詳細情報を表示します。
/W ユーザーからの応答を待ちます。通常 /V オプションと共に
指定します。
メッセージ 送信するメッセージを指定します。指定しない場合は、入力
プロンプトが表示されるか、または stdin から読み取ります。
C:\WINDOWS\system32>msg kazuya /SERVER:192.168.1.9 "調子はどうですか?"
セッション名の取得エラー 5
kazuya-HPを再起動、レジストリを読み込み直す。
レジストリを確認するが、設定したはずのキーが見つからない。
サービスで、Terminal Serverを確認 ・・・無し
RemoteRPCを確認
Remote Access Auto Connection Manager 「手動」 ・・・「自動」にして、サービスを開始
Remote Procedure Call (RPC) Locator 「手動」 ・・・「自動」にして、サービスを開始
RemoteRegistry 「無効」 ・・・「自動」にして、サービスを開始
Routing and Remote Access 「無効」 ・・・「自動」にして、サービスを開始
RemoteAccess ・・・「自動」にして、サービスを開始
Remote Desktop Configuration ・・・「自動」にして、サービスを開始
Remote Desktop Services ・・・「自動」にして、サービスを開始
Remote Desktop Services UserMode Port Redirector ・・・「自動」にして、サービスを開始
kazuya-HPを再起動、サービスを読み込み直す。
再度、z800PC から、msg コマンドを送信してみる。
C:\WINDOWS\system32>msg kazuya/kazuya-HP 192.168.1.9 "調子はどうですか?"
TEST
C:\WINDOWS\system32>query session /server:kazuya-HP
セッション名取得エラー 5
エラー [5]:アクセスが拒否されました。
「セッション名の取得エラー5」と表示される場合はRPCリモートプロシージャコールが無効になっている場合があります。
制限があるようです。
- 対象はドメインのメンバーコンピューターのみ
- 管理者権限が必要
- ファイアウォールを開ける必要がある
以下のグループポリシーを追加します。
Windows Vista, 7の場合
コンピューターの構成/ポリシー/Windows の設定/セキュリティの設定/セキュリティが強化された Windows ファイアウォール/セキュリティが強化された Windows ファイアウォール - LDAP://(略)/受信の規則/
新規作成して、リモートサービス管理をあける
Windows XPの場合
コンピューターの構成/ポリシー/管理用テンプレート/ネットワーク/ネットワーク接続/Windows ファイアウォール/ドメイン プロファイル/
Windows ファイアウォール: 着信リモート管理の例外を許可する