我继承了该服务器,所以我还不完全熟悉它的设置。
但是,我注意到该C:\inetpub\mailroot\Badmail\
目录包含约 400,000 个文件。目前,我不想删除所有内容,只想删除可能早于的文件1/1/2012
。我尝试使用坏邮件管理员脚本,但是当我在该目录上运行它时,它会出错:
ERROR: C:\inetpub\mailroot\Badmail\: bytes total.
Err.Number: 6
Err.Description: Overflow
Err.Source: Microsoft VBScript runtime error
可能是因为里面有太多文件。我尝试使用普通的 Windows 资源管理器。获取目录列表需要大约 5 分钟,但当我选择要删除的一堆文件时,它开始占用一个核心 100% 的 CPU,并且在我等待的 2 小时内没有恢复。
有什么方法可以(快速)删除其中一些文件?
请注意,这不是 Exchange 服务器,只是常规的 IIS/smtp。
答案1
我尝试使用del /q *.*
并 rd,但没有结果。几天来,这些命令只是在准备删除……没有人知道进展如何……
我决定编写一个脚本,这样坏文件就会被逐个删除。至少用这个脚本你可以看到文件被删除了。一开始它们删除得很慢,但随后删除速度就会加快。
脚本非常简单:
for %i in (c:\inetpub\mailroot\badmail\\*.*) do del /q %i
如果您使用批处理文件,请再添加%
一个%i (%%i)
祝你好运!
答案2
这些文件是无法发送的电子邮件,所以把它们全部删除吧。我认为保留文件夹中的任何文件都没有任何意义或价值。
尝试从命令行删除它们。
答案3
我们不需要无法送达的电子邮件的副本,因此我们将死信文件夹重定向到 /dev/null 以防止它们被保存。
步骤 1. 创建到 /dev/null 的符号链接. 从管理命令提示符:
mklink /D c:\DevNull NUL:
第 2 步. 将 SMTP 服务器的 Badmail 目录更改为C:\DevNull
。
就这样,不再有坏信文件了!
答案4
带有 IIS/SMTP 的 Windows Server 2008 R2 上的 BadMailAdmin 脚本版本 1.0(发布于 2004-09-21)。
在我的例子中,BadMail 目录太大,无法使用脚本中使用的默认变量数据类型(“Long”)。我不得不将其更改为“Single”(请参阅VB 错误参考有关此问题的更详细说明,以及VB 数据类型对于变量数据类型)。
请尝试以下操作:
- 在文本编辑器中打开 BadMailAdmin.wsf 脚本
- 转至 745 行
- 更改“
cFolderMBSize = C
Lng
(oFolder.Size)
“ 到 ”cFolderMBSize = C
Sng
(oFolder.Size)
“ - 如果您希望保留原始脚本,请使用其他名称保存该脚本
- 运行修改后的脚本
我用这个来将尺寸缩小到足够小,以便原始脚本(具有长变量数据类型)可以用于持续维护。