2013-06-03 13 views
5

Bit einer einfachen Frage, aber wie wähle ich eine bestimmte Spalte in der folgenden Code?zeigen nur eine Spalte im Ergebnis?

Ich möchte nur TIME Spalte und nichts anderes zeigen. Ich versuche, in FORMAT_TABLE TIME setzen, aber es füllt nur mit mehrfach Zeit, ohne die Zeit tatsächlich zu zeigen ..

$server_event = Get-Content -Path "c:\Temp\Servers.txt" 

foreach($servers in $server_event) 
{ 

$event = Get-EventLog -computerName $servers -logname system | Where-Object {$_.EventID -eq 6009} | Select -First 1 

$event 

} 

ERGEBNIS: ICH WILL der Zeitspalte

Index Time   EntryType Source     InstanceID Message                      
    ----- ----   --------- ------     ---------- -------                      
    78858 Jun 01 07:19 Information EventLog    2147489657 Microsoft (R) Windows (R) 5.02. 3790 Service Pack 2 Multiprocessor Free.      
    46221 Jun 01 07:20 Information EventLog    2147489657 Microsoft (R) Windows (R) 5.02. 3790 Service Pack 2 Multiprocessor Free.      
    214480 Jun 01 07:46 Information EventLog    2147489657 Microsoft (R) Windows (R) 5.02. 3790 Service Pack 2 Multiprocessor Free.      
    461238 Jun 01 07:18 Information EventLog    2147489657 Microsoft (R) Windows (R) 5.02. 3790 Service Pack 2 Multiprocessor Free.      
    70889 Jun 01 07:17 Information EventLog    2147489657 Microsoft (R) Windows (R) 5.02. 3790 Service Pack 2 Multiprocessor Free.      
    52397 Jun 01 07:19 Information EventLog    2147489657 Microsoft (R) Windows (R) 5.02. 3790 Service Pack 2 Multiprocessor Free.      
    42219 Jun 01 07:40 Information EventLog    2147489657 Microsoft (R) Windows (R) 5.02. 3790 Service Pack 2 Uniprocessor Free.  

Antwort

6

try NUR SHOW:

$event = Get-EventLog -computerName $servers -logname system | Where-Object {$_.EventID -eq 6009} | Select TimeGenerated -First 1 
+1

ahhh ........ Timegenerated! Deshalb verwirrte es mich! Wie finden Sie den genauen Namen der Spalten C.B.? – lara400

+0

Verwenden Sie stattdessen "Get-WinEvent". Das 'Get-EventLog' ist für [Abwärtskompatibilität] (http://technet.microsoft.com/en-us/library/hh849682.aspx) (siehe Abschnitt" Hinweise "). Oh, und dann ist es TimeCreated, nicht TimeGenerated. – vonPryz

+3

auf diese Weise: '(Get-EventLog -Logname-System) [0] | fl * 'gibt eine Liste aller Eigenschaften für ein einzelnes Eventlog zurück. Sie finden auch 'timewritten', aber IIRC das, das Sie standardmäßig sehen Powershell-Format s' Timegenerated' –

2

Sie können sehen, wie die Namen, indem Sie in der Datei DotNetTypes.format.ps1xml diese befindet sich im $pshome Verzeichnis mit dem Namen neu formatiert bekommen.

Wenn Sie System.Diagnostics.EventLogEntry suchen Sie die folgenden sehen werden, die als Timegenerated wie Uhrzeit und die Anzeigeformate {0: MMM} {0: dd} {0: HH} {0: mm}:

<View> 
    <Name>System.Diagnostics.EventLogEntry</Name> 
    <ViewSelectedBy> 
     <TypeName>System.Diagnostics.EventLogEntry</TypeName> 
    </ViewSelectedBy> 

    <TableControl> 
     <TableHeaders> 
      <TableColumnHeader> 
       <Label>Index</Label> 
       <Alignment>Right</Alignment> 
       <Width>8</Width> 
      </TableColumnHeader> 
      <TableColumnHeader> 
       <Label>Time</Label> 
       <Width>13</Width> 
      </TableColumnHeader> 
      <TableColumnHeader> 
       <Label>EntryType</Label> 
       <Width>11</Width> 
      </TableColumnHeader> 
      <TableColumnHeader> 
       <Label>Source</Label> 
       <Width>20</Width> 
      </TableColumnHeader> 
      <TableColumnHeader> 
       <Label>InstanceID</Label> 
       <Alignment>Right</Alignment> 
       <Width>12</Width> 
      </TableColumnHeader> 
      <TableColumnHeader> 
       <Label>Message</Label> 
      </TableColumnHeader> 
     </TableHeaders> 
     <TableRowEntries> 
      <TableRowEntry> 
       <TableColumnItems> 
        <TableColumnItem> 
         <PropertyName>Index</PropertyName> 
        </TableColumnItem> 
        <TableColumnItem> 
         <PropertyName>TimeGenerated</PropertyName> 
         <FormatString>{0:MMM} {0:dd} {0:HH}:{0:mm}</FormatString> 
        </TableColumnItem> 
        <TableColumnItem> 
         <ScriptBlock>$_.EntryType</ScriptBlock> 
        </TableColumnItem> 
        <TableColumnItem> 
         <PropertyName>Source</PropertyName> 
        </TableColumnItem> 
        <TableColumnItem> 
         <PropertyName>InstanceID</PropertyName> 
        </TableColumnItem> 
        <TableColumnItem> 
         <PropertyName>Message</PropertyName> 
        </TableColumnItem> 
       </TableColumnItems> 
      </TableRowEntry> 
     </TableRowEntries> 
    </TableControl> 
</View> 

so können Sie erhalten nur die Zeit Spalte Timegenerated wie folgt:

Get-EventLog -LogName System | select TimeGenerated 
Verwandte Themen