ХОРОШО. Я просто рисую здесь пробел, или мне не хватает чего-то очевидного. В сценарии Powershell (V3) я звоню
Get-ADUser -Filter 'SAMAccoutnName -like $ADUserName' -Properties Name,SamAccountName,EmailAddress | Select-Object Name, SamAccountName, EmailAddress
Он перечисляет данные в формате столбца, который я ожидал
Name SamAccountName EmailAddress
------ --------------- ------------
User Name username user.name@co.com
Проблема не в этом. Когда после этого я вызываю другую команду в сценарии (на самом деле Exchange 2013)
Get-Mailbox -Identity username | Select-Object Name, SAMAccountName, PrimarySMTPAddress
Я получаю только соответствующие столбцы из предыдущего Select-Object без заголовков:
User Name username
Даже если я специально прошу другой набор, такой как "PrimarySMTPAddress" сверху.
Что мне здесь не хватает? Это сводит меня с ума.
Заранее спасибо.
Проблема здесь в том, что если вы запустите select-object в качестве последнего командлета в конвейере с другим набором свойств, PowerShell не будет «неявно» вызывать Out-Default
для каждой команды, поэтому форматирование не сбрасывается.
Но то, что не делается неявно, всегда можно сделать явно. Просто выведите любую команду (может быть, кроме последней) в Out-Default
:
ls | select Name | Out-Default
ls | select DirectoryName