SQLの窓

2018年03月09日


Windows7 と Windows10 : MSG コマンドを使えるようにするには ( msg.exe )

職場と自宅と両方でテストしました。職場ではファイヤーウォールの設定が必要だったのですが、自宅では必要無いようでした。職場の 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 から読み取ります。
【Windows7の最新記事】
posted by lightbox at 2018-03-09 18:13 | Windows7 | このブログの読者になる | 更新情報をチェックする
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり