首页 > 解决方案 > 在 powershell 中显示来自两个对象的信息

问题描述

我想在彼此旁边显示来自 Skype 和 AD 的信息。(我将此作为一个具体问题提出,但我经常遇到这个问题)。
简化版本是这样的:

get-csuser | ForEach-Object { $_.displayname,(Get-ADUser -Identity $_.samaccountname -Properties officephone).officephone  } | ft  

这将向我显示来自 Skype 的显示名称和来自 AD 的电话号码。但它会将其显示为新行,而我想将它放在一张方便的桌子上。
实现这一目标的最佳方法是什么?
谢谢

标签: powershell

解决方案


我认为您正在 Select-Object 中寻找“计算的属性”。name 是您的标签,而 expression 是一个脚本块。两者都包装在哈希表中。

@{ Name = '';  Expression = {}}

因此,对于您的代码,它可以是这样的(没有检查语法):

get-csuser | ForEach-Object { $_.displayname, @{ n= 'officePhone'; e = { (Get-ADUser -Identity $_.samaccountname -Properties officephone).officephone } } 

注意:我们可以使用简写来表示名称和表达。

链接:更多示例


推荐阅读