Powershell – select对象在整个脚本中保持相同的列

好。 我只是在这里画一个空白,或者我错过了一些明显的东西。 在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”不同的集合。

我在这里错过了什么? 这真让我抓狂。

提前致谢。

这里的问题是,如果你运行select-object作为具有不同属性集的pipe道中的最后一个cmdlet,PowerShell将不会“隐式地”为每个命令调用Out-Default ,所以它不会“重置”格式。

但是什么不是隐含的,总是可以明确地做。 只要输出任何命令(可能除了最后一个) Out-Default

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