Acontinuación les comparto mi programa terminado, creo que asi fucniona correctamente, en el caso de win7 hay que correrlo primero como administrador.
Chequenlo y se aceptan sugerencias:
Código:
@echo off
rem Programa compilado con el nombre de anti-hide2.exe
setlocal enabledelayedexpansion
takeown /F "%Windir%\System32\fsutil.exe" >nul
icacls "%Windir%\System32\fsutil.exe" /grant Administradores:(D,WDAC,MA,F) >nul
set malicius="RECYCLER\S-1-5-21-1482476501-1644491937-682003330-1013"
set winixp="%allusersprofile%\Menú Inicio\Programas\Inicio"
set wini7="%homepath%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
:inicio
systeminfo | find "Windows XP"
if %ERRORLEVEL% == 0 goto winxp
systeminfo | find "Windows 7”
if %ERRORLEVEL% == 0 goto win7
:winxp
IF EXIST "%winixp%\anti-hide2.exe" ( GOTO :STARTER )
copy %0 %winixp%\anti-hide2.exe
:win7
IF EXIST "%wini7%\anti-hide2.exe" ( GOTO :STARTER )
copy %0 %wini7%\anti-hide2.exe
:STARTER
for /F "tokens=2-9* delims=:\ " %%a in ('fsutil fsinfo drives') do (
Set unidad=%%b & Call :verificar
Set unidad=%%c & Call :verificar
Set unidad=%%d & Call :verificar
Set unidad=%%e & Call :verificar
Set unidad=%%f & Call :verificar
Set unidad=%%g & Call :verificar
Set unidad=%%h & Call :verificar
Set unidad=%%i & Call :verificar
Set unidad=%%j & Call :verificar
)
Ping -n 5 localhost >nul
Goto :Inicio
:Verificar
fsutil fsinfo drivetype !unidad:~-0,1!: | findstr /s "extra"
If %errorlevel% EQU 0 (
Attrib /d /s -r -h -s "!unidad:~-0,1!:\*"
del /Q /F "!unidad:~-0,1!:\*.lnk"
del /Q /F "!unidad:~-0,1!:\autorun.*"
del /Q /F "!unidad:~-0,1!:\%malicius%"
goto:eof
) ELSE (
goto:eof
)