我想得到我的O365租户的所有电子邮件收件人的别名。如果我要做这个传统的Exchange,最简单的就是使用Exchange控制台提取Get-Recipient和SMTPAddress属性。(请注意,选择管道进入另一个选择;工作像冠军。)
Get-Recipient | Select Name,SamAccountName -ExpandProperty EmailAddresses | Select Name,SamAccountName,SmtpAddress
问题是,当我试图在EXO中执行相同的操作时,"EmailAddresses“属性作为平面字符串输出,所以当我尝试将其输送到第二个select时,唯一的属性是长度,而不是字符串的实际值。
下面这类作品,我觉得一定有更好的方法吗?
Get-EXORecipient | Select Name -ExpandProperty EmailAddresses | % {Write-Output "$($_.Name),$($_)"}
发布于 2021-10-18 16:11:36
正如您所述,-ExpandProperty EmailAddresses扩展为字符串。
如果您还传递(位置上隐含的) -Property参数(例如示例中的Name ),则这些字符串被修饰的附加属性是存在的,但通常不会显示出来,除非您在现在修饰的输出字符串上显式地访问它们。
如果您希望将包含每个电子邮件地址的输出对象作为属性,则需要进行更多的工作。
Get-EXORecipient | ForEach-Object {
foreach ($emailAddress in $_.EmailAddresses) {
[pscustomobject] @{
EmailAddress = $emailAddress
Name = $_.Name
# ... add further properties of interest here
}
}
}https://stackoverflow.com/questions/69618922
复制相似问题