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

文章翻译 文章翻译
文章编号: 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=mydomain
echo off
cls
if (%CurrentDomain%) == (mydomain) echo Edit the first line of
INSUSER.BAT.
if (%CurrentDomain%) == (mydomain) echo then rerun INSUSER.BAT
if (%CurrentDomain%) == (mydomain) goto verybottom
if not exist addusers.dat goto DisplayAddUsers
rem *** 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 SkipCreateList
echo Creating a list of member servers in %CurrentDomain%.
echo.
netdom /d:%CurrentDomain% member > working.txt
rem *** Remove NETDOM formatting from server names ***
if exist temp.txt del temp.txt
for /F "skip=6 delims=\ tokens=2" %%a in (working.txt) do call sub1.bat
%%a
del working.txt
ren temp.txt working.txt
:SkipCreateList
rem *** Determine if machine is online ***
if exist online.txt del online.txt
for /F "delims=\\ tokens=1" %%a in (working.txt) do call sub2.bat %%a
rem *** Remove servers that have been processed from WORKING.TXT ***
if not exist online.txt goto NoServersOnline
echo.
echo Updating list of servers that need to be processed.
for /F "delims=  tokens=1" %%a in (online.txt) do call sub4.bat %%a
echo List complete.
goto Bottom
:DisplayAddUsers
Echo.
Echo. You must modify the contents of ADDUSERS.DA, then rename the
Echo. file to ADDUSERS.DAT.  Then re-run this batch file.
goto verybottom
:NoServersOnline
Echo.
Echo There are no servers currently online that can be processed.
:Bottom
echo.
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.TXT
for /F "skip=6 tokens=4" %%a in (PING.TXT) do call sub3.bat %%a %1
del 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 NotOnline
echo %3 >> ONLINE.TXT
echo [%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 line
for /F "delims=	 tokens=3" %%i IN ('reg query hklm\system\currentcontrolset\control\ProductOptions\ProductType \\%3') DO set product_type=%%i
REM End single line

if "%product_type%"=="" goto Undetermined
if "%product_type%"=="WinNT" goto Workstation
if "%product_type%"=="ServerNT" goto Server
if "%product_type%"=="LanmanNT" goto DomainController

:Undetermined
echo Unable to determine Windows NT Product Type, check the following
echo registry key for product type
echo.
echo hklm\system\currentcontrolset\control\ProductOptions\ProductType
echo.
echo Expected values
echo.
echo ProductType   Product
echo ----------------------------------------------------
echo WinNT         Windows NT Workstation is running
echo ServerNT      Windows NT Server is running
echo LanmanNT      Windows NT Domain controller
echo.
echo %3 >>undetermined.txt
goto Sub3bot

:DomainController
echo %3 >>dc.txt
goto sub3bot

:Server
echo %3 is a Server, skipping...
echo %3 >>server.txt
goto adduser

:Workstation
echo %3 is a Workstation, processing %3
echo %3 >> wks.txt
goto adduser

:adduser
ECHO Adding new user to local administrators group on %3.
ECHO *** \\%3 *** >> local.log
rem Add a user to each member servers local administrators group
ADDUSERS \\%3 /C addusers.dat > nul
rem *****************************************************
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.txt
for /F "tokens=1" %%a in (working.txt) do call sub5.bat %%a %%1
del working.txt
if exist temp.txt ren temp.txt working.txt
				

文件名: SUB5.BAT
rem *** Filter out servers that have been updated ***
rem %1 is name from working.txt
rem %2 is name from online.txt
if (%1) == (%2) echo %1 >> complete.txt
if 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 NotOnline
echo %3 >> ONLINE.TXT
echo [%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 line
for /F "tokens=3" %%i IN ('reg query
hklm\system\currentcontrolset\control\ProductOptions\ProductType \\%3') DO
set product_type=%%i
REM End single line

if "%product_type%"=="" goto Undetermined
if "%product_type%"=="WinNT" goto Workstation
if "%product_type%"=="ServerNT" goto Server
if "%product_type%"=="LanmanNT" goto DomainController

:Undetermined
echo Unable to determine Windows NT Product Type, check the following
echo registry key for product type
echo.
echo hklm\system\currentcontrolset\control\ProductOptions\ProductType
echo.
echo Expected values
echo.
echo ProductType   Product
echo ----------------------------------------------------
echo WinNT         Windows NT Workstation is running
echo ServerNT      Windows NT Server is running
echo LanmanNT      Windows NT Domain controller
echo.
echo %3 >>undetermined.txt
goto Sub3bot

:DomainController
echo %3 >>dc.txt
goto sub3bot
				

属性

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