모든 사용자의 임시 Windows 파일(시스템, 브라우저, 캐시 등)을 일괄 삭제합니다.

모든 사용자의 임시 Windows 파일(시스템, 브라우저, 캐시 등)을 일괄 삭제합니다.

이 커뮤니티의 누군가가 모든 사용자의 임시 데이터(예: Windows 임시 폴더, 브라우저 캐시 등)를 일괄 삭제하기 위해 특정 기술을 사용하고 있습니까?

까다로운 부분은 다음과 같습니다.

  • 각 제품 폴더 구조의 변경 사항에 맞게 시간이 지남에 따라 업데이트되는 기술/도구를 사용합니다.
  • 다른 사용자 폴더에 대한 접근 허용(관리자/최대 권한으로 실행)

스크립트/배치 파일이 해결책이 될 수 있지만 오래된 파일/폴더 구조가 삭제되는 것을 방지하려면 각 제품 업데이트에 대한 지속적인 모니터링이 필요합니다.

당신의 생각?

답변1

저도 같은 질문을 받았지만 맬웨어 정리 작업을 마무리하려는 노력에 도움을 주고 싶은 마음에서 동기를 부여받았습니다. 다음은 향후 OS 및 임시 파일 위치에 맞게 쉽게 확장할 수 있도록 모듈화를 염두에 두고 작성한 명령 스크립트입니다(PowerShell을 배우기 전에 작성했으며 업데이트할 필요가 없습니다). 시스템의 모든 사용자 프로필 폴더와 Windows 시스템 폴더에 액세스하기 때문에 스크립트는 높은 권한으로 실행되어야 합니다.

@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

스크립트 기능 확장

스크립트 확장성의 일부는 :RemoveSubfoldersAndFiles프로시저 사용에서 발견됩니다. 폴더의 내용을 삭제하려면 이 프로시저를 호출하고 폴더 경로를 유일한 매개변수(없이큰따옴표). 루틴은 존재하지 않는 경로, 어떤 이유로든 액세스할 수 없는 폴더, 경로 아래의 일부 파일이나 폴더가 사용 중이거나 삭제를 거부하는 경우를 적절하게 처리합니다.

각 사용자 프로필에 있는 추가 폴더를 정리하려면

섹션 Rem Clean up these folders에서:하위 폴더 및 파일 제거서브루틴. 예를 들어, 각 사용자 \AppData\Local\Microsoft\Windows\Temporary Internet Files폴더의 모든 항목을 삭제하려면 다음 줄을 추가합니다.

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

%UserProfilePath%일반적인 변수 대신 스크립트 정의 변수를 사용한다는 점에 유의하세요 %USERPROFILE%. 스크립트 버전은 스크립트가 컴퓨터의 각 사용자 프로필을 반복할 때 동적으로 업데이트됩니다.

사용자 프로필 외부에서 발견된 폴더를 정리하려면

서브루틴 에서 :SetUserProfPath다시 호출을 추가합니다.:하위 폴더 및 파일 제거절차. 예를 들어:

Call :RemoveSubfoldersAndFiles C:\Temp

관련 정보