Article ID: 197478
Article Last Modified on 2/27/2007
@echo off
if "%1"=="" goto nodomain
set dom=%1
set deloldms=
netdom /d:%1 bdc | find "Found PDC" > temp4.txt
for /f "tokens=3" %%a in (temp4.txt) do set pdc=%%a
if exist ms2.txt del ms2.txt
if exist output.txt del output.txt
if exist out2.txt del out2.txt
if exist temp4.txt del temp4.txt
echo.
echo Generating Server List of Member Servers and Workstations
echo.
echo Please Wait...
netdom /d:%1 /noverbose member > MS.TXT
for /F "delims=\\ tokens=1" %%a in (ms.txt) do echo %%a >> MS2.TXT
cls
echo.
echo Generating List of Member Servers and Workstations - Done
echo.
echo List Generated. Checking Password Ages.
echo.
echo Please Wait...
for /F "tokens=1" %%a in (ms2.txt) do call oldms2.bat %%a %dom% %pdc%
sort < output.txt > out2.txt
del output.txt
echo Machine account ages for domain: %dom% >> output.txt
echo ------------------------------------------------ >> output.txt
type out2.txt >> output.txt
if exist ms.txt del ms.txt
if exist out2.txt del out2.txt
if exist temp3.txt del temp3.txt
if exist ms2.txt del ms2.txt
if exist temp.txt del temp.txt
if exist temp4.txt del temp4.txt
if exist total.txt del total.txt
if exist working.txt del working.txt
REM *** IMPORTANT Make the next 2 lines 1 line. Wrapped for readability ***
FOR /F "SKIP=2 tokens=1,2,3" %%A IN (OUTPUT.TXT) DO echo %%A %%B
%%C>>working.txt
type working.txt|find " " /c>total.txt
for /f "tokens=1" %%A in (total.txt) do set deloldms=%%A
echo.
Echo List Complete
echo.
Echo %deloldms% machine accounts found.
echo.
echo Now edit OUTPUT.TXT and remove all valid machine accounts.
echo Machine accounts remaining in OUTPUT.TXT will be deleted.
echo After OUTPUT.TXT has been modified, run DELOLDMS.BAT to
echo delete machine accounts.
echo.
if exist total.txt del total.txt
if exist working.txt del working.txt
goto end
:nodomain
echo Specify the target domain on the command line
echo EXAMPLE: oldms MyDomainName
:end
rem %1 = member server rem %2 = domain rem %3 = pdc nltest /server:%3 /user:%1$ | find "PasswordLastSet" > temp.txt for /F "delims== tokens=2" %%a in (temp.txt) do oldms3.bat %%a %1
rem %1 = date rem %2 = time rem %3 = member server echo %1 > temp3.txt REM *** IMPORTANT Make the next 2 lines 1 line. Wrapped for readability *** for /F "delims=/ tokens=1,2,3" %%a in (temp3.txt) do oldms4.bat %%a %%b %%c %2 %3
rem %1 = month rem %2 = day rem %3 = year rem %4 = time rem %5 = member server echo %3/%1/%2 %4 %5 >> output.txt
@echo off set dom= set deloldms= if exist total.txt del total.txt if exist working.txt del working.txt REM *** IMPORTANT Make the next 2 lines 1 line. Wrapped for readability *** FOR /F "SKIP=2 tokens=1,2,3" %%A IN (OUTPUT.TXT) DO echo %%A %%B %%C>>working.txt type working.txt|find " " /c>total.txt for /f "tokens=1" %%A in (total.txt) do set deloldms=%%A cls echo. Echo NOTICE: %deloldms% machine accounts found in OUTPUT.TXT, ready for deletion Echo Press Ctrl + C to abort or.. echo. pause FOR /f "tokens=6" %%a in (output.txt) do set dom=%%a if "%dom%"=="" goto nodomain FOR /F "SKIP=2 TOKENS=3" %%A IN (OUTPUT.TXT) DO CALL BAT2 %%A if exist total.txt del total.txt if exist working.txt del working.txt goto end :nodomain Echo Domain Name Missing from OUTPUT.TXT Echo Re-run OLDMS.BAT :end
NETDOM /d:%dom% MEMBER %1 /DELETE
Additional query words: Server Manager Clean Up Cleanup
Keywords: kbhowto KB197478