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

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

相关推荐
水木姚姚2 小时前
VSCode 调试 C++ 之 cin 输入
c++·windows·vscode·开发工具·调试
周杰伦_Jay2 小时前
【计算机网络】TCP/IP模型核心层解析(网络/传输/应用层)
网络·tcp/ip·计算机网络
white-persist2 小时前
网络空间安全核心领域技术架构深度解析
c语言·开发语言·网络·python·安全·网络安全·架构
专家大圣3 小时前
摆脱局域网!Logseq 搭配cpolar公网访问让笔记管理更自由
linux·网络·docker·内网穿透·cpolar
小黑要上天3 小时前
8-docker run --rm选项说明
运维·docker·容器
Evan芙3 小时前
Nginx安全相关的参数总结
运维·nginx·安全
气π3 小时前
【流程】——若依项目前后端打包发布到服务器
运维·服务器·oracle
代码游侠3 小时前
复习——Linux 系统编程
linux·运维·c语言·学习·算法
qq_371802113 小时前
【自动发文测试】Windows安全
windows·安全