職場と自宅と両方でテストしました。職場ではファイヤーウォールの設定が必要だったのですが、自宅では必要無いようでした。職場の PC は他にもセキュリティの設定が入っているので、それが影響しているかもしれません。ファイヤーウォール側の意味あいはイマイチ良く解ってませんが、もし 1722 となった場合は設定してみるとうまく行くかも解りません。 通常は、5 のエラーコードが返って来ますが、一番重要な AllowRemoteRPC を 1 にする設定がなされていなくても 5 のエラーコードが返ると思いますが、経験上 5 は資格情報のようなので、同一ユーザーで同一パスワードの場合は何も問題なく実行できると思います。 これは、net view コマンドも同様で、同一ユーザーで同一パスワードの場合は表示されると思います。別ユーザであったり、パスワードが異なる場合は、コントロールパネルの資格情報マネージャでその PC に向けての PC名、ユーザ、パスワードを記憶させておけば MSG も NET VIEW も使用可能でした。( 登録するユーザとして Adminstrator を使うと、User グループのユーザから、通常管理者ユーザへ送れました。ひょっとしたら、資格情報として登録する場合 Administrators グループなら良いのかもしれませんが、そこまでテストしていません。しかし、どうせ登録するのならば、Administrator のほうが管理しやすいでしょう。 ) Windows10 でコントロールパネルを表示するのは、ファイル名を指定して実行で、control と入力するといいと思います。( あるいは、デスクトップアイコンとしてコントロールパネルを表示するようにテーマの設定から行います ) ファイヤーウォールの設定 セッション名の取得エラー 1722 となりました。以下の設定を行って、AllowRemoteRPC を 1 にして、両方の PC に同一ユーザ名と同一パスワードで動作確認しました。( Windows7 => Windows10 と Windows10 => Windows7 ) とにかく設定変更したら再起動したほうが問題を排除しやすいと思います。(リモートアクセスで開いた側の PC から自分に送ったらリモートアクセス側に戻るという面白い現象も経験しました。)( 全て有効にします )
C:\Users\lightbox>msg lightbox /server:pc-024 こんにちは セッション名の取得エラー 5セッション名の取得エラー 5 のエラーは、AllowRemoteRPC の設定と ユーザ・パスワードの不一致で起こると思われます コントロールパネルの資格情報マネージャーで Windows 資格情報をあらかじめ登録しておくと利用できます。Adminstrator を登録しておくと他のユーザでも使えるようです( 何か他に条件があるのかもしれませんがテストした内容からするとそんな感じです ) 環境によっては、pc 名では無く ipアドレスで直接指定するといいと思います。メッセージを受けるほうの PC で、以下のレジストリ( AllowRemoteRPC )を 1 に変更します
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server] "AllowRemoteRPC"=dword:00000001
▼ デフォルトに戻す
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server] "AllowRemoteRPC"=dword:00000000
レジストリの位置を開くスクリプト
strParam = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server"
' レジストリ書き込み用
Set WshShell = CreateObject( "WScript.Shell" )
' WMI用
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
' レジストリエディタが最後に開いていたキーの登録を行います
strPath = "Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\LastKey"
if GetOSVersion() >= 6 then
strRegPath = "コンピューター\" & strParam
else
strRegPath = "マイ コンピュータ\" & strParam
end if
' 既に regedit が実行中の場合はいったん終了させます
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'regedit.exe'")
For Each objProcess in colProcessList
' 最後のウインドウの位置とサイズを保存する為の終わらせ方
WshShell.AppActivate("レジストリ エディタ")
Wscript.Sleep(500)
WshShell.SendKeys ("%{F4}")
Wscript.Sleep(500)
' 上記終わらせ方が失敗した時の強制終了
on error resume next
objProcess.Terminate()
on error goto 0
Next
WshShell.RegWrite "HKCU\" & strPath, strRegPath, "REG_SZ"
' レジストリエディタを起動します
Call WshShell.Run( "regedit.exe" )
' レジストリエディタが終わるまで待つ場合は以下のようにします
' Call WshShell.Run( "regedit.exe", , True )
REM **********************************************************
REM OS バージョンの取得
REM **********************************************************
Function GetOSVersion()
Dim colTarget,str,aData,I,nTarget
Set colTarget = objWMIService.ExecQuery( _
"select Version from Win32_OperatingSystem" _
)
For Each objRow in colTarget
str = objRow.Version
Next
aData = Split( str, "." )
For I = 0 to Ubound( aData )
if I > 1 then
Exit For
end if
if I > 0 then
nTarget = nTarget & "."
end if
nTarget = nTarget & aData(I)
Next
GetOSVersion = CDbl( nTarget )
End Function
MSG コマンドの引数
MSG {ユーザー名 | セッション名 | セッション ID | @ファイル名 | *}
[/SERVER:サーバー名] [/TIME:秒] [/V] [/W] [メッセージ]
ユーザー名 送信先のユーザー名を指定します。
セッション名 セッション名を指定します。
セッションID セッション ID を指定します。
@ファイル名 メッセージの送信先一覧のファイル (ユーザー名、
セッション名、セッション ID) を指定します。
* 指定されたサーバーのすべてのセッションにメッセージを
送信します。
/SERVER:サーバー名 送信先のサーバーを指定します (既定値は現在のサーバー)。
/TIME:秒 受信者の確認応答までの待ち時間を指定します。
/V 実行中に詳細情報を表示します。
/W ユーザーからの応答を待ちます。通常 /V オプションと共に
指定します。
メッセージ 送信するメッセージを指定します。指定しない場合は、入力
プロンプトが表示されるか、または stdin から読み取ります。
|
|
【Windowsの最新記事】
- 空の zip ファイル / VBScript で作成可能
- Windows 機能の呼び出し
- Windows : shell:sendto は、sendto だけで開くようです。
- Shell コマンドで開くフォルダ : HTA でクリックすると実行可能
- URI スキーム : Windows Update 画面を表示するコマンド
- エクスプローラを再起動して、ショートカットの拡張子( .LNK ) を表示するようにする / VBScript
- Explorer.exe のコマンドライン を使用して CLSID で特殊フォルダを開く / この記事では table のコマンドラインをクリックするとクリップボードにコピーできます。
- Windows でパスワードを忘れた場合はインストールディスクがあれば簡単に復旧できるのは解った。
- VBScript : めんどくさいフォルダを開く
- Windows7 / 10 : イベントビュアーのログの設定をコマンドラインより行う(クリアを含む)
- Windows のエクスプローラのオプションダイアログを表示する rundll32.exe の引数
- 『Windows 10、バージョン 1709 の機能更新プログラム』の記録
- いまさらですが、『クリーンアップ』を管理者権限で起動して、Windows Update 関連やシステム関連の比較的大きなファイルを削除する
- Windows SDK の mt.exe を使用して、既存の exe を常に管理者権限で起動を求めるように変更する
- ファイル名を指定して実行と、『管理者権限』
- RICOHのデジタルフルカラー複合機でスキャンしたPDFを自分のPCに保存する
- 日本語入力で、変換ができなくなったら『辞書を修復』
- 広告から感染するウィルスに対する具体的な対処法について
- ファイル名を指定して実行(管理者)
- フォルダのセキュリティ設定


( 全て有効にします )




