none
Script zum Löschen von temporären Dateien RRS feed

  • Frage

  • Hat jemand eine Script das temporäre Dateien löscht?

    Ich suche ein Script, das alle temp. Dateien in allen Benutzern löscht und auch die Dateien unter C:\Windows\Temp

    Gruß, Herry

    Samstag, 12. Dezember 2020 11:53

Antworten

  • ich brauche das als Powershell Script ;-)

    Das haben wir bereits verstanden ;-)

    Diese soll später in einem Remotemanagement Tool laufen

    In welchem Sicherheitskontext? Das ist nicht ganz unwichtig ;-)

    Das User-Temp Dir haben ich  was gefunden

    Get-Childitem $Env:temp | Remove-Item -Recurse -Force

    Das gilt aber nur für denjenigen User, der das Skript ausführt. Vermutlich nicht ganz geeignet für ein "Remotemanagement-Tool". Außerdem war Deine ursprüngliche Anforderung "das alle temp. Dateien in allen Benutzern löscht" ;-)

    Nur für C:\Windows\Temp geht das nicht, da zuerst das Zugriffsrecht auf den Ordner gesetzt werden muss

    Wie gesagt, wenn Du das Skript als SYSTEM oder mit erhöhten Rechten ausführst (ob Dein Remotemanagement-Tool das tut, entzieht sich unserer Kenntnis) oder den Zugriff statt über C:\Windwos\Temp über \\RECHNERNAME\C$\Windows\Temp vornimmst, greift UAC nicht, und Du kannst die Dateien auflisten. Für den C$-Share-Zugriff muss das ausführende Account lokaler Admin auf dem Zielsystem sein.


    Evgenij Smirnov

    http://evgenij.smirnov.de

    Samstag, 12. Dezember 2020 17:23
  • Den Teil startest du als Subprozess:
    https://winaero.com/start-a-process-elevated-from-powershell/

    Wenn deine Aufgabe als "Mit höchsten Priviliegien ausführen" markiert ist und du als Anmeldugn ein Administratorkonto auswählst, sollte das auch klappen.

    Und was dein gefundenes Kommando angeht, so habe ich das ganz oben, etwas beiläufig, ja erwähnt;-).

    Samstag, 12. Dezember 2020 19:54

