事情本身不复杂,线索都在日志里。Windows Server 2019 上用计划任务每天 7 点跑 indexnow.ps1,任务历史显示 0x1,接口日志文件是空的。手工在 PowerShell 里执行同一脚本能拿到 200,换过执行账户和脚本路径,结果还是 0x1。

第一反应是「执行策略受限 计划任务里没有加 ExecutionPolicy Bypass」,验证下来不成立。

把日志和配置对完,能解释这个现象的基本就这几处。计划任务的工作目录是 System32 脚本里的相对路径找不到。少数情况下是脚本按 UTF-8 无 BOM 保存 旧版 PowerShell 解析中文直接报错。

另外,key 从环境变量读取 服务账户下这个变量不存在。

带完整路径和绕过策略手工跑一次

powershell -ExecutionPolicy Bypass -File C:\seo\indexnow.ps1

然后查任务历史里的上次运行结果

Get-ScheduledTaskInfo -TaskName 'IndexNowDaily' | Select-Object LastTaskResult

再往下把任务的工作目录改成脚本所在目录

Set-Location C:\seo; Start-Transcript -Path .\run.log

末了把 key 挪进同目录的配置文件并收紧权限

icacls C:\seo\key.txt /inheritance:r /grant:r SYSTEM:(R)

改完先别撤,确认这几项。任务历史里上次运行结果变成 0x0,日志文件出现当天的 URL 条数和 200 返回。

计划任务和交互式终端的用户环境不一样,路径、编码、环境变量三项要逐一对齐。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。

作者 9823189