最近在編寫FTP上傳數據的批處理時,須要用到局域網內傳輸數據來提示錯誤,忽然想起忘了N久沒用的命令(net send), 結果在win7 下cmd運行net send /? 運行失敗。通過百度大神的搜索,原來從vista以後net send 命令被微軟取消了,再次百度,WIN 7局域網內發送消息可使用MSG 命令。在罈子裏找了很久也沒找着真正的使用方法,就本身百度,google 終於搞定了,發出來讓你們看下。。。。。
MSG 系統自帶使用幫助
C:\Windows\system32>MSG
將消息發送給用戶。
MSG {username | sessionname | sessionid | @filename | *}
[/SERVER:servername] [/TIME:seconds] [/V] [/W] [message]
username 標識指定的用戶名。
sessionname 會話名。
sessionid 會話 ID。
@filename 識別這樣一個文件,該文件含有將所發消息發送到的用戶名、會話名和會話標識號的列表。
* 給指定服務器上的全部會話發送信息。
/SERVER:servername 要聯繫的服務器(默認值是當前值)。
/TIME:seconds 等待接收器確認消息的時間延遲。
/V 顯示有關執行的操做的信息。
/W 等待用戶的響應,跟 /V 一塊兒有用。
message 要發送的消息。若是沒有指定,發出提示,或者從 stdin讀取。
如下代碼均在開始---執行------CMD內測試。
測試條件:本機IP:192.168.1.200 測試電腦IP:192.168.1.201 在同一局域網內,而且能夠ping通。
1.根據以上MSG使用方法進行本機調試驗證。 MSG /server:192.168.1.200 * "Hello" ----------------->>>>> 運行成功,彈出消息對話框。
2.而後再進行局域網內兩臺電腦通訊驗證。 MSG /server:192.168.1.201 * "Hello" ---------->>>>> 運行失敗,報錯。獲取會話名稱時的錯誤 1722。
3.再次百度,在CSDN的一個帖子上有一個辦法,CMD內regedit修改註冊表HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\CONTROL\TERMIMAL SERVER內的ALLOWREMOTERPC的值修改成1 (默認爲0),由於在XP系統下net send 命令須要開啓Messenger信使服務,可是在win7內沒有此項服務,因此須要修改註冊表來使win7系統能夠局域網內發送信息,可XP相似。
4.此時驗證仍是失敗,把測試電腦和本機的防火牆所有關閉,把測試電腦的註冊表同上也修改OK, 再次驗證 MSG /server:192.168.1.201 * "Hello"運行失敗,報錯 192.168.1.201不存在或鏈接失敗。。。最後找來找去,用GOOGLE 搜索發現了最終的答案 。。打開控制面板,雙擊憑據管理器,點擊添加windows憑據,第一行寫測試電腦的IP地址,第二行寫測試電腦的用戶名,第三行寫測試電腦的密碼,重啓電腦,運行--cmd-------MSG /server:192.168.1.201 * "Hello" ------------->>> 運行成功。。。
Google 搜索的最終答案(英文的,有點英文基礎能夠看懂的) 連接:http://social.technet.microsoft.com/Forums/windows/en-US/344aa708-5477-46f9-be4f-ad8b3b2348b0/sending-a-message-to-win-7-host-with-msgexe?forum=w7itprogeneral
1 go to credential manager
2 click add a windows credential
3 type the name of the computer, username and password of the computer that you are trying to contact
4 computers that you are trying to contact most be in the same network as you.
good luck it took me months to get it properly working
在以上的學習過程當中,發現也能夠,cmd 內輸入\\192.168.0.201 而後回車,彈出對話框輸入賬號和密碼,
下面有一個勾選項,爲記錄賬號和密碼,勾選此項,憑據管理器內自動添加對應的windows憑據。html