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

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