Ich versuche, eine bestimmte Zeile aus der Nachrichtenausgabe eines Get-Winevent-Cmdlets zu extrahieren und konnte keinen Weg finden, dies zu tun (ich könnte sein falsches Suchen, aber ich lerne immer noch fortgeschrittene Skriptmethoden). Was ich laufe, ist dies:Auswählen bestimmter Zeilen/Daten aus Get-Winevent-Nachricht in Powershell
Get-WinEvent -ComputerName $DC -FilterHashtable @{Logname='Security';Keywords='9007199254740992';Data=$userid} -MaxEvents 1 | Select Message | Format-List
, das mit einer Nachricht similiar darauf zurückkommen wird (geändert einige Informationen zu generischer info):
Message : The computer attempted to validate the credentials for an account.
Authentication Package: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
Logon Account: jdoe
Source Workstation: Generic-Computername
Error Code: 0x0
Ich versuche, eine einfache Möglichkeit zu schaffen, eine finden Computer, an den sich zuletzt jemand zur schnelleren Fehlersuche angemeldet hat, aber ich kann nicht nur die Quell-Workstation-Zeile herausfiltern, ich könnte einfach nicht die richtige Syntax für eine gute Suche haben, um die Ergebnisse zu finden, nach denen ich suche, aber ungefähr eine Woche lang gesucht habe jetzt und habe nichts gefunden, wonach ich suche, jede Hilfe wäre großartig!
Können Sie ein Beispiel für '$ userid' zu' Data' zugewiesen liefern (zu reproduzieren)? Kannst du auch klarstellen, was du erreichen willst? –
Definitiv, wäre $ userid etwas in der Art von jdoe, nur ein Benutzername, der im Datenfeld des Ereignisprotokolls ist, was es mir erlaubt, ein Protokoll mit diesem spezifischen Benutzernamen zu erstellen, habe ich versucht, Regex wie in Ihrem antworte und das hat funktioniert! Was ich erreichen möchte, ist eine einfache Möglichkeit zu sehen, auf welchem Computer sich jemand zuletzt eingeloggt hat, damit ich weiß, auf welchem Computer ich versuche, einen Benutzer zu erreichen und ihm zu helfen, wenn Sie einen leichteren oder besseren Weg kennen Ich bin ganz Ohr :) –