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 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
埃博拉酱2 天前
VS Code Remote SSH 连接 Windows 服务器卡在"下载 VS Code 服务器":prcdn DNS 解析失败的诊断与 BITS 断点续传
windows·ssh·visual studio code
唐宋元明清21882 天前
.NET 本地Db数据库-技术方案选型
windows·c#
DianSan_ERP2 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
加号32 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
tryCbest2 天前
Windows环境下配置pip镜像源
windows·pip
呉師傅2 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑
不是二师兄的八戒2 天前
Linux服务器挂载OSS存储的完整实践指南
linux·运维·服务器
百事牛科技2 天前
保护文档安全:PDF限制功能详解与实操
windows·pdf
zhangfeng11332 天前
趋动云 如何ssh登录 服务区 项目server
运维·人工智能·ssh