任务计划程序运行特殊字符路径脚本报0x8070005的参数配置问题
任务计划程序运行特殊路径PowerShell脚本参数配置
问题场景
- 目标:以SYSTEM最高权限运行PowerShell脚本,删除被程序反复重建的受保护Run注册表项
- 故障:脚本存于含大括号、UNC特殊字符的组策略共享路径,多次尝试转义写法均触发
0x8070005 找不到文件错误 - 原错误命令参考:
C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -command "& "^"\\srv01\sysvol\ad.contoso.com\Policies\{AC6E02A7-BEDE-4D4D-A171-D4DA1E0AF2CA}\Machine\Scripts\Startup\removeAutoStartKey.ps1"^"
正确配置步骤
任务计划程序中需将程序路径和参数拆分填写,不要混写到同一字段:
- 「程序/脚本」字段填写:
C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe
- 「添加参数(可选)」字段直接填写以下内容,无需额外加cmd转义符:
-ExecutionPolicy Bypass -File "\\srv01\sysvol\ad.contoso.com\Policies\{AC6E02A7-BEDE-4D4D-A171-D4DA1E0AF2CA}\Machine\Scripts\Startup\removeAutoStartKey.ps1"
- 任务安全选项勾选「使用最高权限运行」,运行账户选择
SYSTEM即可正常执行。
错误原因说明
- 原写法混用了cmd环境的转义符
^",但任务计划程序调用exe时不经过cmd解释层,^会被识别为路径的一部分,直接导致路径匹配失败 - 执行本地/共享路径的ps1脚本优先使用
-File参数,而非-Command "& 脚本路径"的嵌套写法:-File原生支持双引号包裹的特殊字符路径,空格、大括号、短横线、UNC路径符都可正常解析,不需要多层嵌套转义。
内容的提问来源于stack exchange,提问作者aphid
相关产品推荐
相关产品推荐

