将两个Powershell命令的输出添加到Array中



我一直在试图弄清楚这是否在Powershell中是可能的。我试图从Outlook全局地址列表中将所有用户及其电子邮件地址的列表拉到一个数组中,因此结果输出看起来像这样:

Alice Peters petersa@wedsite.tld
Bob Jackson jackson@website.tld
etc

我目前能够使用:

提取信息
[Microsoft.Office.Interop.Outlook.Application] $galSearch = New-Object -ComObject Outlook.Application
$search = @($galSearch.Session.GetGlobalAddressList().AddressEntries | ForEach-Object {$_.GetExchangeUser().Name; $_.GetExchangeUser().PrimarySmtpAddress})
$search
如您所料,结果的格式是这样的:
Alice Peters
petersa@wedsite.tld
Bob Jackson
jackson@website.tld
etc

是否有一种方法可以让它们成对而不是一个在另一个之上?

我的Outlook在GAL中没有任何内容,所以我无法验证我的建议。

如果对象类型支持字符串处理,只需将两个结果合并为一个字符串。

ForEach-Object {
$_.GetExchangeUser().Name + ' ' +  
$_.GetExchangeUser().PrimarySmtpAddress
}

否则,先尝试转换为字符串。

ForEach-Object {
($_.GetExchangeUser().Name).ToString() + ' ' +  
($_.GetExchangeUser().PrimarySmtpAddress).ToString()
}

或者你可以直接创建哈希表

或者,正如Mathias在他的评论中指出的,最简单的解决方案是只选择属性。它将返回一个对象而不是数组。

相关内容

  • 没有找到相关文章

最新更新