有人知道如何从命令行获取 Exchange 2003 帐户的当前邮箱空间使用情况吗?
我可以使用 ldapsearch 和过滤器获取配额,但当前使用似乎不在 ldap 中......
我总是可以从交换系统管理器中导出使用情况,但不确定在脚本中除了“邮箱”字段之外还要“加入”什么,但我不知道它来自哪里,并且不要使加入必须是某种模糊逻辑会更容易....
答案1
实际上有两种方法可以从 Exchange 2003 获取邮箱数据库大小
- 文件系统 - 查看 Exchange EDB 和日志文件的大小
- 使用 Exchange 控制台或 Powershell 进行 Exchange 本身(是的,您可以将 Powershell 用于 Exchange 2003)
我有一个用于 Exchange 2003 的 PowerShell 脚本,它可以获取您的邮箱大小,但显然这是一个 Windows 解决方案,因此我不确定您是否可以通过任何方式从 Linux 远程调用它。
这是 Powershell 脚本,它将获取 EDB 和 STM 文件的大小:
$server = “ATS-Exch301″ # Give Server Name Here
foreach ($DB in get-mailboxdatabase -server $server)
{
$DBEDBPath = “name=’” + $DB.EdbFilePath.ToString().Replace(”\”,”\\”) + “‘”
$DBSTMPath = $DBEDBPath.replace(”edb”,”stm”)
$DBEDBSize = (get-wmiobject CIM_Datafile -filter $DBEDBPath -ComputerName $Server).filesize
$DBSTMSize = (get-wmiobject CIM_Datafile -filter $DBSTMPath -ComputerName $Server).filesize
$DBEDBSize = $DBEDBSize / 1MB
$DBSTMSize = $DBSTMSize / 1MB
Write-host $DB.identity `t $DBEDBSize `t $DBSTMSize
}
如果您可以使用 PSExec 运行它,那么您应该会得到您需要的东西。
答案2
通过 IMAP 查询怎么样?
您或许可以为此使用 Perl(并使用 ssl 加密)。
网络::IMAP::简单
IMAP::客户端
第一个链接中没有提到配额。第二个链接应该可以帮到你。