自动更新成员服务器上的本地组

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

点击这里察看该文章的英文版: 180546
本文已归档。它按“原样”提供,并且不再更新。
概要
批处理文件可用于远程用户帐户添加到所有在域环境中运行 Windows NT 或 Windows 2000 的计算机上的本地组。
更多信息
本文演示如何创建一个批处理文件系统,将添加到所有的本地管理员组的用户位于运行 Windows NT 或 Windows 2000 域环境中的每台计算机上。

批处理文件系统使用从 Windows NT 4.0 资源工具包 Netdom.exe 创建作为成员服务器或域中的工作站操作系统的计算机运行 Windows NT 的列表。在创建列表之后,从列表中的每台计算机被 pinged 以确定计算机是否是当前联机。联机计算机是否将调用 Addusers.exe 放在计算机的本地管理员组中的新用户。联机的计算机是否将临时文件中放置它的名称。所有计算机都已被都处理后,临时文件将与的计算机列表从要创建一个新的列表,但尚未更新的计算机在域进行比较。此批处理文件系统可以只有计算机的仍然需要处理的目标运行多次。NETDOM.EXE、 ADDUSERS.EXE 和 REG.EXE Windows NT 4.0 资源工具箱中复制到这些脚本是在文件夹。

若要进行这些批处理文件执行以下步骤:

  1. 从下面的列表创建以下的批处理文件,请执行以下操作:
    INSUSER.BAT,SUB1.BAT,SUB2.BAT,SUB3.BAT,SUB4.BAT,
    SUB5.BAT 和 ADDUSERS.DAT。
  2. 编辑 INSUSER.BAT 以反映在目标计算机的位置的域名的第一行。
  3. 在第二行中 Addusers.dat 以反映要添加的用户的名称在 <domain\user> 改为每台计算机的本地管理员组。请确保顶部 Addusers.dat 文件的一个空白的行。
  4. 登录到网络中与您想要修改域的域管理员凭据。请确保在 Windows NT 4.0 资源工具包的已安装并且可以通过在系统路径进行访问。此系统使用 Netdom.exe 和 $ Addusers.exe 资源工具包中。
  5. 运行该 INSUSER.BAT。此批处理文件可能需要许多小时才能完成。
  6. 检查 Complete.txt 和 Working.txt 的内容。文件包含已更新的计算机的名称在 Complete.txt,Working.txt 文件包含仍需要处理的计算机的名称。
根据需要重复步骤 5 和 6。

如果希望从头重新开始整个过程删除所有的.txt 文件,然后在步骤 1 开始。

文件名: INSUSER.BAT
set CurrentDomain=mydomainecho offclsif (%CurrentDomain%) == (mydomain) echo Edit the first line ofINSUSER.BAT.if (%CurrentDomain%) == (mydomain) echo then rerun INSUSER.BATif (%CurrentDomain%) == (mydomain) goto verybottomif not exist addusers.dat goto DisplayAddUsersrem *** Display current variable settings ***echo Current domain is %CurrentDomain%.echo.rem *** Determine if working list is present ***If exist working.txt echo Working list detected, resuming batch process.If exist working.txt goto SkipCreateListecho Creating a list of member servers in %CurrentDomain%.echo.netdom /d:%CurrentDomain% member > working.txtrem *** Remove NETDOM formatting from server names ***if exist temp.txt del temp.txtfor /F "skip=6 delims=\ tokens=2" %%a in (working.txt) do call sub1.bat%%adel working.txtren temp.txt working.txt:SkipCreateListrem *** Determine if machine is online ***if exist online.txt del online.txtfor /F "delims=\\ tokens=1" %%a in (working.txt) do call sub2.bat %%arem *** Remove servers that have been processed from WORKING.TXT ***if not exist online.txt goto NoServersOnlineecho.echo Updating list of servers that need to be processed.for /F "delims=  tokens=1" %%a in (online.txt) do call sub4.bat %%aecho List complete.goto Bottom:DisplayAddUsersEcho.Echo. You must modify the contents of ADDUSERS.DA, then rename theEcho. file to ADDUSERS.DAT.  Then re-run this batch file.goto verybottom:NoServersOnlineEcho.Echo There are no servers currently online that can be processed.:Bottomecho.echo ------------------------------------echo --- Finished processing servers. ---echo ------------------------------------:verybottom				

文件名: SUB1.BAT
rem *** Remove formatting from Netdom output ***echo %1 >> temp.txt				

文件名: SUB2.BAT
echo Pinging %1...ping %1 > PING.TXTfor /F "skip=6 tokens=4" %%a in (PING.TXT) do call sub3.bat %%a %1del PING.TXT				

