Файл форматирования двоичного командлета
Я разрабатываю свой первый двоичный модуль PowerShell с использованием C#. Командлет является базовым, он подключается к нашим производственным серверам и отображает состояние служб.
Я хотел бы вывести MachineName
свойство вместе со значением по умолчанию Status
, Name
а также DisplayName
свойства. (Я могу сделать Get-AppService | select MachineName,Status,Name
чтобы сделать это.)
Я читал об использовании .format.ps1xml
файл, который я написал:
<?xml version="1.0" encoding="utf-8" ?>
<Configuration>
<ViewDefinitions>
<View>
<Name>service</Name>
<ViewSelectedBy>
<TypeName>System.ServiceProcess.ServiceController</TypeName>
</ViewSelectedBy>
<TableControl>
<TableHeaders>
<TableColumnHeader>
<Width>20</Width>
</TableColumnHeader>
<TableColumnHeader>
<Width>8</Width>
</TableColumnHeader>
<TableColumnHeader>
<Width>18</Width>
</TableColumnHeader>
<TableColumnHeader>
<Width>38</Width>
</TableColumnHeader>
</TableHeaders>
<TableRowEntries>
<TableRowEntry>
<TableColumnItems>
<TableColumnItem>
<PropertyName>MachineName</PropertyName>
</TableColumnItem>
<TableColumnItem>
<PropertyName>Status</PropertyName>
</TableColumnItem>
<TableColumnItem>
<PropertyName>Name</PropertyName>
</TableColumnItem>
<TableColumnItem>
<PropertyName>DisplayName</PropertyName>
</TableColumnItem>
</TableColumnItems>
</TableRowEntry>
</TableRowEntries>
</TableControl>
</View>
</ViewDefinitions>
</Configuration>
Я не знаю, где это сделать, чтобы это относилось только к моему командлету. Щас пользуюсь Import-Module
вытащить мою DLL из папки bin\Debug Visual Studio.
1 ответ
Вы можете использовать Update-FormatData и указать его в своем файле.format.ps1xml. Ссылка на TechNet
Обновление: в этом ответе он объясняет, как запустить скрипт, когда ваш модуль C# загружен.