powershell - PowerShell 管道 ExpandProperty 到另一个 Select-Object
问题描述
我想获取 O365 租户中所有电子邮件收件人的别名。如果我正在执行这一传统 Exchange,最简单的方法是Get-Recipient
使用 Exchange 管理控制台提取 SMTPAddress 属性。(请注意,选择通过管道连接到另一个选择;就像冠军一样工作。)
Get-Recipient | Select Name,SamAccountName -ExpandProperty EmailAddresses | Select Name,SamAccountName,SmtpAddress
问题是当我尝试在 EXO 中做同样的事情时,“EmailAddresses”属性被输出为一个扁平字符串,所以当我尝试将它传送到第二个选择时,唯一的属性是长度,而不是实际值字符串。
以下类型的作品,但我觉得必须有更好的方法?
Get-EXORecipient | Select Name -ExpandProperty EmailAddresses | % {Write-Output "$($_.Name),$($_)"}
解决方案
正如您所说,-ExpandProperty EmailAddresses
扩展为strings。
-Property
如果您还传递(位置隐含的)参数,例如Name
在您的示例中,这些字符串装饰的附加属性存在,但通常不会出现,除非您在现在装饰的输出字符串上显式访问它们。
如果您想要包含每个电子邮件地址作为属性的输出对象,则需要做更多的工作。
Get-EXORecipient | ForEach-Object {
foreach ($emailAddress in $_.EmailAddresses) {
[pscustomobject] @{
EmailAddress = $emailAddress
Name = $_.Name
# ... add further properties of interest here
}
}
}
推荐阅读
- c++ - 从 cpp 传输到 fortran 过程时出现舍入错误
- python - 如何将进度条与多处理同步
- firebase - 更新服务器时间戳 - firestore
- amazon-web-services - aws api网关和lambda函数超时问题
- java - 加密/解密java到PHP
- ssl - 有没有办法在 Groovy 中使用 JKS Keystore 或 Truststore 为 HTTP 调用实现 SSL?
- python - 使用 NN 在回归中如何使用多个输出计算损失?
- c++ - 通过执行小写到大写转换和小写删除的字符串转换
- mongodb - 在 mongo 中更新集合文档时,在使用它的每个其他文档或集合中更新它
- mysql - 将每月固定值拆分为每天和国家