Alle Antworten

  • Moin,

    was hast Du denn bisher versucht? Ich schätze das Skript auf vier Zeilen max.


    Evgenij Smirnov

    http://evgenij.smirnov.de

    Samstag, 12. Dezember 2020 13:21
  • Das kannst du beim Logon/Logoff als Aufgabe (Taskmanager) z.B. "Bei Anmelden des Users" einrichten.
    Via Umgebungsvariable %TEMP% erhältst du Zugriff und nur zur Laufzeit und aktiver Anmeldung stimmt der Pfad.
    https://ss64.com/ps/syntax-env.html

    Generell über alle User führt bei aktiven Usern u.U. zu Laufzeitproblemen. Ins besonders, wenn du das TEMP-Verzeichnis selber löschst.
    Ebenso per Get-Childitem -path ... -recursive | remove-Item -erroraction continue kannst du die Dateien/Verzeichnisse dann löschen.

    Samstag, 12. Dezember 2020 13:28
  • das hat bei uns immer gut funktioniert.  einfach ins Logonscript einbauen


    del %appdata%\microsoft\windows\recent\*.* /f /q
    del %userprofile%\Recent\*.* /s /f /q
    REM del %userprofile%\Downloads\*.* /s /f /q
    rd %TEMP% /s /q
    md %TEMP%


    del %appdata%\microsoft\windows\recent\AutomaticDestinations\*.* /f /q

    rd "%localappdata%\Microsoft\Windows\Temporary Internet Files\Content.Outlook" /s /q
    rd "%localappdata%\Microsoft\Windows\Temporary Internet Files\Content.IE5" /s /q
    rd "%localappdata%\Microsoft\Windows\Temporary Internet Files\Content.MSO" /s /q
    rd "%localappdata%\Microsoft\Windows\Temporary Internet Files\Low\Content.IE5" /s /q
    rd "%localappdata%\Microsoft\Windows\Temporary Internet Files\Low\Content.MSO" /s /q
    rd "C:\Users\%username%\AppData\LocalLow\Microsoft\Windows\Temporary Internet Files\Content.IE5" /s /q
    rd "%localappdata%\Temp\Low\Temporary Internet Files\Content.IE5" /s /q

    REM Win8.1
    rd "%localappdata%\Microsoft\Windows\INetCache\content.ie5" /s /q
    rd "%localappdata%\Microsoft\Windows\INetCache\content.MSO" /s /q
    rd "%localappdata%\Microsoft\Windows\INetCache\low\ie" /s /q
    rd "%localappdata%\Microsoft\Windows\INetCache\ie" /s /q
    rd "%localappdata%\Packages\windows_ie_ac_001\AC\INetCache" /s /q


    REM App CrashDump Verzeichnis


    rd "%localappdata%\Microsoft\Windows\WER\ReportArchive" /s /q
    rd "%localappdata%\Microsoft\Windows\WER\ReportQueue" /s /q


    del c:\windows\temp\*.* /s /f /q
    del "%localappdata%\Temp\*.*" /s /f /q
    del %TEMP%\*.* /s /f /q
    del %userprofile%\AppData\Local\Temp\*.* /s /f /q

    del %appdata%\Microsoft\Windows\Cookies\*.* /s /f /q
    del %appdata%\Microsoft\Windows\Recent\*.* /s /f /q
    del %appdata%\Microsoft\Office\Recent\*.* /s /f /q

    RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255 (Deletes ALL History)
    RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 1 (Deletes History Only)
    RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2 (Deletes Cookies Only)
    RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8 (Deletes Temporary Internet Files Only)
    RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 16 (Deletes Form Data Only)
    RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 32 (Deletes Password History Only)


    del %localappdata%\Microsoft\Windows\Explorer\thumbcache_256.db /s /f /q
    del %localappdata%\Microsoft\Windows\Explorer\thumbcache_96.db /s /f /q



    Samstag, 12. Dezember 2020 14:18
  • das hat bei uns immer gut funktioniert.  einfach ins Logonscript einbauen


    del %appdata%\microsoft\windows\recent\*.* /f /q
    del %userprofile%\Recent\*.* /s /f /q
    REM del %userprofile%\Downloads\*.* /s /f /q
    rd %TEMP% /s /q
    md %TEMP%


    del %appdata%\microsoft\windows\recent\AutomaticDestinations\*.* /f /q

    rd "%localappdata%\Microsoft\Windows\Temporary Internet Files\Content.Outlook" /s /q
    rd "%localappdata%\Microsoft\Windows\Temporary Internet Files\Content.IE5" /s /q
    rd "%localappdata%\Microsoft\Windows\Temporary Internet Files\Content.MSO" /s /q
    rd "%localappdata%\Microsoft\Windows\Temporary Internet Files\Low\Content.IE5" /s /q
    rd "%localappdata%\Microsoft\Windows\Temporary Internet Files\Low\Content.MSO" /s /q
    rd "C:\Users\%username%\AppData\LocalLow\Microsoft\Windows\Temporary Internet Files\Content.IE5" /s /q
    rd "%localappdata%\Temp\Low\Temporary Internet Files\Content.IE5" /s /q

    REM Win8.1
    rd "%localappdata%\Microsoft\Windows\INetCache\content.ie5" /s /q
    rd "%localappdata%\Microsoft\Windows\INetCache\content.MSO" /s /q
    rd "%localappdata%\Microsoft\Windows\INetCache\low\ie" /s /q
    rd "%localappdata%\Microsoft\Windows\INetCache\ie" /s /q
    rd "%localappdata%\Packages\windows_ie_ac_001\AC\INetCache" /s /q


    REM App CrashDump Verzeichnis


    rd "%localappdata%\Microsoft\Windows\WER\ReportArchive" /s /q
    rd "%localappdata%\Microsoft\Windows\WER\ReportQueue" /s /q


    del c:\windows\temp\*.* /s /f /q
    del "%localappdata%\Temp\*.*" /s /f /q
    del %TEMP%\*.* /s /f /q
    del %userprofile%\AppData\Local\Temp\*.* /s /f /q

    del %appdata%\Microsoft\Windows\Cookies\*.* /s /f /q
    del %appdata%\Microsoft\Windows\Recent\*.* /s /f /q
    del %appdata%\Microsoft\Office\Recent\*.* /s /f /q

    RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255 (Deletes ALL History)
    RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 1 (Deletes History Only)
    RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2 (Deletes Cookies Only)
    RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8 (Deletes Temporary Internet Files Only)
    RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 16 (Deletes Form Data Only)
    RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 32 (Deletes Password History Only)


    del %localappdata%\Microsoft\Windows\Explorer\thumbcache_256.db /s /f /q
    del %localappdata%\Microsoft\Windows\Explorer\thumbcache_96.db /s /f /q



    Danke. Ich brauche das aber für was spezielles als Powershell, so dass ich die Befehle mit Powershell ausführen lassen kann.

    Samstag, 12. Dezember 2020 15:04
  • Und wie löst Ihr solche Sachen?

    Samstag, 12. Dezember 2020 15:30
  • Und wie löst Ihr solche Sachen?

    Entweder mit erhöhten Rechten ausführen oder über \\RECHNERNAME\C$ zugreifen, flls die Firewall das zulässt.

    Evgenij Smirnov

    http://evgenij.smirnov.de

    Samstag, 12. Dezember 2020 15:47
  • Und wie löst Ihr solche Sachen?

    Entweder mit erhöhten Rechten ausführen oder über \\RECHNERNAME\C$ zugreifen, flls die Firewall das zulässt.

    Evgenij Smirnov

    http://evgenij.smirnov.de

    ich brauche das als Powershell Script ;-)

    Diese soll später in einem Remotemanagement Tool laufen

    Das User-Temp Dir haben ich  was gefunden

    Get-Childitem $Env:temp | Remove-Item -Recurse -Force

    Nur für C:\Windows\Temp geht das nicht, da zuerst das Zugriffsrecht auf den Ordner gesetzt werden muss

    Samstag, 12. Dezember 2020 16:49
  • ich brauche das als Powershell Script ;-)

    Das haben wir bereits verstanden ;-)

    Diese soll später in einem Remotemanagement Tool laufen

    In welchem Sicherheitskontext? Das ist nicht ganz unwichtig ;-)

    Das User-Temp Dir haben ich  was gefunden

    Get-Childitem $Env:temp | Remove-Item -Recurse -Force

    Das gilt aber nur für denjenigen User, der das Skript ausführt. Vermutlich nicht ganz geeignet für ein "Remotemanagement-Tool". Außerdem war Deine ursprüngliche Anforderung "das alle temp. Dateien in allen Benutzern löscht" ;-)

    Nur für C:\Windows\Temp geht das nicht, da zuerst das Zugriffsrecht auf den Ordner gesetzt werden muss

    Wie gesagt, wenn Du das Skript als SYSTEM oder mit erhöhten Rechten ausführst (ob Dein Remotemanagement-Tool das tut, entzieht sich unserer Kenntnis) oder den Zugriff statt über C:\Windwos\Temp über \\RECHNERNAME\C$\Windows\Temp vornimmst, greift UAC nicht, und Du kannst die Dateien auflisten. Für den C$-Share-Zugriff muss das ausführende Account lokaler Admin auf dem Zielsystem sein.


    Evgenij Smirnov

    http://evgenij.smirnov.de

    Samstag, 12. Dezember 2020 17:23
  • Den Teil startest du als Subprozess:
    https://winaero.com/start-a-process-elevated-from-powershell/

    Wenn deine Aufgabe als "Mit höchsten Priviliegien ausführen" markiert ist und du als Anmeldugn ein Administratorkonto auswählst, sollte das auch klappen.

    Und was dein gefundenes Kommando angeht, so habe ich das ganz oben, etwas beiläufig, ja erwähnt;-).

    Samstag, 12. Dezember 2020 19:54