最近在编写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凭据。
2025国考·省考课程试听报名