@ECHO OFF
CLS
SETLOCAL EnableDelayedExpansion
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
set "DEL=%%a" )Color 0f
CALL :C 0a "=====================================" &echo:
CALL :C 0b "Checking Files"&echo:
CALL :C 0a "=====================================" &echo:
FOR %%a IN ("wbemcomn.dll") DO Echo %%~$PATH:a
FOR %%b IN ("wmiutils.dll") DO Echo %%~$PATH:b
CALL :C 0c "Done" &echo:
echo. &echo.
CALL :C 0a "=====================================" &echo:
CALL :C 0b "WinMgmt Service Disabled " &echo:
CALL :C 0a "=====================================" &echo:
Echo Y|net stop winmgmt >nulCALL :C 0c "Done" &echo:
echo.&echo.
CALL :C 0a "=====================================" &echo:
CALL :C 0b "Changing to wbem Folder" &echo:
CALL :C 0a "=====================================" &echo:
CD /D %windir%\system32\wbem
CALL :C 0c "Done" &echo:
echo.&echo.
CALL :C 0a "=====================================" &echo:
CALL :C 0b "Retrieving Process PID" &echo:
CALL :C 0a "=====================================" &echo:
IF EXIST "%temp%\reg.txt" DEL /F /Q "%temp%\reg.txt" >nul
SET "reg=HKLM\SOFTWARE\Microsoft\WBEM\CIMOM"
REG EXPORT "%reg%" "%temp%\reg.txt" >nul
FOR /F "tokens=3 delims==dword:" %%c IN ('find /I "ProcessID" "%temp%\reg.txt"') DO set hex=%%c
CALL:toDec %hex% PID
CALL :C 0c "Done" &echo:
echo.&echo.
CALL :C 0a "=====================================" &echo:
CALL :C 0b "Terminating Process" &echo:
CALL :C 0a "=====================================" &echo:
"%~dp0pskill.exe" %PID% >nulCALL :C 0c "Done" &echo:
echo.&echo.
CALL :C 0a "=====================================" &echo:
CALL :C 0b "Removing Repository and Logs Folders" &echo:
CALL :C 0a "=====================================" &echo:
RMDIR /S /Q Repository >nul
RMDIR /S /Q Logs >nul
CALL :C 0c "Done" &echo:
echo.&echo.
CALL :C 0E "Continuing in "3" Sec"
echo.&echo.
Ping Localhost -n 4 >nul
CALL :C 0a "=====================================" &echo:
CALL :C 0b "Creating Log Folder" &echo:
CALL :C 0a "=====================================" &echo:
MKDIR Logs >nul
CALL :C 0c "Done" &echo:
echo.&echo.
CALL :C 0a "=====================================" &echo:
CALL :C 0b "Registring DLL Files" &echo:
CALL :C 0a "=====================================" &echo:
FOR /R %%d IN (*.dll) DO Regsvr32 /s %%d
Regsvr32 /S fastprox.dll
CALL :C 0c "Done" &echo:
echo.&echo.
CALL :C 0a "=====================================" &echo:
CALL :C 0b "WinMgmt Service Enabled" &echo:
CALL :C 0a "=====================================" &echo:
Echo Y|net start winmgmtCALL :C 0c "Done" &echo:
echo.&echo.
CALL :C 0a "=====================================" &echo:
CALL :C 0b "Registring Wbemtest.dll File" &echo:
CALL :C 0a "=====================================" &echo:
For /F "skip=1 tokens=3" %%a IN ('ver') DO (
If %%a==[Version ( goto gg
) Else (
if %%a==XP Regsvr32 wbemupgd.dll )
)CALL :C 0c "Done" &echo:
echo.&echo.
:gg
CALL :C 0a "=====================================" &echo:
CALL :C 0b "Starting Services" &echo:
CALL :C 0a "=====================================" &echo:
NET start server >nul
NET start workstation >nul
NET start AudioSrv >nul
NET start termservice >nul
CALL :C 0c "Done" &echo:
echo.&echo.
CALL :C 0a "=====================================" &echo:
CALL :C 0d "Re-building WMI Completed " &echo:
CALL :C 0a "=====================================" &echo:&echo:&echo:
:skip
Call :C 07 "For Windows XP"&echo:
CALL :C 0a "Press " &call :C 0c "R " &call :C 0a "to restor missing files, or " &call :C 0a "Press " &call :C 0c "X " &call :C 0a "to Close" &echo:
Set "cho="
Set /p "cho=>"
If not defined cho cls & goto skip
If /i %cho%==r goto Missing
If /i %cho%==x goto eof
MSG * "Invalid Choice"
cls
goto skip:Missing
cls
echo:&echo:
Call :C 0F "This will Require the Installation CD to Replace Missing Files" &echo:&echo:
Call :C 07 " Make The CD Ready and Insert when Prompt" &echo:&echo:
pause
start rundll32.exe setupapi,InstallHinfSection WBEM 132 %windir%\inf\wbemoc.inf:toDec
SETLOCAL
set /a dec=0x%~1
( ENDLOCAL
IF "%~2" NEQ "" (SET %~2=%dec%) ELSE ECHO.%dec%
)
EXIT /b
:C
echo off
cd %temp%
<nul set /p "=%DEL%" >> "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1
goto :eof:eof
Exit
::
http://www.dostips.com/forum/