Псевдоним имени собственности в Powershell 3

Используя приведенный ниже пример:

Get-Service | ConvertTo-HTML -Property Name, Status > C:\services.htm

Мне было интересно, возможно ли псевдоним имя свойства - так же, как вы могли бы в SQL:

Пример:

Get-Service | ConvertTo-HTML -Property Name AS NEWNAME , Status AS MYNEWSTATUSNAME> C:\services.htm

Я знаю, что приведенный выше синтаксис не сработает... Каков правильный способ псевдонимов имени свойства?

Ответ 1

Как насчет использования select-object?

get-service | select-object -property @{N='MyNewStatus';E={$_.Status}}, @{N='MyNewName';E={$_.Name}} | ConvertTo-HTML > C:\services.htm

Ответ 2

Путь к псевдониму имени свойства заключается в том, чтобы добавить объект AliasPropery к объекту.

Get-Service | 
foreach {
$_ | Add-Member -MemberType AliasProperty -Name MYNEWSTATUSNAME -Value Status -PassThru
} |
Select Name,MYNEWSTATUSNAME

Ответ 3

Вы можете сделать промежуточный шаг создания объектов с именами свойств, которые вы хотите использовать с помощью командлета new-object.

Get-Service | foreach{ new-object PSObject -property @{newname=($_.Name); newstatus=($_.Status)}} | ConvertTo-Html > .\services.htm