二进制 Cmdlet 格式化文件
Binary Cmdlet Formatting File
我正在使用 C# 开发我的第一个 PowerShell 二进制模块。该 cmdlet 是基本的,它将连接到我们的生产服务器并列出服务的状态。
我想输出 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>
我不知道将它放在哪里,以便它仅适用于我的 cmdlet。现在我正在使用 Import-Module
从 Visual Studio 的 bin\Debug 文件夹中提取我的 DLL。
您可以使用 Update-FormatData 并将其指向您的 .format.ps1xml 文件。 Link to TechNet
更新:在 this 回答中,他解释了如何在加载 C# 模块时 运行 脚本。
我正在使用 C# 开发我的第一个 PowerShell 二进制模块。该 cmdlet 是基本的,它将连接到我们的生产服务器并列出服务的状态。
我想输出 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>
我不知道将它放在哪里,以便它仅适用于我的 cmdlet。现在我正在使用 Import-Module
从 Visual Studio 的 bin\Debug 文件夹中提取我的 DLL。
您可以使用 Update-FormatData 并将其指向您的 .format.ps1xml 文件。 Link to TechNet
更新:在 this 回答中,他解释了如何在加载 C# 模块时 运行 脚本。