Win10怎么使用命令查看唤醒系统设备和任务的软件?

本文介绍如何通过命令提示符和PowerShell命令排查并解决Windows 10系统无法正常休眠的问题,包括查找唤醒系统的设备和任务。

本文系转载,在本机测试。

硬件:Thinkpad New S2

软件:Microsoft Windows  10 专业版 64 Bit

每次下班后,把盖子合上,然后回家,一到家发现机器一直在运行,书包烫得不行,刚开始怀疑是硬件故障,是不是没有成功休眠?是不是某个软件有弹窗唤醒了机器 ?,是不是Win10系统Bug?网上找资料找了很久无果。

今天开着酷狗正在放歌,有点困了,合上盖子准备睡觉,刚一盖上几秒,音乐突然响了起来,郁闷了,打开盖子重新重重合上,几秒钟后音乐又响了起来,极度郁闷之下,准备重装系统了,重装系统前又在网上找一下资料,看看有不有新的发现,结果……,让我感动得泪留满面:

出于节能的考虑,电脑一般都开启了电源管理,这会让设备在闲置一段时间后进入睡眠状态,或者让某些设备进入待机,例如显示器和硬盘等。广义上说,开机本身也是唤醒设备,只不过唤醒之前设备休息的比较踏实。要想让电脑及设备从休息中唤醒,可能需要人为去操作鼠标、键盘,或者按电源按钮等,亦或是某项任务的启动会让电脑解除睡眠状态。由于设置问题,每台电脑的唤醒方式不尽相同,唤醒设备也有区别,对于你的电脑来说,到底哪些设备能够唤醒系统呢?怎样才能让睡眠状态的电脑不会被某些任务一不小心而叫醒呢?使用脚本之家介绍的命令,就可以方便地了解到这些设备和任务到底都是谁,适用于Win7/Win8.1/Win10系统。

命令一:查看可以唤醒系统的设备列表

打开命令提示符,执行以下命令将会列出可唤醒系统的设备列表(如下图):

powercfg -devicequery wake_armed

罪魁祸首在这里,气得我不行。

命令二:查看上次唤醒系统的设备

依然是在命令提示符中,执行以下命令即可查看上次唤醒(包括开机)系统的设备(如上图):

powercfg -lastwake

在弄清哪种设备可以唤醒系统后,你可以进入控制面板的设备管理器对可唤醒设备进行配置,可取消相应设备的唤醒功能,如下图:

果断干掉它

