2015-01-24 1 views
0

PowerShell 모듈을 작성하고 몇 가지 사용자 지정 개체를 반환합니다. 이제는 모든 속성을 표시하지 않으려합니다 (예 : Get-ChildItem). 나는 멤버를 표시하는 경우PowerShell 사용자 지정 개체, 표준 출력의 속성을 무시하십시오.

enter image description here

, 예를 들어 사이에는 차이가 없다 LengthExists. 그렇다면 gci "C:\temp\u_ex150113.log"을 입력하면 Exists이 표시되지 않습니다. enter image description here

public class LogEntry 
{ 
    public DateTime Date { get; set; } 
    public DateTime Time { get; set; } 
    public DateTime DateTime => new DateTime(this.Date.Year, this.Date.Month, this.Date.Day, this.Time.Hour, this.Time.Minute, this.Time.Second); 
    public DateTime DateTimeLocalTime => DateTime.SpecifyKind(this.DateTime, DateTimeKind.Utc); 
    public IPAddress SourceIpAddress { get; set; } 
    public string Method { get; set; } 
    public string UriStem { get; set; } 
    public string UriQuery { get; set; } 
    public int Port { get; set; } 
    public string Username { get; set; } 
    public IPAddress ClientIpAddress { get; set; } 
    public string UserAgent { get; set; } 
    public string Referrer { get; set; } 
    public string HttpStatus { get; set; } 
    public string ProtocolSubstatus { get; set; } 
    public string SystemErrorCodes { get; set; } 
    public int ServerSentBytes { get; set; } 
    public int ServerReceivedBytes { get; set; } 
    public int TimeTaken { get; set; } 
} 

편집 내 사용자 정의 개체입니다 : 지금 훨씬 청소기 표준을 가지고 대답 감사합니다.

  • ConvertFromIISLogFile.format.ps1xml
  • ConvertFromIISLogFile.ps1xml
  • ConvertFromIISLogFile.psd1

ConvertFromIISLogFile.format.ps1xml

을이 들어

나는 프로젝트에 세 개의 파일을 추가

<?xml version="1.0" encoding="utf-8" ?> 
<Configuration> 
    <ViewDefinitions> 
     <View> 
      <Name>ConvertFromIISLogFile.LogEntry</Name> 
      <ViewSelectedBy> 
       <TypeName>ConvertFromIISLogFile.LogEntry</TypeName> 
      </ViewSelectedBy> 
      <TableControl> 
       <TableHeaders> 
        <!-- Timestamp --> 
        <TableColumnHeader> 
         <Width>19</Width> 
        </TableColumnHeader> 
        <!-- IP --> 
        <TableColumnHeader> 
         <Width>15</Width> 
        </TableColumnHeader> 
        <!-- Port --> 
        <TableColumnHeader> 
         <Width>4</Width> 
        </TableColumnHeader> 
        <!-- Status --> 
        <TableColumnHeader> 
         <Width>6</Width> 
        </TableColumnHeader> 
        <!-- Method --> 
        <TableColumnHeader> 
         <Width>6</Width> 
        </TableColumnHeader> 
        <!-- Target --> 
        <TableColumnHeader/> 
        <!-- Query --> 
        <TableColumnHeader/> 
        <!-- UserAgent --> 
        <TableColumnHeader/> 
        <!-- Sent --> 
        <TableColumnHeader> 
         <Width>7</Width> 
        </TableColumnHeader> 
        <!-- Receive --> 
        <TableColumnHeader> 
         <Width>7</Width> 
        </TableColumnHeader> 
        <!-- TimeTaken --> 
        <TableColumnHeader> 
         <Width>9</Width> 
        </TableColumnHeader> 
       </TableHeaders> 
       <TableRowEntries> 
        <TableRowEntry> 
         <TableColumnItems> 
          <TableColumnItem> 
           <PropertyName>Timestamp</PropertyName> 
          </TableColumnItem> 
          <TableColumnItem> 
           <PropertyName>IP</PropertyName> 
          </TableColumnItem> 
          <TableColumnItem> 
           <PropertyName>Port</PropertyName> 
          </TableColumnItem> 
          <TableColumnItem> 
           <PropertyName>Status</PropertyName> 
          </TableColumnItem> 
          <TableColumnItem> 
           <PropertyName>Method</PropertyName> 
          </TableColumnItem> 
          <TableColumnItem> 
           <PropertyName>Target</PropertyName> 
          </TableColumnItem> 
          <TableColumnItem> 
           <PropertyName>Query</PropertyName> 
          </TableColumnItem> 
          <TableColumnItem> 
           <PropertyName>UserAgent</PropertyName> 
          </TableColumnItem> 
          <TableColumnItem> 
           <PropertyName>Sent</PropertyName> 
          </TableColumnItem> 
          <TableColumnItem> 
           <PropertyName>Receive</PropertyName> 
          </TableColumnItem> 
          <TableColumnItem> 
           <PropertyName>TimeTaken</PropertyName> 
          </TableColumnItem> 
         </TableColumnItems> 
        </TableRowEntry> 
       </TableRowEntries> 
      </TableControl> 
     </View> 

    </ViewDefinitions> 
