我正在尝试在六台服务器上将 forfiles.exe 作为计划任务运行,以便定期删除旧的 IIS 日志文件。我将其以 SYSTEM 身份运行,并将其设置为以最高权限运行。我也尝试使用自己的管理员帐户,但同样失败了。我尝试将其配置为 Server 2008 R2 和 Server 2019,但都没有什么效果。
它正在运行 forfiles.exe(包括完整路径没有区别),并使用以下作为参数:
Forfiles.exe -p C:\inetpub\logs\LogFiles\W3SVC1 -m *.log -d -30 -c “Cmd.exe /C del @path\”
但是,我可以从命令行/PowerShell 运行它而不会出现问题(根据我自己的信用,我还没有尝试以系统身份启动 PowerShell 并尝试它,但我怀疑它不会有什么不同)。除了任务计划程序部分,我也没有在任何地方看到事件日志中的错误,它只是显示返回代码 2147942401。
有人有什么想法吗?
答案1
任务计划程序需要完整指定路径,因为它没有配置文件的环境变量。
使用完全限定路径:C:\Windows\System32\forfiles.exe
。
答案2
答案3
好吧,我明白了,但我觉得自己很蠢。我从网站上复制了 forfiles.exe 参数,并做了必要的更改(主要是将其更改为 30 天)。但不知何故,当它被粘贴到计划任务中时,或者可能是由于其他原因,引号看起来很好,但却是其他类型的字符。我只在向命令添加 echo 时才注意到这一点,输出看起来完全乱了套。输出中的引号看起来像一个小写的 O,上面有一个重音符号。我用真正的引号替换了它们,再次尝试,它完美地工作了。