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