Ich versuche eine Schleife zu automatisieren, die durch unsere Server läuft, um Protokolle von eventviewer zu sammeln und später in eine Webseite zu exportieren, die gut funktioniert, ABER ich möchte eine Eigenschaft hinzufügen Diese Liste oder möglicherweise ändern eine vorhandene schreibgeschützte Eigenschaft. HierBenutzerdefinierte Eigenschaft hinzufügen oder schreibgeschützte Eigenschaft ersetzen
ist die scriptlines Ich verwende:
$eventlog = (Get-EventLog -LogName system -Newest 5 -EntryType Error)
$eventlog | Select-Object Source,Message,MachineName | ConvertTo-Html -Head $a | Out-File C:\logs.htm
Das einzige wirkliche Problem hier ist, dass die Eigenschaft „Computername“ Liste „name.domain.com“ statt nur „Name“, also ging ich und vor addierte die folgenden:
$eventlog | ForEach-Object {
$_.MachineName=$env:COMPUTERNAME
}
Dies wurde gestoppt, weil die Eigenschaft schreibgeschützt ist, so dachte ich, dass ich vielleicht eine Eigenschaft zu meinem Objekt hinzufügen könnte und es einfach füllen mit einer variablen, die ich immer noch glauben sollte funktionieren, aber ich Ich verstehe nicht, wie Add-Member
funktioniert.
Hier ist, wie ich es ging:
$eventlog | Add-Member -Name Hostname -Value $env:COMPUTERNAME
oder
Add-Member -InputObject $eventlog -Name Hostname -Value $env:COMPUTERNAME
Offensichtlich allein dies nicht funktioniert, aber ich kann nicht meinen Kopf um, wie der Rest der Parameter sollen aussehen. Ich bin mir auch ziemlich sicher, dass die obige Zeile nicht einmal richtig ist, aber es ist genug, um Sie verstehen zu lassen, was ich zu erreichen versuche und vielleicht von einer besseren Lösung weiß!
richtig, ich mag dieses eine mehr – 4c74356b41
Tausend Dank! Das ist perfekt, es ist kurz und einfach, das ist einfach zu verstehen! –