Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Powershell - Systemeventlog auslesen

Mitglied: kallewirsch

kallewirsch (Level 1) - Jetzt verbinden

03.09.2007, aktualisiert 18.10.2012, 13808 Aufrufe, 6 Kommentare

Powrshell - Newbie
Hallo Forum, ich möchte die System-Eventlogs mit Hilfe der Powershell von einem zentralen Scriptserver aus auf verschiedenen W2K / W2K3-Servern auslesen. Allerdings nicht das komplette Eventlog, sondern nur bestimmte Einträge, aber immer für die letzten 24h Stunden.

Hier das kleine Powershellscript:


01.

02.
#Computer, von dem ich das Systemevent auslesen möchte...
03.
$strComputer = "Hans"
04.

05.
#Datum im Format YYYYMMDD bereitstellen und zu Testzwecken ausgeben
06.
$datum1=(get-date (get-date).AddDays(-1) -uformat %Y%m%d)
07.
Write-Host $datum1
08.

09.
#Von-Datum im Epochendatumsformat zusammenbauen und zu Testzwecken ausgeben
10.
$datum2=($datum1+"000000.000000")
11.
Write-Host $datum2
12.

13.
#BIS-Datum im Epochendatumsformat zusammenbauen und zu Testzwecken ausgeben
14.
$datum3=($datum1+"235959.999999")
15.
Write-Host $datum3
16.

17.

18.
#Objekt anlegen
19.
$colItems = get-wmiobject -class "Win32_NTLogEvent" -namespace "root\CIMV2" -computername $strComputer -Filter "LogFile='System' and EventCode='10' and SourceName='Print'" | where {"$_.TimeWritten -gt $datum2 -and $_.TimeWritten -lt $datum3"}
20.

21.
#For-Schleife durcharbeiten und ausgeben
22.
foreach ($objItem in $colItems) {
23.
      write-host "Message: " $objItem.Message
24.
      write-host "Time Written: " $objItem.TimeWritten
25.
      write-host
26.
}
Könnt Ihr mir helfen? Könnte das Problem vielleicht in der Epochen-Zeit liegen? Ich vermute, das es ein Problem mit der Where-Bedingung ist, da keine der beiden Datumsabfragen greift.....
Ein Auslesen über VB-Script oder Logparser kommt leider nicht in Frage, so dass ich es mit der Powershell machen muss.......

Vielen Dank
Mitglied: TuXHunt3R
03.09.2007 um 21:57 Uhr
Pack bitte den Code in Codeblöcke, so ist er fast nicht lesbar.

z.B. so:

01.

02.
write-host "Hier ist der Code"
03.

Hilfe findest du unter "Formatierungshilfe"
Bitte warten ..
Mitglied: kallewirsch
03.09.2007 um 23:01 Uhr
Sorry, hatte ich vergessen, danke für den Hinweis.
Bitte warten ..
Mitglied: TuXHunt3R
04.09.2007 um 21:15 Uhr
Versuch die where-Bedingung mal so (Nicht getestet):

01.

02.
where {$_.TimeWritten -gt $datum2 and $_.TimeWritten -lt $datum3}
03.

Hilfe zum Where-CMDlet gibts durch die Eingabe von
01.
get-help where-object -detailed
"where" ist ein Alias vom CMDlet "where-object"
Bitte warten ..
Mitglied: kallewirsch
12.09.2007 um 09:38 Uhr
Hi TuXHunt3R,

die Hilfe hat mich ein Stück weiter gebracht und jede Menge ausprobieren.

Als Ergebnis habe ich zwei Varianten gefunden, eine Schlechte und eine Gute, allerdings nur durch das Measure-Command.

Nun das Script:
01.

02.
#Skriptname: Eventlog Remote auslesen
03.
#
04.
#Autor: kallewirsch
05.
#
06.
#Auflage: 1.0
07.
#
08.
#Verzeichnis: /Scripte
09.
#
10.
#Beschreibung: 
11.
#Anmerkungen: keine
12.
#
13.
#
14.
#
15.
#Variablendeklaration
16.
#
17.

18.
$strComputer="Hans"
19.
$lfdzae=0
20.
$lfzeit=0
21.

22.
$datum1=(get-date (get-date).AddDays(-1) -uformat %Y%m%d)
23.
#Write-Host $datum1
24.
$datum2=($datum1+"000000.000000+120")
25.
#Write-Host $datum2
26.
$datum3=($datum1+"235959.999999+120")
27.
#Write-Host $datum3
28.
#
29.

30.
# Schlechte Variante:
31.
$lfzeit=(Measure-Command {$colItems=Get-WmiObject -class "Win32_NtLogEvent" -Namespace "root\cimv2" -computername $strComputer | where-object -FilterScript {$_.logfile -eq 'System' -and $_.Eventcode -eq 10 -and $_.Sourcename -eq 'Print' -and $_.TimeWritten -gt "$datum2" -and $_.Timewritten -lt "$datum3"}}).Totalseconds
32.
#
33.

34.
# Gute Variante:
35.
#$lfzeit=(Measure-Command {$colItems=Get-WmiObject -Namespace "root\cimv2" -computername $strComputer -Query "select * from win32_ntlogevent where logfile = 'System' and Eventcode=10 and Sourcename = 'Print' and TimeWritten >= '$datum2' and Timewritten <= '$datum3'"}).Totalseconds
36.
foreach ($objItem in $colItems) {
37.
   $lfdzae=$lfdzae+1
38.
   write-host
39.
   write-host "Message: "      $objItem.Message
40.
   write-host "Time Generated: " $objItem.Generated
41.
   write-host "Time Written: " $objItem.TimeWritten
42.
   write-host
43.
}
44.

