最近在编写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