如何偵測及移除非作用中的電腦帳戶

文章翻譯 文章翻譯
文章編號: 197478 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

結論

這個程序會使用批次檔和資源套件公用程式來建立依的上次更新機器帳戶密碼的電腦帳戶的清單。然後清單必須由系統管理員才能移除所有被視為作用中剩餘的清單留只舊的電腦帳戶的電腦帳戶檢查。由有系統地刪除舊的電腦帳戶使用 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 安全性的一部份,機器帳戶密碼會變更每七天。本文所述的程序會依賴機器帳戶密碼,以判斷有效性世紀。很可能要停用自動電腦帳戶密碼變更系統管理員。 這個處理程序可以完成整個網域或每個系統為基礎。如果已完成此程序,系統管理員不能依賴密碼期限設判斷帳戶的有效性。您需要將交叉參考與編輯 Output.txt 時您內部文件中提供有效的電腦帳戶。如果沒有此資訊,不應使用此技巧。

注意:Microsoft 僅,為了說明提供程式設計範例,不提供任何明示或默示的保證。這包括,但不限於適售性或適合某特定用途之默示擔保責任。本文假設您已熟悉使用我們所示範的程式設計語言以及建立和偵錯程序所使用的工具。Microsoft 技術支援工程師可以協助解釋特定程序的功能,但它們不會修改這些範例以提供附加功能或建構程序,以符合您特定需求。

?考

如需詳細資訊請參閱下列的發行項 「 Microsoft 知識庫 」 中:

154501如何停用自動電腦帳戶密碼變更

158148網域安全通道公用程式--Nltest.exe

屬性

文章編號: 197478 - 上次校閱: 2007年2月27日 - 版次: 3.4
這篇文章中的資訊適用於:
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows NT Server 3.5
  • Microsoft Windows NT Server 3.51
  • Microsoft Windows NT Server 4.0 Standard Edition
關鍵字:?
kbmt kbhowto KB197478 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:197478
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com