45.
Write-Host "lfdzae :" $lfdzae
46.
Write-Host "Ausfuehrungsdauer betraegt $lfzeit Sekunden"
47.

48.
Der Unterschied liegt in der Abarbeitung des Befehles, in der schlechten Variante wird das wohl das gesamte Eventlog des Remote-Rechners auf den lokalen Rechner gezogen und dann entsprechend des Pipe-Befehls das Filter-Script angewendet.
Im anderen Fall wird die SQL-ähnliche Abfrage benutzt, diese filtert auf dem Remote-Server sofort das Eventlog und gibt nur entsprechend der where-Klausel das Ergebnis zurück.

Im Zusammenhang mit dem Measure-Command wird das ganze deutlich.

Sollte ich in der Beschreibung der Befehle einen Fehler haben, bitte um Korrektur.

Danke und viel Spaß beim ausprobieren.
Bitte warten ..
Mitglied: TuXHunt3R
12.09.2007 um 12:14 Uhr
Sehr gutes Script.

Werds gleich mal testen
Bitte warten ..
Mitglied: TuXHunt3R
28.04.2008, aktualisiert 18.10.2012
Hier noch was zum Thema Eventlog+PowerShell (unter Anderem):
https://www.administrator.de/wissen/powershell-for-runaways-part-ii-8661 ...
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Remote Powershell ausführen wie lokale Powershell

gelöst Frage von IngenieursBatch & Shell2 Kommentare

Hallo vielleicht ist der Titel nicht ganz deutlich formuliert. Ich möchte wissen ob es eine Möglichkeit gibt Remote Powershell ...

Batch & Shell

Powershell elevated

Tipp von AnkhMorporkBatch & Shell2 Kommentare

Ein kleiner Tipp am Rande für alle PS-Novizen (ich wars einfach leid): Um eine Konsole mit elevated rights schnell ...

Batch & Shell

Datenbankabfrage Powershell

gelöst Frage von internet2107Batch & Shell3 Kommentare

Ich versuche auf eine Datenbank zuzugreifen, was auch soweit klappt. Jedoch möchte ich gerne alle Tabellen listen, die sich ...

Batch & Shell

Powershell Verständnisproblem

gelöst Frage von KraemerBatch & Shell4 Kommentare

Moin zusammen, ich habe mir ein kleines Powershell-Script gebastelt, welches soweit einwandfrei funktioniert. Mein Problem ist, das ich an ...

Neue Wissensbeiträge
Administrator.de Feedback
Wartungsarbeiten heute Nacht ab 01:00 Uhr
Information von Frank vor 2 StundenAdministrator.de Feedback4 Kommentare

Hallo User, heute Nacht (15.07 auf 16.07.2019) zwischen 01:00 und 03:00 Uhr finden dringende Wartungsarbeiten auf unseren Servern statt. ...

Python

Sie meinen es ja nur gut - Microsoft hilft python-Entwicklern auf unnachahmliche Weise

Information von DerWoWusste vor 3 StundenPython

Stellt Euch vor, Ihr nutzt python unter Windows 10 und skriptet damit regelmäßig Dinge. Nach dem Update auf Windows ...

Sicherheits-Tools

TrendMicro Worry-Free Business Security 10.0 SP1 steht in Englisch bereit mit Unterstützung für Windows 10 1903 (May Update)

Information von VGem-e vor 13 StundenSicherheits-Tools1 Kommentar

Moin Kollegen, Dann kommt wohl demnächst auch die deutschsprachige/europäische Version zur Auslieferung. Gruß VGem-e

Batch & Shell
PowerShell Konferenz - Videos online
Information von NetzwerkDude vor 22 StundenBatch & Shell

Abend, die Tage werden Videos der Talks von der diesjährigen EU Powershell Konferenz hochgeladen, sind einige Interessante dabei: MFG ...

Heiß diskutierte Inhalte
Erkennung und -Abwehr
Unerklärlicher Gestank im EDV-Raum - "neues" Gebäude und keine offenkundige Ursache feststellbar!
Frage von VGem-eErkennung und -Abwehr27 Kommentare

Moin Kollegen, ich habe seit heute Morgen das Problem, dass in unserem EDV-Raum ein total unerklärbarer Gestank herrscht! Ich ...

Debian
Für Anmeldung an Linux Server AD Credentials verwenden ohne Domäne zu joinen
gelöst Frage von AlchimedesDebian14 Kommentare

Hallo , ist es möglich für die Anmeldung an Linuxserver die User Credentials einer Domäne zu verwenden ohne das ...

Verschlüsselung & Zertifikate
Bitlocker oder Veracrypt unter Win10? Was ist hinsichtlich Performance, Sicherheit, Backup und Kompatibilität besser?
Frage von PluwimVerschlüsselung & Zertifikate13 Kommentare

Guten Morgen, bei mir wird demnächst eine neue Platte fällig, weil ich mein Win7-System auf Win10 umstellen will. D.h. ...

Batch & Shell
Powershell DNS neue Domain anlegen
Frage von violakBatch & Shell12 Kommentare

Guten Morgen, ich möchte gerne auf unserem DNS Server (Windows Server 2016) unter der Primären Zone verschiedene Domains anlegen ...