In Outlook den Temp Ordner löschen
Hallo liebe Administrator-Gemeinde,
gibt es die Möglichkeit den Temporären Ordner von Outlook "Content.Outlook" zu deaktiveren?
Wenn dies nicht funktioniert. Ist es möglich in Outlook mit Hilfe von VBA es einzurichten das er bei jeder neuen Email prüft ob der Ordner in dem Pfad "C:\Users\§Benutzername$\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.Outlook" vorhanden ist und wenn ja das er ihn direkt löscht?
Ihr würdet mir damit echt Helfen. Ich habe leider immer Probleme mit diesem Ordner.
Vielen Dank.
Liebe Grüße
Mario
gibt es die Möglichkeit den Temporären Ordner von Outlook "Content.Outlook" zu deaktiveren?
Wenn dies nicht funktioniert. Ist es möglich in Outlook mit Hilfe von VBA es einzurichten das er bei jeder neuen Email prüft ob der Ordner in dem Pfad "C:\Users\§Benutzername$\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.Outlook" vorhanden ist und wenn ja das er ihn direkt löscht?
Ihr würdet mir damit echt Helfen. Ich habe leider immer Probleme mit diesem Ordner.
Vielen Dank.
Liebe Grüße
Mario
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 251276
Url: https://administrator.de/contentid/251276
Ausgedruckt am: 22.11.2024 um 12:11 Uhr
19 Kommentare
Neuester Kommentar
Hallo Mario,
ich hatte das damals mit einem AutoIT-Script bei solchen Clients bei denen sich das Problem nicht beheben ließ, als Übergangslösung gemacht, sollte aber mittlerweile bei neueren Outlooks nicht mehr auftreten, die sind dahingehend alle gepatcht.
Grüße Uwe
ich hatte das damals mit einem AutoIT-Script bei solchen Clients bei denen sich das Problem nicht beheben ließ, als Übergangslösung gemacht, sollte aber mittlerweile bei neueren Outlooks nicht mehr auftreten, die sind dahingehend alle gepatcht.
#NoTrayIcon
$OutlookVersion = StringRight(RegRead("HKEY_CLASSES_ROOT\Outlook.Application\CurVer",""),2) & ".0"
$folderOffice = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Office\" & $OutlookVersion & "\Outlook\Security","OutlookSecureTempFolder")
if $folderOffice = "" then
$ietempfolder = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders","Cache")
Switch $OutlookVersion
Case "11.0"
$search = FileFindFirstFile($ietempfolder & "\OLK???")
Case "12.0"
$search = FileFindFirstFile($ietempfolder & "\Content.Outlook\OLK???")
Case "14.0"
$search = FileFindFirstFile($ietempfolder & "\????????")
Case "15.0"
$search = FileFindFirstFile($ietempfolder & "\Content.MSO")
EndSwitch
$nameOLK = FileFindNextFile($search)
if @error = 1 then
FileClose($search)
exit 1
EndIf
FileClose($search)
$folderOffice = $ietempfolder & "\" & $nameOLK & "\"
EndIf
FileSetAttrib($folderOffice & "*.*","-R")
$ret = FileDelete($folderOffice & "*.*")
if $ret = 1 then
exit(0)
else
exit(1)
EndIf
Hallo Mario,
ich hoffe folgendes kann dir weiterhelfen:
HIER
Die letzten 3-5 kurzen Abschnitte geben die Lösung wieder und eine optionale Lösung durch ein Programm (CCCleaner; Freeware) wird ebenfalls vorgeschlagen.
LG, narthan
---
Edit: Ups ich war zu spät. Vlt. nimmst du einfach das Script von Uwe
ich hoffe folgendes kann dir weiterhelfen:
HIER
Die letzten 3-5 kurzen Abschnitte geben die Lösung wieder und eine optionale Lösung durch ein Programm (CCCleaner; Freeware) wird ebenfalls vorgeschlagen.
LG, narthan
---
Edit: Ups ich war zu spät. Vlt. nimmst du einfach das Script von Uwe
Zitat von @TheChosenNeo:
wie muss ich diesen Code verwenden damit er diesen Ordner immer wieder selbst löscht ohne das ich selbst aktiv werden
müsste?
in meinem Fall hat es damals gereicht, den Code zur EXE zu kompilieren (s. AutoIt Seite, Link oben.) und dann in den Autostart des Rechners zu packen. Lässt sich aber bei Bedarf auch in ein Event in Outlook einbinden ... jedoch bekommst du dann eventuell Probleme mit Outlook wenn dieses geöffnet ist und Dateien darin im Zugriff hat. Das hat schon so manches mal bei Usern zu Abstürzen geführt kann ich also nicht empfehlen !wie muss ich diesen Code verwenden damit er diesen Ordner immer wieder selbst löscht ohne das ich selbst aktiv werden
müsste?
Zitat von @TheChosenNeo:
Ich hab leider nur die Möglichkeit an meinen Arbeitsrechner im Outlook etwas zu verändern oder über VBA. Programme
oder der gleichen kann ich weder runterladen noch auf den PC aufspielen. Deshalb brauche ich irgendwie eine Lösung in Outlook
die das Problem behebt. Aber trotzdem tausend dank den ich glaube der Ansatz wäre wenn das bei mir möglich gewesen
wäre, perfekt gewesen.
naja in VBS lässt sich das natürlich auch schreiben habe aber dafür grad keine Zeit.... eventuell später mal, wenn du sagst für welche Outlookversion du es brauchst lässt es sich auch noch vereinfacht schreiben ...Ich hab leider nur die Möglichkeit an meinen Arbeitsrechner im Outlook etwas zu verändern oder über VBA. Programme
oder der gleichen kann ich weder runterladen noch auf den PC aufspielen. Deshalb brauche ich irgendwie eine Lösung in Outlook
die das Problem behebt. Aber trotzdem tausend dank den ich glaube der Ansatz wäre wenn das bei mir möglich gewesen
wäre, perfekt gewesen.
Das hier in ThisOutlookSession oder DieseOutlookSitzung einfügen und Outlook neu starten. Dies leert den Outlook-Temp-Ordner bei jedem Start von Outlook.
Das in Outlook die Ausführung von Makros erlaubt ist natürlich Voraussetzung.
Grüße Uwe
Private Sub Application_Startup()
EmptyOutlookTempFolder
End Sub
Sub EmptyOutlookTempFolder()
dim tempfolder as String, objShell as Object, fso as Object, subfolder as Object
Set objShell = CreateObject("Wscript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
tempfolder = objShell.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Cache") & "\Content.Outlook"
If fso.FolderExists(tempfolder) then
For Each subfolder In fso.GetFolder(tempfolder).SubFolders
On Error Resume Next
fso.DeleteFile subfolder.Path & "\*.*"
Next
End if
Set objShell = Nothing
Set fso = Nothing
End Sub
Grüße Uwe
Zitat von @TheChosenNeo:
ist das auch irgendwie möglich das er dies macht sobald ich eine Neue Email bekommen habe? Da ich Outlook nur einmal
schließe und die Probleme ja immer in dem Ordner stattfinden.
das geht auch, aber wie oben geschrieben ohne Gewähr da es zu Abstürzen von Outlook führen kann.ist das auch irgendwie möglich das er dies macht sobald ich eine Neue Email bekommen habe? Da ich Outlook nur einmal
schließe und die Probleme ja immer in dem Ordner stattfinden.
Private Sub Application_NewMail()
EmptyOutlookTempFolder
End Sub
Sub EmptyOutlookTempFolder()
dim tempfolder as String, objShell as Object, fso as Object, subfolder as Object
Set objShell = CreateObject("Wscript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
tempfolder = objShell.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Cache") & "\Content.Outlook"
If fso.FolderExists(tempfolder) then
For Each subfolder In fso.GetFolder(tempfolder).SubFolders
On Error Resume Next
fso.DeleteFile subfolder.Path & "\*.*"
Next
End if
Set objShell = Nothing
Set fso = Nothing
End Sub
Ungültige Wurzel im Registrierungsschlüssel
"HKEY_CURRENT_USER\Software\Mircrosoft\Windows\CurrentVersion\Explorer\ShellFolders\Cache".
da hast du einen Buchstabendreher eingebaut "HKEY_CURRENT_USER\Software\Mircrosoft\Windows\CurrentVersion\Explorer\ShellFolders\Cache".
"Mircrosoft"
und das Leerzeichen zwischen "ShellFolders" hast du auch nicht gelassen, wie hast du das kopiert alter ?????
Bitte über Quelltext kopieren !!
Zitat von @TheChosenNeo:
Ja das tut mir leid. Ich habe den Fehler aber nur bei der Fehlerbeschreibung. Im Ursprungscode habe ich deine Zeilen 1:1 kopiert.
welches OS ? Navigiere in der Registry mal in diesen Schlüssel ob dort der Wert Cache existiert. Ansonsten mach es vereinfacht so ...Ja das tut mir leid. Ich habe den Fehler aber nur bei der Fehlerbeschreibung. Im Ursprungscode habe ich deine Zeilen 1:1 kopiert.
Private Sub Application_NewMail()
EmptyOutlookTempFolder
End Sub
Sub EmptyOutlookTempFolder()
Dim tempfolder As String, objShell As Object, fso As Object, subfolder As Object
Set objShell = CreateObject("Wscript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
userprofile = objShell.ExpandEnvironmentStrings("%userprofile%")
tempfolder = userprofile & "\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.Outlook"
If fso.FolderExists(tempfolder) Then
For Each subfolder In fso.GetFolder(tempfolder).SubFolders
On Error Resume Next
fso.DeleteFile subfolder.Path & "\*.*"
Next
End If
Set objShell = Nothing
Set fso = Nothing
End Sub
Ja nur den Inhalt, das reicht aber auch, wie gesagt Outlookabstürze könnten die Folge sein ...
lässt sich aber ändern indem man die Löschzeile durch diese austauscht:
dann wird der ganze Ordner gelöscht, aber nur solange Outlook keine Files mehr in dem Ordner offen hat !
lässt sich aber ändern indem man die Löschzeile durch diese austauscht:
fso.DeleteFolder subfolder.Path, True