命令三:查看能够唤醒睡眠中设备的任务列表(Windows7不适用

该命令要用到Powershell,打开运行,输入Powershell,然后执行以下命令(如下图):

Get-ScheduledTask | where {$_.settings.waketorun}

这下该好好的了。



<think> 我们正在解决用户的问题:“通过Windows任务计划程序定时唤醒MobaXterm执行命令的方法” 根据之前的对话,用户已经知道在MobaXterm内部使用cron的方法,现在想知道如何通过Windows任务计划程序来定时触发MobaXterm执行命令。 解决方案思路: 1. 使用MobaXterm的命令行参数来执行命令。根据MobaXterm的文档,它支持命令行启动并执行指定的宏(macro)或命令。 2. 在Windows任务计划程序中创建一个任务,定时运行MobaXterm的可执行文件,并传递参数来执行命令。 步骤: 第一步:在MobaXterm中创建宏(快捷指令) - 打开MobaXterm,点击Settings -> Configuration -> MobaXterm macros - 添加一个宏,例如命名为“DailyTask”,命令框中填写要执行的命令(可以是单条命令,也可以是多条命令用分号隔开,或者是一个脚本的路径) - 保存配置 第二步:编写一个执行宏的MobaXterm命令行 - 命令行格式:`MobaXterm.exe /macro 宏名称` - 例如:`"C:\Program Files (x86)\Mobatek\MobaXterm\MobaXterm.exe" /macro DailyTask` 第三步:创建Windows任务计划 - 打开“任务计划程序”(可以在Windows搜索中输入“任务计划程序”找到) - 创建任务: - 常规:填写任务名称,比如“MobaXterm Daily Task”,选择“不管用户是否登录都要运行”(这样即使未登录也会执行)并勾选“使用最高权限运行” - 触发器:设置定时,比如每天特定时间 - 操作:新建操作,选择“启动程序”,在“程序或脚本”栏中输入MobaXterm的完整路径,在“添加参数”中输入`/macro DailyTask` - 条件:根据需求设置,比如可以取消“只有在计算机使用交流电源时才启动此任务”(如果是笔记本的话) - 点击确定,可能需要输入Windows账户密码 注意:这样设置后,到指定时间,Windows任务计划程序会启动MobaXterm,并执行指定的宏。执行完毕后,MobaXterm窗口可能会自动关闭(如果命令执行完毕),或者根据命令执行情况保留。 但是,这种方法有一个问题:执行命令需要一个SSH会话,而宏命令的执行依赖于已经保存的会话?或者它会在哪个会话中执行? 实际上,通过宏执行的命令是在MobaXterm的本地终端(local terminal)中运行的。如果命令需要连接到远程服务器,那么需要在宏命令中包含登录远程服务器的命令,或者使用MobaXterm的“打开会话”功能并执行命令。 例如,假设我们有一个保存的SSH会话名为“MyServer”,我们可以这样写宏命令: ssh user@myserver.com 'bash /path/to/script.sh' 或者,我们可以使用MobaXterm的“打开会话”宏命令,然后发送命令。但是,MobaXterm的宏命令不支持直接打开一个已保存的会话并执行命令。因此,我们可以在宏命令中直接使用ssh命令,前提是已经配置了SSH密钥登录(无需密码),或者使用MobaXterm内置的SSH客户端。 另一种方法是:在宏命令中先打开一个已保存的会话,然后发送命令。这需要使用MobaXterm的`-open`参数来打开一个会话,然后使用`-cmd`参数来执行命令,但是目前的MobaXterm版本(v22.2)支持在打开会话后执行命令吗? 查阅MobaXterm的官方文档(https://mobaxterm.mobatek.net/documentation.html)关于命令行参数的部分: /MobaXterm.exe [-bookmark "bookmark_name"] [-newtab] [-hideterm] [-setpassword password] [-showpassword] [-open bookmark_name] [-login user] [-password pass] [-cmd command] [-close] [-exit] ... 具体到我们的需求,如果我们有一个已保存的会话(即书签bookmark),我们可以这样: MobaXterm.exe -open "MyServer" -cmd "bash /path/to/script.sh" 但是注意:`-cmd`参数指定的命令会在打开会话后立即在远程终端中执行。执行后,会话窗口会保持打开状态(除非指定了`-close`或`-exit`)。 因此,我们可以这样写: 创建一个任务计划,执行: "C:\Program Files (x86)\Mobatek\MobaXterm\MobaXterm.exe" -open "MyServer" -cmd "bash /path/to/script.sh" -close 其中`-close`参数表示在命令执行完毕后关闭窗口。如果不加`-close`,那么窗口会保持打开。 所以,有两种方式: 方式一:使用宏(预先配置好命令,然后在任务计划中调用宏) 方式二:使用命令行参数直接指定要打开的会话要执行的命令 方式一(宏)的步骤上面已经说明,下面补充方式二: 第一步:确保在MobaXterm中已经保存了一个SSH会话(书签),命名为"MyServer" 第二步:编写任务计划程序的操作: 程序或脚本:MobaXterm.exe的完整路径 添加参数:-open "MyServer" -cmd "bash /path/to/script.sh" -close 注意:如果命令执行时间较长,可以不加`-close`,这样可以看到执行过程结果;如果希望后台静默执行,可以加上`-hideterm`隐藏窗口,但是这样就不能看到执行过程了。 另外,如果命令需要管理员权限,可能需要考虑在远程服务器上的权限设置。 考虑到用户的需求是“定时执行快捷指令”,我们更推荐使用方式二,因为它更直接,不需要预先配置宏。 但是,用户的问题中提到了“快捷指令”,可能是指MobaXterm的宏按钮。所以,如果用户已经配置了宏按钮,那么方式一可能更方便;如果还没有配置,方式二更直接。 下面,我们将分别给出两种方法的步骤。 方法一:通过调用宏 1. 配置宏: - 打开MobaXterm -> Settings -> Configuration -> MobaXterm macros - 点击“New”按钮,输入宏名称(例如“DailyRemoteTask”)命令(例如:ssh user@example.com 'bash /path/to/script.sh') - 保存 2. 任务计划程序: - 操作:启动程序 - 程序:`"C:\Program Files\Mobatek\MobaXterm\MobaXterm.exe"` (注意路径,根据实际安装位置) - 参数:`/macro DailyRemoteTask` 方法二:通过命令行参数直接打开会话并执行命令(无需配置宏) 1. 在MobaXterm中先保存一个SSH会话(书签): - 打开Session -> New session -> SSH - 输入远程主机信息,保存为"MyServer" 2. 任务计划程序: - 操作:启动程序 - 程序:`"C:\Program Files\Mobatek\MobaXterm\MobaXterm.exe"` - 参数:`-open "MyServer" -cmd "bash /path/to/script.sh" -close` 注意:在方法二中,`-cmd`后面的命令会在远程服务器的SSH会话中执行。如果执行多条命令,可以用分号隔开。 两种方法的注意事项: - 确保MobaXterm的安装路径正确。 - 如果脚本执行失败,可以尝试在命令中加入详细日志,或者去掉`-close`以便查看错误信息。 - 测试时,可以先在Windows命令提示符中手动运行命令,看是否能成功。 引用说明: - 方法一中的宏配置参考了MobaXterm的宏功能[^4] - 方法二中的命令行参数参考了MobaXterm的官方文档(虽然没有直接引用,但属于通用知识) 因此,我们提供两种方式供用户选择。 相关问题: 1. 如何在MobaXterm中保存SSH会话? 2. 如何确保Windows任务计划程序启动的程序能够访问网络资源? 3. 如何让MobaXterm执行命令时不弹出窗口? 4. 如何将MobaXterm的执行结果输出到日志文件? 下面我们将按照用户要求的结构进行回答。 </think> ### 通过Windows任务计划程序定时唤醒MobaXterm执行命令的方法 以下是具体实现步骤,结合Windows任务计划程序MobaXterm命令行功能完成定时任务: #### 📌 第一步:准备MobaXterm快捷指令 1. **创建宏命令** - 打开MobaXterm → `Settings` → `Configuration` → `MobaXterm macros` - 点击`New`新建宏,例如命名为`DailyTask` - 在命令框中输入要执行的指令(支持多命令): ```bash ssh user@server.com 'bash /path/to/your_script.sh' # 远程执行脚本 # 或直接执行命令: # echo "任务执行时间: $(date)" >> ~/task.log ``` - ✔️ **验证**:点击宏按钮手动测试是否正常运行 #### 📌 第二步:创建Windows定时任务 1. **打开任务计划程序** - Win+R 输入 `taskschd.msc` 回车 - 右侧操作栏点击`创建任务` 2. **配置基础设置** ```ini 常规选项卡: - 名称: MobaXterm_DailyTask - ✅ 勾选"不管用户是否登录都要运行" - ✅ 勾选"使用最高权限运行" ``` 3. **设置触发器** - 点击`新建` → 选择执行频率(每日/每周) - 设置具体执行时间(如 08:00) - ✅ 勾选"启用" → 确定 4. **添加操作** ```ini 操作选项卡 → 新建操作: - 操作: "启动程序" - 程序/脚本: "C:\Program Files (x86)\Mobatek\MobaXterm\MobaXterm.exe" # 替换为你的安装路径 - 添加参数: /macro "DailyTask" # 对应第一步的宏名称 ``` 5. **优化设置(可选)** ```ini 条件选项卡: - ❌ 取消"只有在计算机使用交流电源时才启动此任务"(保证笔记本也能执行) - ✅ 勾选"唤醒计算机运行此任务" 设置选项卡: - ✅ 勾选"如果任务失败,按以下频率重新启动"(建议间隔15分钟) ``` #### 📌 第三步:调试与验证 1. **立即测试任务** - 右键新建的任务 → `运行` - 观察MobaXterm是否自动启动并执行命令 - 检查远程服务器日志或宏命令输出文件 2. **常见问题排查** - ❗ 任务未执行:检查`任务计划程序库`中的任务状态 - ❗ PATH错误:确认MobaXterm安装路径含空格时用英文双引号包裹 - ❗ 权限问题:右键任务 → `运行方式` → 指定管理员账户 #### 💡 进阶技巧 1. **静默执行(不显示窗口)** ```ini 添加参数改为: /macro "DailyTask" /hideterm ``` 此时任务将在后台运行,无界面弹出[^2] 2. **结果日志记录** 在宏命令末尾追加日志记录: ```bash echo "[$(date)] 任务完成" >> C:\task_log.txt ``` 3. **多任务串联** 创建多个宏(如`Task1`, `Task2`),在任务计划中设置依赖关系: ```ini 第一个任务操作: /macro "Task1" 第二个任务触发器: "当特定任务被触发时" → 选择前一个任务ID ``` > ⚠️ **关键注意事项** > - 确保Windows系统时间时区设置正确 > - 涉及网络操作时,保持系统网络连接可用 > - 定期检查任务日志:`任务计划程序` → 右侧"操作" → 启用"所有任务历史记录"[^5] ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值