Automatizar actualizações para grupos locais em servidores membro

Traduções de Artigos Traduções de Artigos
Artigo: 180546 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Ficheiros de comandos podem ser utilizados para adicionar remotamente contas de utilizador a grupos locais em todos os computadores com o Windows NT ou Windows 2000 num ambiente de domínio.

Mais Informação

Este artigo demonstra como criar um sistema de ficheiros batch que irá adicionar um utilizador para todos os grupos de administradores local se encontra cada computador com o Windows NT ou Windows 2000 num ambiente de domínio.

O sistema de ficheiros batch utiliza o Netdom.exe a partir do Windows NT 4.0 Resource Kit para criar uma lista de computadores com o Windows NT que estão a funcionar como servidores membro ou estações de trabalho num domínio. Depois de criada a lista, cada computador a partir da lista é tiverem ping para determinar se o computador está actualmente online. Se o computador estiver online, será chamado Addusers.exe para colocar um novo utilizador no grupo de administradores local do computador. Se um computador tiver sido online, o nome será colocado num ficheiro temporário. Depois de terem sido processados todos os computadores, o ficheiro temporário será comparada com a lista de computadores do domínio, para criar uma nova lista de computadores que ainda não tenham sido actualizados. Este sistema de ficheiros batch pode ser executado várias vezes para o destino apenas os computadores que ainda necessitam de ser processadas. Copie NETDOM.EXE ADDUSERS.EXE e REG.EXE a partir do Windows NT 4.0 Resource Kit para a pasta onde estão os scripts.

Para criar estes ficheiros de comandos, execute os seguintes passos:

  1. Crie os seguintes ficheiros batch a partir da lista abaixo:
    INSUSER.BAT, SUB1.BAT, SUB2.BAT, SUB3.BAT, SUB4.BAT,
    SUB5.BAT e ADDUSERS.DAT.
  2. Edite a primeira linha de INSUSER.BAT para reflectir o nome de domínio onde estão localizados os computadores de destino.
  3. Altere o <domain\user> na segunda linha no Addusers.dat para reflectir o nome do utilizador que pretende adicionar ao grupo de administradores local de cada computador. Certifique-se existe uma linha em branco na parte superior do ficheiro Addusers.dat.
  4. Inicie sessão na rede com credenciais de administrador de domínio para o domínio que pretende modificar. Certifique-se o Windows NT 4.0 Resource Kit foi instalado e está acessível através do caminho do sistema. Este sistema utiliza Netdom.exe e Addusers.exe do resource kit.
  5. Execute o INSUSER.BAT. Este ficheiro batch pode demorar várias horas para concluir.
  6. Examine o conteúdo de Complete.txt e Working.txt. Complete.txt ficheiro contém os nomes dos computadores que tenham sido actualizados, o ficheiro Working.txt contém os nomes dos computadores que ainda necessita de processamento.
Repita os passos 5 e 6 conforme necessário.

Se necessitar de recomeçar todo o processo do zero, elimine todos os ficheiros .txt e começar no passo 1.

Nome do ficheiro: 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
				

Nome do ficheiro: SUB1.BAT
rem *** Remove formatting from Netdom output ***
echo %1 >> temp.txt
				

Nome do ficheiro: 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
				

Nome do ficheiro: 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
				
nome do ficheiro: 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
				

Nome do ficheiro: 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
				

Nome do ficheiro: ADDUSERS.DAT
[Local]
Administrators,Members can fully administer the computer,<domain\user>,
				

Além disso, pode configurar estes ficheiros batch para executar o comando único em estações de trabalho ou servidores, consulte especificar servidores ou estações de trabalho.

Especificar servidores ou estações de trabalho

Substituindo o SUB3.BAT com o seguinte ficheiro batch, REG.EXE do reskit é utilizado para verificar o tipo de produto no registo (servidor, estação de trabalho ou controlador de domínio). Alterando o comando goto no: servidor e: secções de estação de trabalho, pode controlar se o comando é executado contra o servidor ou estações de trabalho da seguinte forma:

GOTO Sub3bot - este tipo de produto será ignorado. GOTO Adduser - comandos em: secção addusers será processada contra este tipo de produto.

Actualmente, apenas estação de trabalho está seleccionada. O conteúdo do complete.txt pode ser ignorado quando utilizar este modificado sub3.bat. Verificar LOCAL.LOG para determinar os computadores tenham sido actualizados. Eis uma descrição dos ficheiros de registo que podem ser geradas.

LOCAL.LOG - em computadores que tenham sido actualizados.

WKS.TXT - em computadores que foram identificadas como estações de trabalho.

SERVER.TXT - Máquinas identificadas como SERVERS.

UNDETERMINED.TXT - em computadores que são identificados no Gestor de servidor como um servidor ou estação de trabalho mas não tem o tipo de produto definido no registo. O registo não foi possível ler ou remotamente.

DC.TXT - em computadores que são identificados no Gestor de servidor como um servidor ou estação de trabalho mas o produto tipo definido no registo indica é um controlador de domínio. Estes sistema não será processado.

TRABALHO - contém uma lista de computadores que estão listados no Gestor de servidor, mas que respondeu ao PING. Esta lista é utilizada quando executar ficheiros batch segunda ou terceira vez.

Nome do ficheiro 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
				

Propriedades

Artigo: 180546 - Última revisão: 22 de fevereiro de 2014 - Revisão: 2.2
A informação contida neste artigo aplica-se a:
  • 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 Developer Edition
  • 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
Palavras-chave: 
kbnosurvey kbarchive kbmt kbinfo KB180546 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 180546

Submeter comentários

 

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