是否可以在同一 LAN 的两个用户之间发送文本消息,但第一个用户使用 cmd 运行 Windows,第二个用户运行 Linux/Unix?
我不是在寻找即时消息服务。我想在 Linux shell 中输入类似的内容
write [email protected]:port message
以便 Windows 用户可以在其 cmd 窗口中读取文本message
;那么 Windows 用户应该能够回复另一个命令。是否可以?
我已阅读有关 Windowsmsg
命令的信息,但它并不适用于所有版本的操作系统。还有别的事吗?
我想使用 Linux shell 和 Windows cmd,而不是 PuTTY。
答案1
在 Unix 上:nc -l 192.168.1.10 32849
在 Windows 上:telnet 192.168.1.10 32849
其中32849是防火墙规则允许的任意端口,IP是Unix机器的监听IP。nc
是 netcat 实用程序。
答案2
这个想法来自项目dp的回答:Linux 上的 netcat 在 win 上提供 telnet。-p
但是两台机器上需要不同的 IP 地址:
在 Linux 中:
netcat -l 10.0.0.2 -p 14415
- 如果您视窗位于 10.0.0.2在 Windows 中:
telnet 10.0.0.1 14415
- 如果您Linux的位于 10.0.0.1要退出 telnet,请
^]
按Ctrl+ ],然后键入q
。14415
要像方便的桌子一样选择任意端口,请访问大卫·韦雷布。
然而在 win7 x64 上,我必须首先启用 telnet,长话短说:
c:\windows\sysnative\dism.exe /online /norestart /logpath:"c:\foo.txt" /enable-feature /ignorecheck /featurename:"TelnetClient"
最初尝试的问题是
pkgmgr
尝试使用 32 位dism
并抱怨 64 位。我的sysnative
想法来自奥斯曼·谢纳。它安装到
c:\windows\sysnative\telnet.exe
.我将c:\windows\sysnative
PATH 环境变量放入sysdm.cpl
.如果您有 Linux 版 DeVuan 或 Ubuntu,
sudo apt-get install netcat-traditional
聊天内容如下:
答案3
NET SEND {name1 | * | /DOMAIN[:name] | /USERS} message
在 Windows 机器上和echo "message" | smbclient -M name2
Linux 机器上怎么样? name1 和 name2 是机器的 netbios 名称。
答案4
有一个有趣的工具可以让你从 Linux 执行 Windows 命令,它的名字是winexe
.
因此,您只需键入以下内容即可从同一台计算机向控制台发送消息:
winexe -U domain/user%password --interactive=1 //WindowsMachine "msg console \"Your message goes here.\""
正如您所看到的,noleti 的答案要简单得多,但是使用 winexe,您还可以在该机器中打开计算或任何您想要的内容。我们一直在使用它通过 Linux 中的批处理脚本在 Windows 计算机中进行无人值守安装。非常酷而且省时间...