文件名: SUB3.BAT
rem *** If server is online it will be logged in online.txt for ***rem *** processing later.                                       ***rem ***    %2 is a bogus variable, thrown away.if not (%1) == (bytes) goto NotOnlineecho %3 >> ONLINE.TXTecho [%3 is online.]rem ***********************************************rem *** Put per-server processing commands here ***rem ***********************************************rem *** The following section determines if *******rem *** Workstation or Server is running    *******rem ***********************************************REM Next Line wrapped by text editor for readability, it should all be on one linefor /F "delims=	 tokens=3" %%i IN ('reg query hklm\system\currentcontrolset\control\ProductOptions\ProductType \\%3') DO set product_type=%%iREM End single lineif "%product_type%"=="" goto Undeterminedif "%product_type%"=="WinNT" goto Workstationif "%product_type%"=="ServerNT" goto Serverif "%product_type%"=="LanmanNT" goto DomainController:Undeterminedecho Unable to determine Windows NT Product Type, check the followingecho registry key for product typeecho.echo hklm\system\currentcontrolset\control\ProductOptions\ProductTypeecho.echo Expected valuesecho.echo ProductType   Productecho ----------------------------------------------------echo WinNT         Windows NT Workstation is runningecho ServerNT      Windows NT Server is runningecho LanmanNT      Windows NT Domain controllerecho.echo %3 >>undetermined.txtgoto Sub3bot:DomainControllerecho %3 >>dc.txtgoto sub3bot:Serverecho %3 is a Server, skipping...echo %3 >>server.txtgoto adduser:Workstationecho %3 is a Workstation, processing %3echo %3 >> wks.txtgoto adduser:adduserECHO Adding new user to local administrators group on %3.ECHO *** \\%3 *** >> local.logrem Add a user to each member servers local administrators groupADDUSERS \\%3 /C addusers.dat > nulrem *****************************************************rem net send %3 "it worked"rem *** Put per-server processing commands above here ***rem *****************************************************goto Sub3Bot:NotOnline:Sub3Bot				
文件名: SUB4.BAT
rem *** loop thru each name in working.txt and remove servers that were***rem *** in online.txt.***echo Removing %1 from list.if exist temp.txt del temp.txtfor /F "tokens=1" %%a in (working.txt) do call sub5.bat %%a %%1del working.txtif exist temp.txt ren temp.txt working.txt				

文件名: SUB5.BAT
rem *** Filter out servers that have been updated ***rem %1 is name from working.txtrem %2 is name from online.txtif (%1) == (%2) echo %1 >> complete.txtif not (%1) == (%2) echo %1 >> temp.txt				

文件名: ADDUSERS.DAT
[Local]Administrators,Members can fully administer the computer,<domain\user>,				

此外,您可以配置这些工作站上执行单个命令的批处理文件或服务器仅,请参阅指定服务器或工作站。

指定服务器或工作站

使用以下的批处理文件中替换该 SUB3.BAT,从该 reskit REG.EXE 用于检查产品类型工作站或域控制器上的服务器) 在注册表中。 通过更改中的 goto 命令了: 服务器和: 工作站部分您可以控制如果命令运行针对服务器或工作站,如下所示:

转至 Sub3bot-将跳过此产品类型。 转至 Adduser-命令中: addusers 部分将会处理对该产品类型。

当前,选择仅工作站。 使用此修改 sub3.bat 时,可以忽略 complete.txt 的内容。 请检查以确定已更新的计算机的 LOCAL.LOG。 这里可能会生成该日志文件的说明。

LOCAL.LOG-已更新的计算机。

WKS.TXT-已被确定为工作站的计算机。

SERVER.TXT-标识为服务器计算机。

UNDETERMINED.TXT-在服务器管理器中标识为服务器或工作站,但没有在注册表中定义的产品类型的计算机。 或者,不能远程读取注册表。

DC.TXT-标识的计算机作为一个服务器或工作站,但该产品的服务器管理器在注册表中定义的类型指示这是一个域控制器。 这些系统将不会处理。

工作-包含在 $ 服务器管理器中列出但未响应 PING 的计算机列表。 当运行批处理文件在第二个或第三个时间时使用此列表。

文件名 SUB3.BAT
rem *** If server is online it will be logged in online.txt for ***rem *** processing later.                                       ***rem ***    %2 is a bogus variable, thrown away.if not (%1) == (bytes) goto NotOnlineecho %3 >> ONLINE.TXTecho [%3 is online.]rem ***********************************************rem *** Put per-server processing commands here ***rem ***********************************************rem *** The following section determines if *******rem *** Workstation or Server is running    *******rem ***********************************************REM Next Line wrapped by text editor for readability, it should all be onone linefor /F "tokens=3" %%i IN ('reg queryhklm\system\currentcontrolset\control\ProductOptions\ProductType \\%3') DOset product_type=%%iREM End single lineif "%product_type%"=="" goto Undeterminedif "%product_type%"=="WinNT" goto Workstationif "%product_type%"=="ServerNT" goto Serverif "%product_type%"=="LanmanNT" goto DomainController:Undeterminedecho Unable to determine Windows NT Product Type, check the followingecho registry key for product typeecho.echo hklm\system\currentcontrolset\control\ProductOptions\ProductTypeecho.echo Expected valuesecho.echo ProductType   Productecho ----------------------------------------------------echo WinNT         Windows NT Workstation is runningecho ServerNT      Windows NT Server is runningecho LanmanNT      Windows NT Domain controllerecho.echo %3 >>undetermined.txtgoto Sub3bot:DomainControllerecho %3 >>dc.txtgoto sub3bot				

警告:本文已自动翻译

属性

文章 ID:180546 - 上次审阅时间:02/22/2014 09:26:29 - 修订版本: 2.2

Microsoft Windows 2000 Server, Microsoft Windows 2000 Professional Edition, Microsoft Windows NT Workstation 3.5, Microsoft Windows NT Workstation 3.51, Microsoft Windows NT Workstation 4.0 开发员版, Microsoft Windows NT Server 3.5, Microsoft Windows NT Server 3.51, Microsoft Windows NT Server 4.0 Standard Edition, Microsoft Windows 2000 Advanced Server

  • kbnosurvey kbarchive kbmt kbinfo KB180546 KbMtzh
反馈
ERROR: at System.Diagnostics.Process.Kill() at Microsoft.Support.SEOInfrastructureService.PhantomJS.PhantomJSRunner.WaitForExit(Process process, Int32 waitTime, StringBuilder dataBuilder, Boolean isTotalProcessTimeout)