2013-06-03 20 views
5

Basit bir soru biraz ama aşağıdaki kodda belirli bir sütun nasıl seçerim?sonuçta yalnızca bir sütun gösterilsin mi?

Sadece TIME sütununu göstermek istiyorum ve başka bir şey yok. Ben denemek ve FORMAT_TABLE TIME koymak ama sadece aslında vakit göstermeden ZAMAN birden çok kez ile doldurur ..

$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 

} 

SONUCU: Ben SADECE ZAMAN Sütun göster İSTİYORUM

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.  

cevap

6

deneyin:

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

ahhh ........ TimeGenerated! Bu yüzden kafamı karıştırıyordu! C.B. sütunlarının tam adını nasıl buluyorsunuz? – lara400

+0

Ayrıca, 'Get-WinEvent 'yerine kullanın. Get-EventLog, [geriye dönük uyumluluk] içindir (http://technet.microsoft.com/en-us/library/hh849682.aspx) (Notlar bölümüne bakın). Oh, ve o zaman TimeCreated, TimeGenerated değil. – vonPryz

+3

bu şekilde: '(Get-EventLog -logname sistemi) [0] | fl * 'tek bir olay için tüm özelliklerin bir listesini döndürür. Ayrıca "timewritten", ancak IIRC, varsayılan powershell formatı olan "Timegenerated" –

2

DotNetTypes.format.ps1xml adlı dosyaya bakarak adların nasıl yeniden biçimlendirildiğini görebilirsiniz, bu, $pshome dizininde bulunur.

Eğer System.Diagnostics.EventLogEntry aramak Eğer Saati olarak TimeGenerated biçimlendirir aşağıdakileri ve aynı ekranı göreceksiniz {0: MMM} {0: dd} {0: SS} {0: dd}:

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

Yani şöyle TimeGenerated kullanarak sadece Zaman Sütun alabilirsiniz:

Get-EventLog -LogName System | select TimeGenerated 
İlgili konular