Пакетное удаление временных файлов Windows (система, браузеры, кэш и т. д.) Для всех пользователей

кто-нибудь в этом сообществе использует определенный метод для пакетного удаления временных данных (таких как временные папки Windows, кэш браузеров и т. д.) Для всех пользователей?

сложная часть, кажется:

  • Используйте технику / инструмент, который будет обновляться с течением времени, чтобы встретить изменения в каждой структуре папок продукта
  • разрешить доступ к папкам других пользователей (Запуск от имени администратора/максимальные привилегии)

Скрипты/пакетные файлы могут быть решение, но это потребует постоянного мониторинга для каждого обновления продукта, чтобы избежать удаления старых файлов / папок структуры...

ваши мысли?

24
задан Hennes
05.05.2023 19:44 Количество просмотров материала 2444
Распечатать страницу

1 ответ

у меня был тот же вопрос, но мотивированный желанием помочь моим усилиям, чтобы закончить операции по очистке вредоносных программ. Вот командный сценарий, который я написал с прицелом на модульность, чтобы его можно было легко расширить для будущих ОС и временных расположений файлов (я написал это перед изучением 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 добавить дополнительные вызовы :RemoveSubfoldersAndFiles подпрограммы. Например, удалить все в <каждого пользователя!--5-- папку> добавить строку:

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

обратите внимание на использование скрипта-defined %UserProfilePath% переменная вместо типичного %USERPROFILE% переменной. Версия скрипта динамически обновляется по мере прохождения скриптом каждого профиля пользователя на компьютере.

для очистки папок, найденных вне профилей пользователей

на :SetUserProfPath подпрограмма, снова добавить вызовы :RemoveSubfoldersAndFiles процедуры. Например:

Call :RemoveSubfoldersAndFiles C:\Temp
0
отвечен Twisty Impersonator 2023-05-07 03:32

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

batch-file
disk-cleanup
script
windows
Вверх