Wenn ich in meiner Listview folgenden code benutze werden die Zellen nicht gefüllt.
foreach ($SysEvent in $SysEvents) { $Member = New-Object PSObject -Property @{ Index = [String]$SysEvent.Index InstanceID = [String]$SysEvent.InstanceID TimeGenerated = [String]$SysEvent.TimeGenerated EntryType = [String]$SysEvent.EntryType Source = [String]$SysEvent.Source Message = [String]$SysEvent.Message }
Benutze ich den folgenden code wird mir der Index angezeigt aber dafür der Computername nicht.
foreach ($SysEvent in $SysEvents) { $Member = New-Object PSObject -Property @{ PSComputerName = [String]$SysEvent.PSComputerName Index = [String]$SysEvent.Index InstanceID = [String]$SysEvent.InstanceID TimeGenerated = [String]$SysEvent.TimeGenerated EntryType = [String]$SysEvent.EntryType Source = [String]$SysEvent.Source Message = [String]$SysEvent.Message }
'PSComputerName','Index','InstanceID','TimeGenerated','EntryType','Source','Message'| %{Add-Column $_} 'Index','InstanceID','TimeGenerated','EntryType','Source','Message'| %{Add-Column $_}
Verstehe einfach nicht was ich da falsch mache.
Hier ist der complete code:
$btnSysEvents_Click={ # Empty process bar $Progressbar.value = 0 # Empty StatusBox $StatusBox.Text = "" # Empty StatusBoxTools $StatusBoxTools.Text = "" # Close Excel button CloseExcelBtn getcomp Initialize-Listview $StatusBox.Text = "Machine Status: Retrieving System Events from Computer $Comp..." 'PSComputerName','Index','InstanceID','TimeGenerated','EntryType','Source','Message'| %{Add-Column $_} # 'Index','InstanceID','TimeGenerated','EntryType','Source','Message'| %{Add-Column $_} Resize-Columns # Col0 = $lvMain.Columns[0].Text $Info = @() $SysEvents = Get-EventLog -ComputerName $Comp -LogName System -EntryType Error,Warning -Newest 50 #| select-object Index,InstanceID,TimeGenerated,EntryType,Source,Message $i=0 ForEach ($SysEvent in $SysEvents) { $i++ (($i / $SysEvents.count)*100) $progressbar.PerformStep() } foreach ($SysEvent in $SysEvents) { $Member = New-Object PSObject -Property @{ PSComputerName = [String]$SysEvent.PSComputerName Index = [String]$SysEvent.Index InstanceID = [String]$SysEvent.InstanceID TimeGenerated = [String]$SysEvent.TimeGenerated EntryType = [String]$SysEvent.EntryType Source = [String]$SysEvent.Source Message = [String]$SysEvent.Message } $Info += $Member } Start-Sleep -m 250 if ($SysError){$StatusBox.Text = "Machine Status: [$Comp] $SysError"} else{ $Info | %{ $Item = New-Object System.Windows.Forms.ListViewItem($_.$Col0) $Item.UseItemStyleForSubItems = $False ForEach ($Col in ($lvMain.Columns | ?{$_.Index -ne 0})){ $Field = $Col.Text $SubItem = $Item.SubItems.Add($_.$Field) If($Field -eq "EntryType") { If($_.EntryType -eq "Error") { $SubItem.BackColor = "red" # Hintergrundfarbe Fehlermeldung } else { $SubItem.BackColor = "yellow" # Hintergrundfarbe Warnmeldung } } Else { } } $lvMain.Items.Add($Item) CountProgress } $btnSysEventExcel.visible = $true $StatusBox.Text = "Machine Status: 50 newest System errors and warnings on Computer $Comp" } # besseres column resize ForEach($Column in $lvMain.Columns) { $lvMain.AutoResizeColumn($Column.Index,([System.Windows.Forms.ColumnHeaderAutoResizeStyle]::ColumnContent)) } }