Automatisation des mises à jour pour les groupes locaux sur les serveurs membres

Traductions disponibles Traductions disponibles
Numéro d'article: 180546 - Voir les produits auxquels s'applique cet article
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Agrandir tout | Réduire tout

Sommaire

Résumé

Fichiers de commandes peuvent servir à ajouter à distance des comptes d'utilisateurs aux groupes locaux sur tous les ordinateurs exécutant Windows NT ou Windows 2000 dans un environnement de domaine.

Plus d'informations

Cet article montre comment créer un système de fichiers par lots va ajouter un utilisateur à tous les groupes d'administrateurs locaux situés sur chaque ordinateur exécutant Windows NT ou Windows 2000 dans un environnement de domaine.

Le système de fichiers par lots utilise Netdom.exe à partir du Kit de ressources Windows NT 4.0 pour créer une liste d'ordinateurs exécutant Windows NT qui fonctionnent en tant que serveurs membres ou les stations de travail dans un domaine. Après avoir créé la liste, chaque ordinateur dans la liste est répond aux requêtes ping pour déterminer si l'ordinateur est actuellement en ligne. Si l'ordinateur est en ligne, AddUsers.exe sera appelée pour placer un nouvel utilisateur dans le groupe d'administrateurs local. Si un ordinateur était en ligne, son nom sera placé dans un fichier temporaire. Une fois que tous les ordinateurs ont été traitées, le fichier temporaire est comparé à la liste des ordinateurs à partir du domaine, pour créer une nouvelle liste d'ordinateurs qui n'ont pas encore été mises à jour. Ce système de fichiers par lots peut être exécuté plusieurs fois pour cible uniquement les ordinateurs fixes doivent être traités. Copiez les Netdom.exe, ADDUSERS.EXE et REG.EXE, à partir du Kit de ressources Windows NT 4.0, dans le dossier dans lequel les scripts sont.

Pour créer ces fichiers de commandes, effectuez les opérations suivantes :

  1. Créer les fichiers de commandes suivantes à partir de la liste ci-dessous :
    INSUSER.BAT, SUB1.BAT, SUB2.BAT, SUB3.BAT, SUB4.BAT,
    SUB5.BAT et ADDUSERS.DAT.
  2. Modifiez la première ligne de INSUSER.BAT pour refléter le nom de domaine où se trouvent les ordinateurs cibles.
  3. Remplacez le <domain\user> dans la deuxième ligne dans Addusers.dat pour refléter le nom de l'utilisateur à ajouter chaque groupe d'administrateurs local. Assurez-vous qu'il y a une ligne vierge en haut du fichier Addusers.dat.
  4. Ouvrez une session sur le réseau en tant qu'administrateur de domaine pour le domaine que vous souhaitez modifier. Assurez-vous que le Kit de ressources Windows NT 4.0 a été installé et est accessible via le chemin d'accès système. Le système utilise Netdom.exe et Addusers.exe du kit de ressources.
  5. Exécutez le INSUSER.BAT. Ce fichier de commandes peut prendre plusieurs heures pour terminer.
  6. Examinez le contenu de Complete.txt et Working.txt. Complete.txt fichier contient les noms des ordinateurs qui ont été mis à jour, le fichier Working.txt contient les noms des ordinateurs que n'avez pas encore de traitement.
Répétez les étapes 5 & 6 autant de fois que nécessaire.

Si vous devez recommencer l'intégralité du processus à partir de zéro, supprimez tous les fichiers .txt, puis démarrer à l'étape 1.

Nom de fichier : 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
				

Nom de fichier : SUB1.BAT
rem *** Remove formatting from Netdom output ***
echo %1 >> temp.txt
				

Nom de fichier : 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
				

Nom du fichier : 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
				
Filename : 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
				

Nom de fichier : 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
				

Nom de fichier : ADDUSERS.DAT
[Local]
Administrators,Members can fully administer the computer,<domain\user>,
				

En outre, vous pouvez configurer ces fichiers batch pour exécuter la commande unique sur les stations de travail ou serveurs uniquement, voir Spécification des serveurs ou stations de travail.

Spécification de serveurs ou stations de travail

En remplaçant le SUB3.BAT par le fichier de commandes suivant, REG.EXE à partir de la reskit est utilisé pour vérifier le type de produit dans le Registre (serveur, station de travail ou le contrôleur de domaine). En modifiant la commande goto dans la : serveur et : sections de la station de travail, vous pouvez contrôler si la commande est exécutée sur serveur ou des stations de travail comme suit :

GOTO Sub3bot - ce type de produit sera ignoré. GOTO AddUser - commandes dans : section addusers vont être traitée contre ce type de produit.

Actuellement, station de travail uniquement est sélectionnée. Le contenu de complete.txt peut être ignoré à l'aide de cette modification sub3.bat. Vérifiez LOCAL.LOG pour déterminer quels ordinateurs ont été mis à jour. Voici une description des fichiers journaux peuvent être générées.

LOCAL.LOG - machines qui ont été mis à jour.

WKS.TXT - machines qui ont été identifiés comme des stations de travail.

SERVER.TXT - Machines identifiés comme SERVERS.

UNDETERMINED.TXT - machines qui sont identifiées dans le Gestionnaire de serveur comme un serveur ou une station de travail mais qui n'ont pas le type de produit défini dans le Registre. Ou le Registre n'a pas pu être lue à distance.

DC.TXT - machines sont identifiées dans le Gestionnaire de serveur comme un serveur ou station de travail mais le produit type défini dans le Registre indique il s'agit d'un contrôleur de domaine. Impossible de traiter ces système.

TRAVAIL - contient une liste d'ordinateurs qui sont répertoriés dans le Gestionnaire de serveur mais n'a répondu à la commande PING. Cette liste est utilisée lors de l'exécution de fichiers de commandes une fois deuxième ou troisième.

Nom de fichier 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
				

Propriétés

Numéro d'article: 180546 - Dernière mise à jour: samedi 22 février 2014 - Version: 2.2
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Professionnel
  • Microsoft Windows NT Workstation 3.5
  • Microsoft Windows NT Workstation 3.51
  • Microsoft Windows NT Workstation 4.0 Édition Développeur
  • 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
Mots-clés : 
kbnosurvey kbarchive kbmt kbinfo KB180546 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 180546
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

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