如何从 Exchange 2003 邮箱列表中获取 AD 用户?

如何从 Exchange 2003 邮箱列表中获取 AD 用户?

我有一个很棒的 VBscript,它可以列出我所有的 Exchange 2003信箱尺寸小于给定尺寸。

我有另一个很棒的 VBscript,它接受以下列表用户并为每个用户设置配额。

有人可以填补这个空白,并给我指出一种方法(VBscript 或其他方法),让我可以为所有邮箱数量在一定限制以下的用户设置配额吗?

我正在尝试减少邮箱限制,并希望首先对已低于该限制的用户强制执行该限制。这样,使人们低于新限制的更大问题就不会变得更大!

更新:感谢 Evan Anderson,我发现我需要将我的 GUID 转换为另一种格式,以用于 LDAP 查找。Microsoft 有知识库文章解释了如何执行此操作,但我没有所需格式的 GUID。还有另一篇知识库文章描述了“如何将字符串格式的 GUID 转换为十六进制字符串形式,以便在查询活动目录时使用“,但脚本抛出错误。

更新 2:好的 - 忘记 VB 脚本。我找到了一种更简洁的方法来使用 PowerShell 获取数据。

$computers = "vexch01","vexch02"
foreach ($computer in $computers) {
  Get-Wmiobject -namespace root\MicrosoftExchangeV2 -class Exchange_Mailbox -computer $computer | sort-object -desc Size | select-object MailboxDisplayName,StoreName,@{Name="Size/Mb";Expression={[math]::round(($_.Size / 1024),2)}}, MailboxGUID | Export-Csv -notype -Path $computer.csv 
}

目前,这会将 MailboxGUID 输出为字符串类型 GUID(例如 {21EC2020-3AEA-1069-A2DD-08002B30309D})。我想通过这种方式在 AD 中查找用户,但 AD 以八位字节格式存储它们。

我发现了一些powershell 函数这将进行转换,但只有当花括号被删除时才可以。定义 Gui 的 ToString 方法方法应该提供这一点,但我无法让它在上面发挥作用。

然而,如果我能弄清楚如何做到这一点,Guid.ToByteArray方法可能会让我更接近。

有人破解过这个吗?

答案1

如果不查看您的脚本,很难为您提供“交钥匙”解决方案。您可能能够通过对以下文件进行 LDAP 搜索来将用户帐户与邮箱匹配:msExchMailboxGuid属性,具体取决于您的邮箱大小脚本是否可以返回该属性。该 GUID 将在整个 Exchange 组织中明确地将邮箱和 AD 用户帐户配对。

相关内容