Powershell - 选择对象在整个脚本中保持相同的列

Powershell - 选择对象在整个脚本中保持相同的列

好的。我只是在这里画了个空白,或者我遗漏了一些明显的东西。在 Powershell (V3) 脚本中,我调用

Get-ADUser -Filter 'SAMAccoutnName -like $ADUserName' -Properties Name,SamAccountName,EmailAddress | Select-Object Name, SamAccountName, EmailAddress

它以我期望的列格式列出数据

Name           SamAccountName          EmailAddress
------         ---------------         ------------
User Name      username                [email protected]

这不是问题。当我在脚本中调用另一个命令时(实际上是 Exchange 2013)

Get-Mailbox -Identity username | Select-Object Name, SAMAccountName, PrimarySMTPAddress

我仅从之前的 Select-Object 中获取没有标题的相应列:

User Name     username

即使我特别要求不同的设置,比如上面的“PrimarySMTPAddress”。

我这里漏掉了什么?这让我抓狂了。

提前致谢。

答案1

这里的问题是,如果您使用不同的属性集将 select-object 作为管道中的最后一个 cmdlet 运行,PowerShell 将不会“隐式”调用Out-Default每个命令,因此它不会“重置”格式。

但是没有隐式完成的事情总是可以显式完成的。只需将任何命令(可能除了最后一个命令)输出到Out-Default

ls | select Name | Out-Default
ls | select DirectoryName

相关内容