PowerShell Windows Ereignisanzeige

Alfredo64

Cadet 3rd Year
Registriert
Jan. 2020
Beiträge
43
Hallo,

ich habe ein Skript geschrieben, und das Ergebnis davon gebe ich in eine Hashstabelle. Jetzt würde ich mit dieser Hashtabelle gerne einen Eintrag in der Windows Ereignisanzeige anlegen. Ich habe jetzt schon einen Ansatz allerdings Funktioniert dieser nicht.

PowerShell:
eventcreate /T INFORMATION /ID 100 /D '$hashtable'
/L APPLICATION /SO Updates/Installation

Der Inhalt, der Hashtabelle sieht Folgendermaßen aus:

PowerShell:
Name                           Value                                   
----                           -----
Cursor-CRM_Port1, documents    9

Falls jemand einen Tipp oder Vermutung hat wie es gehen könnte.
gerne her damit.

Danke :)
 
Zuletzt bearbeitet:
Code:
(Get-Module Microsoft.PowerShell.Management).ExportedCommands.GetEnumerator() | ? { $_.Key -like '*eventlog*' } | % Value

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Cmdlet          Clear-EventLog                                     3.1.0.0    Microsoft.PowerShell.Management
Cmdlet          Get-EventLog                                       3.1.0.0    Microsoft.PowerShell.Management
Cmdlet          Limit-EventLog                                     3.1.0.0    Microsoft.PowerShell.Management
Cmdlet          New-EventLog                                       3.1.0.0    Microsoft.PowerShell.Management
Cmdlet          Remove-EventLog                                    3.1.0.0    Microsoft.PowerShell.Management
Cmdlet          Show-EventLog                                      3.1.0.0    Microsoft.PowerShell.Management
Cmdlet          Write-EventLog                                     3.1.0.0    Microsoft.PowerShell.Management
Sind die verfügbaren EventLog-Cmdlets.

https://docs.microsoft.com/de-de/po...ft.powershell.management/?view=powershell-5.1

Speziell Write-EventLog: https://docs.microsoft.com/en-us/po...management/write-eventlog?view=powershell-5.1
 
"Funktioniert nicht" ist keine Beschreibung für einen Fehler.
Was funktioniert nicht?

Und sinnvoll, die von @Yuuri genannten PowerShell-Cmdlets zu verwenden, auch wenn der andere Befehl grundsätzlich auch ans Ziel führen sollte.
 
Meine Hashtabelle ist ja : $hashtable

Und wenn ich diese in einsetzte, dass sie in den Ereignislog geschrieben wird. Wird sie nur als String übergeben.
Allerdings möchte ich ja den Inhalt der $hashtable übergeben.

Das Anlegen eines Ereignissens Ansicht Funktioniert.
 
Dann musst du auch deine Werte entsprechend formatieren und als String übergeben. Wir wissen nicht, was dort alles drin vorkommen kann.
Bspw.:
Code:
$str = ""
@{"Cursor-CRM_Port1, documents" = "9"}.GetEnumerator() | % { $str += $_.Key + " = " + $_.Value }
& eventcreate /T INFORMATION /ID 100 /D $str /L APPLICATION /SO "Updates/Installation"
Lies dich aber eher in die Cmdlets ein.
 
Vielleicht doppelte Anführungszeichen drum herum nehmen?

"'$hashtable'"

Aber würde auch zum CmdLet raten...
 
Ok schon mal vielen Dank!
Ich werde mich damit jetzt erst mal befassen.

Hat jemand vielleicht noch jemand eine andere Idee wie ich meine Ergebnisse in die
Windows Ereignisanzeige übergeben kann. Ich hatte meine Ergebnisse zwischenzeitlich auch schon in deiner CSV Datei. Das war allerdings nicht mehr gewünscht.
 
Es wäre echt gut zu wissen, was an dem jeweiligen Ansatz denn nicht gut war bzw. nicht funktioniert hat, um zu wissen, was "anders" sein sollte.
 
Ich erinner mich düster an meine Anfänge mit PS und Eventlogs.... weiß nicht ob das noch so ist, aber "damals" mußte man zunächst eine Source anlegen für das Event, welches man protokollieren wollte.

Und um diese Source anzulegen brauchte man Adminrechte.

Danach ging's aber ohne und ganz normal weiter.


=> Obligatorische Anmerkung: Scripts und Eventlog sind immer etwas problamatisch von Haus aus, weil das Eventlog in seiner STANDARDform keinen Text protokolliert.
Stattdessen wird ein Record erstellt von EventID, ein paar Subattributen, einer Meldungs-ID und noch ein paar extra Daten als Binärobjekt. Dadurch nimmt ein Eintrag im Log nur sehr wenig Platz weg.
Nimmt man aber ein Script und insbesondere: hat man keine Ressource DLL für die Meldungen, dann gehen die Ereignisse unkomprimiert im Klartext ins Log. Ergo, je mehr man das nutzt, desto mehr bläht es sich auf.

Daher in Abhängigkeit der erwarteten Nutzungshäufigkeit und insbesondere im Hinblick auf den Umfang der vorgesehenen Einträge dort mehr oder weniger "dringend" die Erstellung und Registrierung einer entsprechenden Meldungs-DLL ins Auge fassen.
 
Zurück
Oben