Назад | Перейти на главную страницу

Powershell - Select-object сохраняет одни и те же столбцы во всем скрипте

ХОРОШО. Я просто рисую здесь пробел, или мне не хватает чего-то очевидного. В сценарии 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