Elimina in batch i file temporanei di Windows (sistema, browser, cache, ecc.) Per tutti gli utenti


2

Qualcuno in questa comunità sta usando una particolare tecnica per ottenere l'eliminazione batch di dati temporanei (come cartelle temporanee di Windows, cache dei browser, ecc.) Per tutti gli utenti?

La parte difficile sembra essere:

  • Utilizzare una tecnica / strumento che verrà aggiornato nel tempo per soddisfare le modifiche nella struttura di ogni cartella del prodotto
  • Consenti l'accesso alle cartelle di altri utenti (esegui come amministratore / privilegi massimi)

Script / file batch potrebbero essere una soluzione, ma richiederebbero un monitoraggio costante per ogni aggiornamento del prodotto, per evitare la cancellazione di file / strutture di cartelle precedenti ...

I vostri pensieri?

Risposte:


0

Avevo la stessa domanda, ma motivato dal desiderio di aiutare i miei sforzi per completare le operazioni di pulizia del malware. Ecco lo script di comandi che ho scritto con un occhio alla modularizzazione in modo che possa essere esteso facilmente per i sistemi operativi futuri e le posizioni dei file temporanei (l'ho scritto prima di imparare PowerShell e non mi sono preoccupato di aggiornarlo). Poiché accede a tutte le cartelle del profilo degli utenti sul computer e alle cartelle di sistema di Windows, lo script deve essere eseguito con privilegi elevati.

@echo off
Rem Temp File Purging Tool v1.2.0
Rem Written by Twisty.  Created 1/19/2011.  Modified 6/28/2011.
Rem
Rem This script deletes temp files in locations where malware likes to write its initial
Rem files for infection and also where standard users have write permissions.
Rem
Rem This tool isn't likely to be as helpful to clean systems on which users run with 
Rem Admin permissions.  If you let your users run with Admin permissions you by extension
Rem give much of the malware on the Internet permission to do as it pleases on your workstations.



    Rem Identify version of Windows


    SET WinVer=Unknown

    VER | FINDSTR /IL "5.1." > NUL
    IF %ERRORLEVEL% EQU 0 SET WinVer=XP

    rem 5.2 is actually Server 2003, but for our purposes it's the same as XP
    VER | FINDSTR /IL "5.2." > NUL
    IF %ERRORLEVEL% EQU 0 SET WinVer=XP

    VER | FINDSTR /IL "6.0." > NUL
    IF %ERRORLEVEL% EQU 0 SET WinVer=VISTA

    rem 6.1 is actually Windows 7, but for our purposes it's the same as Vista
    VER | FINDSTR /IL "6.1." > NUL
    IF %ERRORLEVEL% EQU 0 SET WinVer=VISTA


    rem Ask user the version if we cannot automatically determine
    If Not "%WinVer%" EQU "Unknown" Goto :SetUserProfPath

    Set /P Response="Select OS  [X]P, [V]ista/7: "
    If /i "%Response%" EQU "X" Set WinVer=XP
    If /i "%Response%" EQU "V" Set WinVer=VISTA
    If "%WinVer%" EQU "" Echo Invalid response. Exiting.&goto :eof


:SetUserProfPath
    If %WinVer% EQU XP (
        Set UserProfileRootPath=C:\Documents and Settings
    ) Else (
        Set UserProfileRootPath=C:\Users
    )

    Call :RemoveSubfoldersAndFiles %SystemRoot%\Temp

    Rem Walk through each user profile folder
    Rem This convoluted command is necessary to ensure we process hidden and system folders too
    for /f "delims=" %%D in ('dir /ad /b "%UserProfileRootPath%"') DO Call :ProcessProfileFolder %UserProfileRootPath%\%%D

    Echo.
    Echo Finished! Press a key to exit...
    Pause>Nul

goto :EOF


:ProcessProfileFolder

    Set FolderName=%*

    Rem Leave if it's not a user profile folder
    If Not Exist "%FolderName%\ntuser.dat" goto :EOF

    Rem Leave it's a profile folder on the exclude list
    If /I "%FolderName%" EQU "%UserProfileRootPath%\Default" goto :EOF
    If /I "%FolderName%" EQU "%UserProfileRootPath%\Default User" goto :EOF
    If /I "%FolderName%" EQU "%UserProfileRootPath%\NetworkService" goto :EOF
    If /I "%FolderName%" EQU "%UserProfileRootPath%\LocalService" goto :EOF

    Set UserProfilePath=%FolderName%

    Rem Clean up these folders
    If %WinVer% EQU XP (
        Call :RemoveSubfoldersAndFiles %UserProfilePath%\Local Settings\Temp
        Call :RemoveSubfoldersAndFiles %UserProfilePath%\Local Settings\Temporary Internet Files
        Call :RemoveSubfoldersAndFiles %UserProfilePath%\Application Data\Sun\Java\Deployment\cache

    ) Else (
        Call :RemoveSubfoldersAndFiles %UserProfilePath%\AppData\Local\Temp
        Call :RemoveSubfoldersAndFiles %UserProfilePath%\AppData\LocalLow\Temp
        Call :RemoveSubfoldersAndFiles %UserProfilePath%\AppData\LocalLow\Sun\Java\Deployment\cache
        Call :RemoveSubfoldersAndFiles %UserProfilePath%\AppData\Local\Microsoft\Windows\Temporary Internet Files
    )


goto :EOF


:RemoveSubfoldersAndFiles

    Set FolderRootPath=%*

    Rem Confirm target folder exists
    If Not Exist "%FolderRootPath%" Goto :EOF

    Rem Make the folder to clean current and confirm it exists...
    CD /D %FolderRootPath%

    Rem Confirm we switched directories
    If /I "%CD%" NEQ "%FolderRootPath%" Goto :EOF

    Rem ...so that this command cannot delete the folder, only everything in it
    Echo Purging %CD%
    RD /S /Q . >>nul 2>>&1

goto :EOF

Estensione della funzionalità dello script

Parte dell'estensibilità dello script si trova nell'uso della :RemoveSubfoldersAndFilesprocedura. Per eliminare il contenuto di una cartella, è sufficiente chiamare questa procedura e passare il percorso di una cartella come unico parametro ( senza virgolette). La routine gestirà con grazia i percorsi che non esistono, le cartelle a cui non è possibile accedere per qualsiasi motivo o il caso in cui alcuni file o cartelle sotto il percorso sono in uso o altrimenti rifiutano di essere eliminati.

Per ripulire le cartelle aggiuntive trovate nel profilo di ciascun utente

Nella sezione Rem Clean up these foldersaggiungere ulteriori chiamate alla subroutine : RemoveSubfoldersAndFiles . Ad esempio, per eliminare tutto nella \AppData\Local\Microsoft\Windows\Temporary Internet Filescartella di ciascun utente aggiungere la riga:

Call :RemoveSubfoldersAndFiles %UserProfilePath%\AppData\Local\Microsoft\Windows\Temporary Internet Files

Si noti l'uso della %UserProfilePath%variabile definita dallo script invece della %USERPROFILE%variabile tipica . La versione dello script viene aggiornata in modo dinamico man mano che lo script scorre attraverso ciascun profilo utente sulla macchina.

Per ripulire le cartelle trovate al di fuori dei profili utente

Nella :SetUserProfPathsubroutine, aggiungere nuovamente le chiamate alla procedura : RemoveSubfoldersAndFiles . Per esempio:

Call :RemoveSubfoldersAndFiles C:\Temp

Molto interessante! Come gestisci gli aggiornamenti della struttura delle cartelle?
Riccardo

@Riccardo Ho aggiornato la mia risposta per rispondere alla tua domanda.
Twisty Impersonator,

Voglio dire, cosa succede se Google Chrome cambia la struttura delle cartelle?
Riccardo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.