将 forfiles.exe 作为计划任务运行,失败并返回代码 2147942401

将 forfiles.exe 作为计划任务运行,失败并返回代码 2147942401

我正在尝试在六台服务器上将 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

1-打开记事本

2- 将以下代码行放入其中:

start C:\Windows\System32\forfiles.exe -p "C:\inetpub\logs\LogFiles\W3SVC1" -s -m *.* -d -3 -c "cmd.exe /c del @path"

3- 例如,以 .bat 扩展名保存文件steve-freeman.bat

4-打开任务计划程序并创建任务

5-在操作选项卡中,浏览并选择您的批处理文件。

在此处输入图片描述

就是这样!

答案3

好吧,我明白了,但我觉得自己很蠢。我从网站上复制了 forfiles.exe 参数,并做了必要的更改(主要是将其更改为 30 天)。但不知何故,当它被粘贴到计划任务中时,或者可能是由于其他原因,引号看起来很好,但却是其他类型的字符。我只在向命令添加 echo 时才注意到这一点,输出看起来完全乱了套。输出中的引号看起来像一个小写的 O,上面有一个重音符号。我用真正的引号替换了它们,再次尝试,它完美地工作了。

相关内容