検出およびアクティブでないコンピューター アカウントを削除する方法


概要


この手順では、バッチ ファイルとリソース キットのユーティリティを使用して、コンピューター アカウントがコンピューター アカウントのパスワードが更新された最終時刻順のリストを作成します。リストは、アクティブにして、残りのボックスの一覧で、古いマシン アカウントだけを残すと思われるすべてのコンピューター アカウントを削除するには管理者が判断する必要があります。残りのリストは、体系的に Windows NT リソース キットのユーティリティを使用して、古いコンピューター アカウントを削除するバッチ ファイルが読み取られます。


  1. 一覧を次から次のバッチ ファイルを作成する: Oldms.bat、Oldms2.bat、Oldms3.bat、Oldms4.bat、Deloldms.bat、および Bat2.bat。
  2. 管理者としてログオンし、コマンド プロンプトから Oldms.bat ファイルを実行します。次の構文を使用します。


    OLDMS。BAT のドメイン名
  3. Output.txt ファイルのテキスト エディターを使用するを開き、有効であるコンピューター アカウントが含まれているすべての明細行を削除します。Output.txt というは、残りの行には、削除されるコンピューター アカウントのみが含まれている必要があります。
  4. Deloldms.bat ファイルを実行します。このファイルは Output.txt ファイルを読み取るし、Netdom.exe リソース キットのユーティリティを呼び出すことにより、各コンピューター アカウントを削除します。
Oldms.bat の内容:

   @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

Oldms2.bat の内容:

   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

Oldms3.bat の内容:

   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

Oldms4.bat の内容

   rem %1 = month
rem %2 = day
rem %3 = year
rem %4 = time
rem %5 = member server
echo %3/%1/%2 %4 %5 >> output.txt

Deloldms.bat の内容

   @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

Bat2.bat の内容:

   NETDOM /d:%dom% MEMBER %1 /DELETE

詳細


、Windows NT のセキュリティの一部としてコンピューター アカウント パスワードは 7 日ごとに変更されます。この資料で説明する手順は、検証を行うためにコンピューター アカウントのパスワードの有効期間に依存しています。管理者が自動的なコンピューター アカウント パスワード変更を無効にすることができます。このプロセスは、ドメイン全体、またはシステムごとの単位で実行できます。この処理を行っている場合は、管理者がアカウントの有効性を確認するのにはパスワードの有効期間に依存できません。通過する必要があります。 Output.txt を編集するときは、社内で文書化された有効なコンピューター アカウントを使用して参照します。この情報が使用できない場合は、この方法は使用しない必要があります。

:マイクロソフトは、明示または黙示の保証もなくするだけでプログラミングの例を示します。ここで言う保証とは、特定の目的に対する商品性や適合性の暗示的保証を含んでいますが、それに限定されるわけではありません。この資料では、例示されているプログラミング言語およびプロシージャの作成やデバッグに使用するツールにお客様が精通していることを前提としています。マイクロソフトのサポート エンジニアは、特定のプロシージャの機能を説明することができますが、追加機能を提供し、お客様固有の要件を満たすようにプロシージャを作成したりするにこれらの例は変更されません

関連情報


詳細については、次の資料、マイクロソフト サポート技術情報を参照してください。


154501自動的なコンピューター アカウント パスワード変更を無効にする方法



158148ドメイン セキュリティで保護されたチャネルのユーティリティ--Nltest.exe