2016-09-07 2 views
0

Ich entwickle mein erstes PowerShell-Binärmodul mit C#. Das Cmdlet ist einfach, es stellt eine Verbindung zu unseren Produktionsservern her und listet den Status der Dienste auf.Binär-Cmdlet-Formatierungsdatei

Ich möchte die Eigenschaft zusammen mit den Standardeigenschaften Status, Name und DisplayName Eigenschaften ausgeben. (Ich kann Get-AppService | select MachineName,Status,Name tun dies zu erreichen.)

ich über die Verwendung einer .format.ps1xml Datei gelesen haben, die ich geschrieben habe:

<?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> 

Ich weiß nicht, wo diese zu setzen, so dass es nur gilt mein Cmdlet. Im Moment verwende ich Import-Module, um meine DLL aus dem bin \ Debug-Ordner von Visual Studio einzuziehen.

Antwort

1

Sie können Update-FormatData verwenden und auf Ihre Datei .format.ps1xml verweisen. Link to TechNet

Update: In this beantworten er erklärt, wie ein Skript ausgeführt wird, wenn Ihr C# -Modul geladen ist.

+0

Danke, aber wie kann ich das über C# -Code aufrufen? – hsimah

+0

Legend, genau das musste ich wissen. Vielen Dank. – hsimah