Exchange EMS 中有三个 cmd-let:
- 获取邮箱 - 返回对象类型 [邮箱];
- Get-MailboxStatistics - 返回对象类型 [MailboxStatistics];
- Get-Recipient - 返回对象类型 [ReducedRecipient]。
每个对象类型都有一些类似“ID”的属性。阅读文档后这里,这里和这里我仍然不明白这些 ID 的含义以及哪些属性唯一地确定了组织内的邮箱。
比较同一邮箱上这三个 cmdlet 的输出,我看到了以下内容:
- [邮箱].ExchangeGuid =[邮箱统计].MailboxGuid =[邮箱统计].身份 =[邮箱统计].MapiIdentity =[减少收件人].ExchangeGuid
- [邮箱].ArchiveGuid =[邮箱统计](没有这样的属性)=[减少收件人].ArchiveGuid
- [邮箱].Guid =[邮箱统计].MailboxGuid =[减少收件人].Guid
我的问题是:
- 在哪里可以找到这些属性的详细描述?MS 文档还没有
- 以下哪一个属性可用于唯一地比较指定 cmdlet 的结果?
谢谢!
答案1
就“这些属性中的哪一个唯一地确定了组织内的邮箱”而言,答案实际上是全部。
AD + Exchange 有多种方式来唯一地引用单个用户/邮箱。例如,如果您搜索 Get-Mailbox 并查看 -Identity 参数,您将看到有 10 种不同的方式引用邮箱,所有这些方式都是该特定邮箱所独有的。
其主要好处是一些其他 cmdlet 可能仅支持这些值的子集,因此无论您能够检索什么值,您都可以将其传递给该 Exchange cmdlet 以获得结果。
只需运行一下,你就能了解可用的值
Get-Mailbox -Identity <mailbox username> | Select *
它将显示所有这些,以及该输出中可用的其他属性。
在编写脚本时,我唯一会过于担心要检索哪个特定值的情况是当我想以有用的格式将该值输出到屏幕或日志文件时。当将输出传递给另一个 cmdlet 时(无论是直接通过管道还是将其保存到变量以供以后使用),很少需要专门过滤掉您认为需要的单个值。只需引用整个对象,然后让 cmdlet 提取它想要使用的标识值。
例如,这两个选项得到相同的结果:
$foo1 = Get-Mailbox -Identity MyUsername | Select -ExpandProperty SamAccountName
Get-MailboxStatistics $foo1
$foo2 = Get-Mailbox -Identity MyUsername
Get-MailboxStatistics $foo2
唯一的区别是,如果您尝试运行的 cmdlet 不支持 SamAccountName 作为标识值(Get-MailboxStatistics 支持),则第一个命令将失败,但第二个命令可能会起作用,因为它可以使用它从对象支持的任何其他标识值$foo2
,例如 DistinguishedName、GUID、UserPrincipalName 等以获得所需的结果。
答案2
关键澄清段落
微软利用财产全局唯一标识符为对象分配唯一标识符的值,类似于家庭住址、驾驶执照号码或社会保障号码。这些标识符用于有效地区分和区分对象 - 您可能已经知道这一点,但为了以防万一还是想将其包括在内。
虽然某些 cmdlet 参数接受
GUID
值并返回该对象的输出,但值得注意的是,还有其他可用值或返回值可能GUID
如果没有明确要求,则更加用户友好。值得注意的是,尽管一个 cmdlet 的
-identity
参数或属性可能包含一个GUID
值,但这并不意味着另一个 cmdlet 的-identity
参数或属性将使用相同的值。GUID
对于名称相似的参数或属性,不同的 cmdlet 可以具有不同的值。如需更全面地澄清每个特定的 cmdlet,请参阅相应的 Microsoft 文档。通过查看所需 cmdlet 的文档,深入了解参数描述以获取更多详细信息。请参阅支持资源下面的部分中的示例。
虽然不同的 cmdlet 和它们为同一邮箱返回的数据之间可能存在关联,但嵌套foreach
循环中的复杂逻辑calculated properties
在以下情况下可能需要:管道输入是在足够了。看来您主要在寻求澄清,而不是寻求特定代码来检索每个邮箱的每个 cmdlet 的对象和值,因此我一直专注于提供澄清。
支持资源
获取邮箱-
returns object type [Mailbox]
皮条客果汁 IT:多个属性和参数(包括
database
和identity
属性)接受或返回 GUID 值。-Identity
Identity 参数指定要查看的邮箱。您可以使用任何唯一标识邮箱的值。例如:
- 姓名
- 别名
- 专有名称 (DN)
- 规范 DN
- 域\用户名
- 电子邮件地址
- 全局唯一标识符
- 旧版 ExchangeDN
- SamAccountName
- 用户 ID 或用户主体名称 (UPN)
获取邮箱统计信息 -
returns object type [MailboxStatistics]
- 皮条客果汁 IT:此
Get-MailboxStatistics
cmdlet 接受并返回GUID
某些属性和参数的值。它支持管道输入,使您可以使用类似命令并将其直接通过管道传输到。Get-Mailbox -Identity [email protected]
Get-MailboxStatistics
这使得您可以通过管道命令检索特定邮箱的统计信息。
确保研究参数以了解如何将第一个命令的输出处理为第二个命令的输入。
示例命令:
Get-Mailbox jsmith | Get-MailboxStatistics | Select *;
Get-Mailbox [email protected] | Get-Recipient | Select *;
-Identity
Identity 参数指定要返回统计信息的邮箱。您可以使用任何唯一标识邮箱的值。例如:
- 姓名
- 别名
- 专有名称 (DN)
- 规范 DN
- 域\用户名
- 电子邮件地址
- 全局唯一标识符
- 旧版 ExchangeDN
- SamAccountName
- 用户 ID 或用户主体名称 (UPN)
Accept pipeline input:
True
- 皮条客果汁 IT:此
获取收件人-
returns object type [ReducedRecipient]
皮条客果汁 IT:包括属性在内的几个属性和参数
identity
也使用此 cmdlet 接受或返回 GUID 值。-Identity
Identity 参数指定要查看的收件人对象。您可以使用任何唯一标识收件人的值。例如:- 姓名
- 别名
- 专有名称 (DN)
- 规范 DN
- 电子邮件地址
- 全局唯一标识符
Accept pipeline input:
True