Servus liebe Leute,
ich habe ein kleines Problem, bei dem ich gar nicht weiss, wie ich weitermachen soll.
Ich schreibe für meine Firma gerade ein Backuptool. Das Tool sichert persönliche Ordner aus Outlook (mit der OutlookEx UDF), Eigene Dateien, Favoriten, Desktop, nk2-Datei usw. auf einen Sicherungsserver und setzt dort noch einige Berechtigungen mittels eines Serviceusers.
Funktioniert auch alles schon ne Zeit lang ziemlich gut. Das Problem ist nun, dass eine Funktion gewünscht wurde um die Software auf dem jeweiligen PC des Users auszulesen und in eine Textdatei zu schreiben.
Den Großteil habe ich schon. Software wird aus der Registry (Uninstall-Key) des Users ausgelesen und auf dem Sicherungsserver in eine txt gespeichert.
Jetzt stehen hier aber auch noch 10000 Sicherheitsupdates usw. drin, die keinen Menschen interessieren
Hier mal die Funktion:
Spoiler anzeigen
;Installierte Software auslesen
Func _GetSoftware()
$sBaseKey = "HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\"
[/autoit] [autoit][/autoit] [autoit]$iKey = 1
$sSoftwareName = ""
$sLogfile = "\\SICHERUNGSSERVER\FREIGABENAME$\"&@UserName&"\software.txt"
$hFile = FileOpen ( $sLogfile, 10 )
if @error Then
MsgBox ( 64, "Fehler", "Konnte Datei nicht öffnen.",Default,$Form1)
Exit
EndIf
while 1
$sKey = RegEnumKey ( $sBaseKey , $iKey )
if @error then ExitLoop
$sDisplayName = RegRead ( $sBaseKey & "\" & $sKey , "DisplayName")
if @error Then
$sDisplayName = RegRead ( $sBaseKey & "\" & $sKey , "QuietDisplayName")
if @error then
$iKey += 1
ContinueLoop
EndIf
EndIf
FileWriteLine ( $hFile, $sDisplayName & @crlf)
$iKey += 1
WEnd
EndFunc
[/autoit]Damit habe ich schonmal die Textdatei.
Wie kann ich diese Datei jetzt filtern? Zum Beispiel alle Zeilen in der Textdatei löschen, die mit "Sicherheitsupdate blablabla" anfangen?
Oder macht es Sinn lieber vorher das Array zu filtern, welches dann in die Textdatei geschrieben wird? Wenn ja, wie?
Vielen Dank schonmal für die Hilfe!
Grüße
Patrick