pixel0815
Goto Top

Letzter Start einer Applikation per Powershell

Guten Morgen,

ist es möglich den letzten Start einer ausführbaren Datei auszulesen per Powershell?

Gruß
pixel0815

Content-Key: 308307

Url: https://administrator.de/contentid/308307

Printed on: April 19, 2024 at 17:04 o'clock

Mitglied: 129813
129813 Jun 27, 2016 at 08:04:36 (UTC)
Goto Top
Hi.
If you log it with NTFS-Auditing or use LastAccessTime(which is less reliable) then, yes.

Regards
Member: Saschaaaaa
Saschaaaaa Jun 27, 2016 updated at 08:32:26 (UTC)
Goto Top
Hallo Pixel,

du kannst per VBS alle 308 Eigenschaften einer Datei (egal ob .doc .exe .txt etc.) auslesen.

Du brauchst Eigenschaft Nummer 5 dafür.
Ist sicher nicht ganz chick der Code, bin ja auch nur Anfänger, aber er tut was er soll face-wink
Einfach den Code in eine .vbs Datei schreiben und die Pfade anpassen (Die Textdatei wo er hineinschreibt muss bereits existieren)

Set objShell = CreateObject("Shell.Application")  
Dim dateiname
	dateiname = "notepad++.exe" 'Dateiname  
Set fso = CreateObject("Scripting.FileSystemObject")  
	Set objFolder = objShell.NameSpace("E:\Programme\Notepad++") 'Pfad der datei  
Set objFolderItem = objFolder.ParseName(dateiname)
Set objFSO = Wscript.CreateObject("Scripting.FileSystemObject")  
	Set objFile = objFSO.OpenTextFile("E:\Eigenschaften.txt", 2) 'hier Schreibt er die Eigenschaften rein  

for i = 0 to 308
	strHeader = objFolder.GetDetailsOf(objFolder.Items, i)
	strValue = objFolder.GetDetailsOf(objFolderItem, i)
	strValue = Replace(strValue, ChrW(8206),"")  
	write="true" 'true für alle Eigenschaften, false für nur die angegebenen  
	if i = 5 then write="true" 'Nummer der gewünschten Eigenschaft  
        if i = 0 then write="true" 'Nummer der gewünschten Eigenschaft  
	if write = "true" then objFile.WriteLine i & " " & strHeader & " " & strValue  
next

Mit freundlichen Grüßen
Sascha
Mitglied: 129813
129813 Jun 27, 2016 updated at 08:35:00 (UTC)
Goto Top
Ahh, this can be done faster face-smile
(Get-Item 'c:\program.exe').LastAccessTime  
But using this time is less reliable because e.g. a virus scan or other Access could falsify the result.
Also most of the users who are using SSDs switch of the recording of LastAccessTime in NTFS.
Member: emeriks
Solution emeriks Jun 27, 2016 at 09:53:59 (UTC)
Goto Top
Hi,
man müsste wissen, ob das pro Computer oder pro Netzwerk erfasst werden soll. Eine EXE von einer Freigabe kann ja u.U. auf verschiedenen Computern gestartet werden.

Ansonsten ist der beste Weg dafür die Protokollierung mittels Überwachungsrichtlinien. Hier müsste m.E. die "Prozessverfolgung" überwacht werden.

Allerdings geht das nicht rückwirkend, falls es Dir darauf ankommen sollte. Die Aufzeichnung erfolgt erst ab dem Zeitpunkt da diese Richtlinie angewendet (aktiviert) wurde.


https://technet.microsoft.com/de-de/library/dd443750.aspx
Prozessverfolgung überwachen

Durch diese Richtlinieneinstellung wird festgelegt, ob detaillierte Überwachungsinformationen für Ereignisse wie Programmaktivierung, Prozessbeendigung, Handleduplizierung und indirekter Objektzugriff erfasst werden.

Wenn Sie die Einstellung Prozessverfolgung überwachen konfigurieren, können Sie festlegen, ob erfolgreiche Ereignisse oder Fehler überwacht werden oder ob keine Überwachung des Ereignistyps erfolgen soll. Bei der Erfolgsüberwachung wird ein Überwachungseintrag erzeugt, wenn der verfolgte Prozess erfolgreich durchgeführt wurde. Bei der Fehlerüberwachung wird ein Überwachungseintrag erzeugt, wenn der verfolgte Prozess fehlgeschlagen ist.

Wenn Sie die Einstellung Prozessverfolgung überwachen unter Windows XP mit SP2 und Windows Server 2003 mit SP1 aktivieren, werden im Windows-Betriebssystem auch Informationen zum Betriebsmodus und zum Status der Windows-Firewallkomponente erfasst.

Bei Aktivierung der Einstellung Prozessverfolgung überwachen wird eine große Anzahl von Ereignissen erzeugt. Diese Richtlinieneinstellung ist normalerweise als Keine Überwachung konfiguriert. Die von dieser Richtlinieneinstellung erzeugten Informationen können jedoch aufgrund des detaillierten Protokolls zu den gestarteten Prozessen und zugehörigen Startzeiten von großem Vorteil sein, wenn auf Zwischenfälle reagiert werden muss.

E.
Member: pixel0815
pixel0815 Jun 27, 2016 at 10:49:24 (UTC)
Goto Top
Hallo emeriks,

ich glaube auch der Weg über die Überwachung ist wohl der einfachste.
Die Attribute sind nicht so ganz vertrauenswürdig.

Bei diesem Beispiel erhalte ich total verrückte Werte die nicht stimmen.

Get-ChildItem 'C:\rufus-1.4.7.exe' | Get-ItemProperty | Format-list *  

BaseName          : rufus-1.4.7
Mode              : -a---
Name              : rufus-1.4.7.exe
Length            : 606120
DirectoryName     : C:\
Directory         : C:\
IsReadOnly        : False
Exists            : True
FullName          : C:\rufus-1.4.7.exe
Extension         : .exe
CreationTime      : 06.05.2014 07:46:56
CreationTimeUtc   : 06.05.2014 05:46:56
LastAccessTime    : 06.05.2014 07:46:58
LastAccessTimeUtc : 06.05.2014 05:46:58
LastWriteTime     : 06.05.2014 07:46:58
LastWriteTimeUtc  : 06.05.2014 05:46:58
Attributes        : Archive

Danke für eure Hilfe.