Windows系统中msg命令的完整使用方法及相关示例

Windows系统中msg命令的完整使用方法及相关示例

在 Windows 系统中,msg 是内置的命令行工具,用于向本地/远程 Windows 终端会话发送消息。以下是 msg ** 命令的完整使用方法**,包括语法、参数、示例和注意事项,覆盖本地/远程、单用户/多用户场景。

一、核心前提

  1. 权限要求

    • 发送本地消息:普通用户即可(需确保终端服务未禁用)。

    • 发送远程消息:需拥有目标主机的管理员权限,且目标主机开启 Terminal Services 服务(默认开启)。

  2. 系统支持:Windows XP/7/8/10/11、Windows Server 2003+(家庭版可能限制部分功能)。

  3. 接收端限制 :消息仅发送到 终端会话(如 cmd/PowerShell 窗口、远程桌面会话),不会弹出桌面弹窗(需其他工具实现桌面弹窗,文末补充)。

二、msg 命令基础语法

Plain 复制代码
参数 说明
用户名 发送给指定本地/远程用户(如 Administrator
会话名 发送给指定会话(如 console 本地控制台、rdp-tcp#1 远程桌面会话)
会话ID 数字ID(可通过 query session 查看)
* 发送给目标主机的所有会话/用户
/SERVER:目标主机 指定远程主机(IP/主机名,默认本地主机)
/TIME:秒数 消息停留时间(默认60秒,0=永久停留,直到用户确认)
/V 显示详细执行过程(调试用)
/W 等待用户确认消息后再退出命令(需配合 /TIME:0 效果更佳)
消息内容 要发送的文本(无内容则从标准输入读取,按 Ctrl+Z 结束)

三、常用示例(本地/远程)

示例1:发送给本地当前用户(最基础)
Plain 复制代码
  • %username% 是系统变量,自动替换为当前登录用户名。

  • 效果:当前用户的 cmd/PowerShell 窗口会弹出消息框(标题为"Message from XXX on YYY")。

示例2:发送给本地所有用户
Plain 复制代码
  • * 表示所有本地会话,/TIME:30 消息显示30秒后自动消失。
示例3:发送给远程主机的指定用户
Plain 复制代码
  • 前提:

    1. 你已登录的账户有 192.168.1.100 的管理员权限;

    2. 目标主机开启了文件和打印机共享(445端口)、Terminal Services 服务;

    3. 目标主机未禁用远程消息(组策略:计算机配置→管理模板→系统→终端服务→"允许用户使用 MSG 命令发送消息"启用)。

示例4:发送多行/长消息

如果消息内容较长,可通过管道或输入重定向:

Plain 复制代码
示例5:指定会话ID发送(精准定位)
  1. 先查看本地会话:

    Plain 复制代码

    输出示例:

    Plain 复制代码
  2. 发送给 ID=2 的会话:

    Plain 复制代码

四、常见问题与解决

问题1:"Error 5 getting session names"(权限不足)
  • 原因:非管理员权限发送远程消息,或目标主机拒绝访问。

  • 解决:

    1. 以管理员身份运行 cmd/PowerShell;

    2. 目标主机添加你的账户到"管理员组";

    3. 关闭目标主机的防火墙(或放行445、3389端口)。

问题2:"No recipients exist"(无接收者)
  • 原因:用户名/会话ID错误,或目标用户未登录。

  • 解决:

    1. query session /SERVER:目标主机 确认目标主机的有效会话;

    2. 确保目标用户已登录(而非仅开机)。

问题3:本地发送消息无弹窗
  • 原因:Windows 10/11 禁用了"终端服务消息通知"。

  • 解决:

    1. 按 Win+R 输入 gpedit.msc 打开组策略;

    2. 定位到:计算机配置→管理模板→系统→终端服务→终端服务器→消息通知;

    3. 启用"允许用户使用 MSG 命令发送消息"和"允许接收终端服务消息"。

五、扩展:发送桌面弹窗(非msg命令)

msg 仅发送到终端会话,若需桌面弹窗(类似 MessageBox),可通过以下方法:

方法1:PowerShell 弹窗(本地)
PowerShell 复制代码
  • 注意:需先运行 Add-Type -AssemblyName PresentationFramework 加载组件。
方法2:VBScript 弹窗(本地/远程)
  1. 新建 popup.vbs

    VBScript 复制代码
  2. 本地运行:

    Plain 复制代码
  3. 远程运行(需管理员权限):

    Plain 复制代码

    (需提前下载 PsExec 工具)

总结

  • msg 命令适合终端会话消息(如服务器运维、多用户终端通知),语法简单且无需额外工具;

  • 桌面弹窗需借助 PowerShell/VBScript/PsExec,适合面向普通用户的可视化通知;

  • 远程操作核心是"管理员权限+端口放行+服务开启",需确保目标主机的权限和网络配置。

相关推荐
今夕资源网1 小时前
windows11无法启用投屏功能 无线显示器无法添加可选功能 解决办法 Miracast修复脚本
windows·计算机外设·miracast·系统修复·无线显示器·投屏功能·投屏功能无法添加
LCMICRO-133108477461 小时前
长芯微LD9689完全P2P替代AD9689,是一款双通道、14位、2.0 GSPS/2.6 GSPS模数转换器(ADC)
网络·单片机·嵌入式硬件·网络协议·fpga开发·硬件工程·高速adc
Leinwin6 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
2401_865382506 小时前
信息化项目运维与运营的区别
运维·运营·信息化项目·政务信息化
漠北的哈士奇6 小时前
VMware Workstation导入ova文件时出现闪退但是没有报错信息
运维·vmware·虚拟机·闪退·ova
如意.7596 小时前
【Linux开发工具实战】Git、GDB与CGDB从入门到精通
linux·运维·git
运维小欣7 小时前
智能体选型实战指南
运维·人工智能
yy55277 小时前
Nginx 性能优化与监控
运维·nginx·性能优化
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ8 小时前
Linux 查询某进程文件所在路径 命令
linux·运维·服务器
05大叔9 小时前
网络基础知识 域名,JSON格式,AI基础
运维·服务器·网络