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,适合面向普通用户的可视化通知;

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

相关推荐
SkyWalking中文站7 小时前
认识 Horizon UI · 5/17:3D 基础设施地图
运维·监控·自动化运维
SkyWalking中文站1 天前
认识 Horizon UI · 1/17:SkyWalking 新一代可观测性控制台
运维·前端·监控
雪梨酱QAQ1 天前
Kubeneters HA Cluster部署
运维
江华森2 天前
Spring Cloud 微服务全栈实战:从 Eureka 到 Docker Compose 一文贯通
运维
江华森2 天前
Matplotlib 数据绘图基础入门
运维
江华森2 天前
NumPy 数值计算基础入门
运维
乘云数字DATABUFF6 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
荣--7 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森7 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜8 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https