</Configuration> 

ConvertFromIISLogFile.ps1xml

<?xml version="1.0" encoding="utf-8"?> 
<Types> 
    <Type> 
    <Name>ConvertFromIISLogFile.LogEntry</Name> 
    <Members> 
     <MemberSet> 
     <Name>PSStandardMembers</Name> 
     <Members> 
      <PropertySet> 
      <Name>DefaultDisplayPropertySet</Name> 
      <ReferencedProperties> 
       <Name>Timestamp</Name> 
       <Name>IP</Name> 
       <Name>Port</Name> 
       <Name>Status</Name> 
       <Name>Method</Name> 
       <Name>Target</Name> 
       <Name>Query</Name> 
       <Name>UserAgent</Name> 
       <Name>Sent</Name> 
       <Name>Receive</Name> 
       <Name>TimeTaken</Name> 
      </ReferencedProperties> 
      </PropertySet> 
     </Members> 
     </MemberSet> 

     <AliasProperty> 
     <Name>Timestamp</Name> 
     <ReferencedMemberName>DateTimeLocalTime</ReferencedMemberName> 
     </AliasProperty> 
     <AliasProperty> 
     <Name>IP</Name> 
     <ReferencedMemberName>ClientIpAddress</ReferencedMemberName> 
     </AliasProperty> 
     <AliasProperty> 
     <Name>Status</Name> 
     <ReferencedMemberName>HttpStatus</ReferencedMemberName> 
     </AliasProperty> 
     <AliasProperty> 
     <Name>Sent</Name> 
     <ReferencedMemberName>ServerSentBytes</ReferencedMemberName> 
     </AliasProperty> 
     <AliasProperty> 
     <Name>Receive</Name> 
     <ReferencedMemberName>ServerReceivedBytes</ReferencedMemberName> 
     </AliasProperty> 
     <AliasProperty> 
     <Name>Target</Name> 
     <ReferencedMemberName>UriStem</ReferencedMemberName> 
     </AliasProperty> 
     <AliasProperty> 
     <Name>Query</Name> 
     <ReferencedMemberName>UriQuery</ReferencedMemberName> 
     </AliasProperty> 
    </Members> 
    </Type> 
</Types> 

ConvertFromIISLogFile.psd1

@{ 

# Script module or binary module file associated with this manifest. 
RootModule = 'ConvertFromIISLogFile.dll' 

# [...] 

# Type files (.ps1xml) to be loaded when importing this module 
TypesToProcess = @('ConvertFromIISLogFile.ps1xml') 

# Format files (.ps1xml) to be loaded when importing this module 
FormatsToProcess = @('ConvertFromIISLogFile.format.ps1xml') 

# [...] 

} 

답변

관련 문제