Гаразд. Отже, це не рахунок, Guest
а а Local account
.
Спочатку кілька дрібниць, які я помітив у вашому сценарії.
- Якщо ви збираєтесь видалити все, що старше 7 днів, з усього профілю (як це робиться у вашому сценарії), ви потрапите в проблеми. Ви також будете видаляти багато файлів
appdata
, "налаштування програми" тощо ... Ви цього не хочете, оскільки ці програми можуть стати непридатними. За замовчуванням ви не бачите цих файлів / каталогів, але якщо ви використовуєте командний рядок, вони є. (Спробуйте налаштувати Провідник для відображення прихованих файлів або набору тексту C:\Users\Internet\appdata
в адресному рядку)
- Я все ще нічого не маю
/M .
. Мені потрібно повністю /M *.*
або пропустити його. (за замовчуванням /M *
)
- Якщо ви використовуєте це як самостійно (а не "Інтернет"), у вас немає достатнього дозволу, щоб видалити їх. (Звідси піктограма блокування у файлі) Вам потрібно взяти право власності на файли, перш ніж ви зможете їх видалити. Ви можете спробувати запустити сценарій як адміністратор, але я не впевнений, чи допоможе це.
Існує кілька способів вирішити цю проблему. Нижче я згадую інший підхід щодо скидання всього облікового запису. Але ось сценарій, який видаляє файли старше 7 днів.
Він змінює поточний каталог на C:\Users\Internet
( popd
змінює його назад). Потім він проходить через заданий набір каталогів, з яких потрібно видалити файли. Ви бачите, що я не вказав цілого appdata
-dir, але включив AppData\Local\Temp
і Temporary Internet Files
. Додайте свої, якщо ви цього хочете. Це візьме право власності на всі файли та каталоги. Тоді він надасть Everyone
права на ці файли (тому він не перериватиме їх програми). Після цього буде видалено лише файли, старші 7 днів. Вам потрібно вказати, del /a
щоб включити видалення прихованих файлів.
(Я додав кілька чеків у верхній частині batch-файлу, щоб переконатися, що ви знаходитесь у правильному каталозі. Ви дійсно не хочете робити це в іншому каталозі випадково;)
@echo off
PUSHD C:\Users\Internet
IF /I "%cd%"=="C:\Users\Internet" GOTO OK
ECHO Oops, CD didn't work. You really don't want to do this in another directory !!!
POPD
EXIT/b
:OK
SET "dirs=AppData\Local\Temp:Contacts:Desktop;Documents:Downloads:Favorites:Links:Music:Pictures:Videos:AppData\Local\Microsoft\Windows\Temporary Internet Files"
FOR %%d IN ("%dirs::=" "%") DO (
TAKEOWN /R /D Y /F %%d
ICACLS %%d /T /GRANT Everyone:F
FORFILES /P %%d /S /D -7 /C "cmd /c del /q /a "@path""
)
POPD
Це не видалить "налаштування програми", але також залишить інші тимчасові каталоги (крім AppData \ Local \ Temp) у спокої. Тож якщо у вас є інші каталоги, ви можете включити їх до set
рядка.
Іншим підходом було б скидання всього облікового запису користувача. Ви могли б зробити
net user internet /delete
net user internet /add
rd c:\users\internet /s/q
Вам потрібно це зробити як адміністратор. Але таким чином всі налаштування, які зробив користувач, втрачаються. Не тільки старше 7 днів. Це все очистить. Не впевнений, чи бажано це. Однак це "найчистіше". Якщо це загальнодоступний комп'ютер, ви можете це робити через день (або кожен день). Ви також можете створити резервну копію профілю та відновити його, але це також видаляє молодші файли та скидає обліковий запис на певний час / стан.
З якої причини слід видаляти лише файли, старші 7 днів? Якщо ви дійсно хочете потрапити до файлів молодше 7 днів, вам потрібен перший сценарій.