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

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

相关推荐
Brilliantwxx4 小时前
【Linux】 进程(9)程序与进程地址空间(基础+进阶+面试题)
linux·运维·服务器·开发语言·c++
richdata4 小时前
商品数字化不是先做大数据,而是先把数据变成可用决策
大数据·运维·数据治理·商品数字化·智能补货·ai商品决策
weixin_416667965 小时前
【无标题】
运维·服务器·网络
予昊5 小时前
从零实现“在线五子棋对战“:WebSocket 实时通信 + 段位匹配
java·开发语言·网络·websocket
一池秋_6 小时前
arm低配linux设备,桌面应用冷启动提速方法
linux·运维·arm开发
上海云盾-小余7 小时前
流量攻击复盘:为什么 WAF 完好,业务依旧瘫痪
运维·服务器·网络
IT大白鼠7 小时前
Docker 私有仓库管理:Harbor 企业级仓库搭建与镜像全生命周期管理
运维·docker·容器
戴西软件8 小时前
戴西iDWS.3DViz Suite数据轻量化可视化软件,从传统桌面软件向云端协同的重大突破
大数据·运维·网络·人工智能·机器学习·3d
芯盾时代8 小时前
《金融业网络安全管理办法(征求意见稿)》全条款深度拆解(三)
网络·安全·网络安全
米饭不加菜8 小时前
ESP-01S通过TCP直接与手机建立通信
网络·tcp/ip·智能手机