你目前正处于脱机状态,正在等待 Internet 重新连接

如何检测和删除非活动状态的计算机帐户

针对 Windows Server 2003 的支持已于 2015 年 7 月 14 日终止。

Microsoft 已于 2015 年 7 月 14 日终止了对于 Windows Server 2003 的支持。该更改已影响到您的软件更新和安全选项。 了解这一措施对于您的含义以及如何继续保持受保护状态。

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 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
服务器管理器清理

警告:本文已自动翻译

属性

文章 ID:197478 - 上次审阅时间:02/27/2007 23:49:32 - 修订版本: 3.4

Microsoft Windows Server 2003 Enterprise Edition, Microsoft Windows Server 2003 Standard Edition, 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
反馈
ement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?">