关于schtasks创建任务时电源条件的解决方案

在用schtasks命令远程创建任务时发现远程机任务存在但是未运行,然后发现电源选项出现问题


 而且schtasks命令没有修改电源的选项,因为是用命令行远程创建,不能取消勾选“交流电源”选项

下链接中包含有几种解决方案,接下来我对个人认为最简单的解决方案做个演示

​​​​​​更改 Windows 计划任务的电源设置 - Stack Overflow

 

原理如下

1.自己先在本地创建任务设置所需相关选项,导出为xml文件

首先打开cmd,输入taskschd.msc打开如图界面定位到打算创建任务的计划库

在操作选项卡中打开创建任务

然后点击更改用户或组在下方输入system点击检查名称,接着确定即可

按如图勾选(名称随便选)

然后转到触发器选项卡点击新建,自己设置频率和时间后确定即可

然后转到操作点击新建

设置为如图

起始于即脚本文件所在最后文件夹

然后确定

重点来了

转到条件选项卡把电源的对勾取消了,然后确认即可

接着导出xml文件

找到刚创建的任务右键,点击导出

2.在schtasks命令中调用xml文件创建任务

输入此命令即可

(住/XML选项仅可与/S /U /P /RU /RP /F /IT /TN一起使用)

可见在远程机的E盘下确实出现了输出文件put.txt

在 Windows 任务计划程序中创建的脚本不运行是一个非常常见的问题,原因可能涉及权限、路径、环境变量、脚本执行策略等多个方面。下面我将详细分析常见原因,并提供解决方案和示例代码。 --- ### ✅ 常见原因及解决方案 #### 1. **未指定正确的解释器(尤其是 Python、PowerShell 脚本)** 如果你写的是 `.py` 或 `.ps1` 脚本,**必须显式调用解释器**,不能直接运行脚本文件。 ##### ❌ 错误配置: - 程序/脚本:`C:\scripts\my_script.py` ##### ✅ 正确配置: - 程序/脚本:`python.exe` 或 `C:\Python39\python.exe` - 参数(可选):`C:\scripts\my_script.py` - 起始于(工作目录):`C:\scripts\` > ⚠️ 如果系统有多个 Python 版本,建议使用完整路径,例如:`C:\Users\YourName\AppData\Local\Programs\Python\Python39\python.exe` --- #### 2. **PowerShell 脚本受执行策略限制** PowerShell 默认禁止运行 `.ps1` 脚本。 ##### 解决方案: 在“操作”中这样设置: - 程序/脚本:`powershell.exe` - 参数:`-ExecutionPolicy Bypass -File "C:\scripts\myscript.ps1"` > `-ExecutionPolicy Bypass` 临绕过策略限制。 你也可以提前在管理员 PowerShell 中运行: ```powershell Set-ExecutionPolicy RemoteSigned -Scope CurrentUser ``` --- #### 3. **没有勾选“以最高权限运行”** 某些脚本需要管理员权限才能访问文件、注册表或网络。 ✅ 在任务属性中: - 勾选 **“使用最高权限运行”** --- #### 4. **用户未登录无法运行(交互式服务被禁用)** 默认情况下,如果用户未登录,任务可能不会运行(尤其对 GUI 脚本或需要桌面交互的)。 ✅ 解决方法: - 勾选 **“不管用户是否登录都要运行”** - 或选择 **“仅在用户登录运行”** 并确保用户已登录 > ⚠️ 若选择“不管用户是否登录都要运行”,则不能弹出窗口(GUI 不可见) --- #### 5. **工作目录未设置** 脚本中使用了相对路径(如 `open("data.txt")`),但任务启动的工作目录不对。 ✅ 解决方法: - 在“起始于(可选)”字段填写脚本所在目录,例如:`C:\scripts\` --- #### 6. **日志和错误排查** 任务计划程序提供了历史记录和结果代码,用于调试。 ✅ 查看方式: - 打开“任务计划程序” - 进入你的任务 → 右侧“查看历史记录” - 检查“操作完成,结果代码为 0”是否出现 - 非零代码表示失败(如 `0x1`, `0x80070002` 等) 常用结果码: - `0x0`:成功 - `0x1`:脚本出错或返回非零退出码 - `0x80070002`:系统找不到指定文件(路径错误) --- ### ✅ 示例:正确配置一个 Python 脚本任务 假设你要运行 `C:\scripts\backup.py` #### 操作配置如下: | 字段 | 内容 | |------|------| | 程序/脚本 | `C:\Python39\python.exe` | | 参数 | `C:\scripts\backup.py` | | 起始于(可选) | `C:\scripts\` | #### 条件选项卡: - 取消勾选:“只有计算机使用交流电源启动任务”(避免笔记本插电池不运行) - 勾选:“唤醒计算机运行此任务”(如果需要定唤醒) #### 设置选项卡: - 允许任务按需运行 - 如果任务失败,重新尝试(可选) --- ### ✅ 测试脚本是否能手动运行 先在 CMD 中测试: ```cmd C:\Python39\python.exe C:\scripts\backup.py ``` 如果这里都报错,任务更不会成功。 --- ### ✅ 添加日志输出便于调试 修改你的 Python 脚本,添加日志: ```python # backup.py import datetime import sys log_file = r"C:\scripts\log.txt" with open(log_file, "a") as f: f.write(f"[{datetime.datetime.now()}] Script started\n") try: # 你的逻辑 print("Hello from task scheduler!") with open(r"C:\scripts\test_output.txt", "w") as out: out.write("Success!") f.write("Script completed successfully.\n") except Exception as e: f.write(f"Error: {e}\n") sys.exit(1) ``` 这样即使任务失败,也能看到日志。 --- ### ✅ 相关命令行测试任务 你也可以先用 `schtasks` 命令测试: ```cmd schtasks /run /tn "MyBackupTask" ``` 查看状态: ```cmd schtasks /query /tn "MyBackupTask" ``` --- ### 总结 | 检查项 | 是否完成 | |--------|----------| | 使用完整路径调用解释器 | ✅ | | 设置“起始于”目录 | ✅ | | 检查执行策略(PowerShell) | ✅ | | 勾选“使用最高权限运行” | ✅ | | 查看历史日志排查错误 | ✅ | | 脚本支持无界面运行 | ✅ | ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值