PowerShell脚本注册的任务计划程序执行失败,报错0x1求助
解决任务计划执行PowerShell备份脚本返回0x1错误的问题
问题背景
我编写了两个PowerShell脚本:
- Backup1.ps1:用于在任务计划程序中注册每日9点执行的备份任务,该任务调用Backup2.ps1将桌面所有文件复制到Google Drive的
G:\My Drive\BackUp目录。 - Backup2.ps1:单独通过PowerShell运行完全正常,但任务计划程序执行时返回(0x1)错误,无法完成备份任务。
脚本代码
Backup1.ps1
$action = New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument 'C:\Users\User\Desktop\Backup2.ps1' $trigger = New-ScheduledTaskTrigger -Daily -At 9am Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "BackUP Google Drive" -Description "Google Drive Backup"
Backup2.ps1
Copy-Item "C:\Users\User\Desktop\*" -Destination "G:\My Drive\BackUp" -Recurse -Force
解决方案
修正任务权限配置
任务计划默认权限可能无法访问Google Drive映射盘或桌面目录。编辑任务计划:- 进入任务的「属性」-「常规」选项卡
- 选择「不管用户是否登录都要运行」
- 勾选「使用最高权限运行」
同时确认任务使用的账户拥有桌面目录的读取权限和备份目录的写入权限。
完善PowerShell执行参数
任务调用PowerShell时,需指定执行策略并正确识别脚本路径。修改Backup1.ps1的-Argument参数:-Argument '-ExecutionPolicy Bypass -File "C:\Users\User\Desktop\Backup2.ps1"'-ExecutionPolicy Bypass避免执行策略阻止脚本运行,-File确保PowerShell正确解析脚本文件路径。替换映射盘为本地同步路径
Google Drive的G盘是用户级映射,后台运行的任务计划可能无法识别。直接使用Google Drive的本地同步目录路径,修改Backup2.ps1:Copy-Item "C:\Users\User\Desktop\*" -Destination "C:\Users\User\Google Drive\My Drive\BackUp" -Recurse -Force(注:实际路径需根据你的Google Drive同步设置调整)
添加日志定位错误
在Backup2.ps1中加入日志输出,方便排查具体问题:$logPath = "C:\Users\User\Desktop\BackupLog.txt" try { Copy-Item "C:\Users\User\Desktop\*" -Destination "G:\My Drive\BackUp" -Recurse -Force -ErrorAction Stop "[$(Get-Date)] 备份成功" | Out-File $logPath -Append } catch { "[$(Get-Date)] 备份失败:$_" | Out-File $logPath -Append }执行任务后查看日志文件,就能明确是路径、权限还是其他具体问题导致的失败。
内容的提问来源于stack exchange,提问作者Tyrandis
相关产品推荐
相关产品推荐

