Înțeleg. Vă voi oferi un script care calculează automat data cu 3 săptămâni în urmă și compară acea dată cu data ultimei modificări a profilului. Dacă profilul este mai vechi de acea dată, îl va șterge.
“`batch
@echo off
setlocal enabledelayedexpansion
:: Setează calea unde sunt stocate profilele utilizatorilor
set PROFILE_PATH=C:\Users
:: Obține data curentă și scade 21 de zile (3 săptămâni)
for /f “tokens=1-3 delims=/” %%a in (‘date /t’) do (
set /a “day=%%a-21”
set /a “month=%%b”
set /a “year=%%c”
)
:: Dacă ziua este negativă, scade o lună și adaugă numărul de zile corespunzător
if %day% lss 0 (
set /a “month-=1”
if %month%==0 (
set month=12
set /a “year-=1”
)
if %month%==4 set /a “day+=30”
if %month%==6 set /a “day+=30”
if %month%==9 set /a “day+=30”
if %month%==11 set /a “day+=30”
if %month%==2 (
set /a “leapyear=year%%4”
if !leapyear!==0 (set /a “day+=29”) else (set /a “day+=28”)
) else (
set /a “day+=31”
)
)
:: Parcurge fiecare profil care începe cu “a0”
for /d %%i in (“%PROFILE_PATH%\a0*”) do (
:: Obține numele profilului
set “profileName=%%~nxi”
:: Verifică data ultimei modificări a profilului
for /f “tokens=1-3 delims=/” %%a in (‘dir “%%i” /ta /od | find “Dir”‘) do (
set “folder_day=%%a”
set “folder_month=%%b”
set “folder_year=%%c”
)
:: Dacă profilul este mai vechi de 21 de zile, șterge-l
if !folder_year! lss %year% (
rmdir /s /q “%%i”
reg delete “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\!profileName!” /f
) else if !folder_year!==%year% if !folder_month! lss %month% (
rmdir /s /q “%%i”
reg delete “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\!profileName!” /f
) else if !folder_year!==%year% if !folder_month!==%month% if !folder_day! lss %day% (
rmdir /s /q “%%i”
reg delete “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\!profileName!” /f
)
)
endlocal
exit
“`
Acest script ar trebui să facă ceea ce ați cerut. Cu toate acestea, vă recomand să îl testați pe un sistem de test înainte de a-l rula pe un sistem de producție. Ștergerea intrărilor din registrul Windows poate avea consecințe nedorite dacă nu este făcută corect.