Batch Arret Sce/Copie XML/Redémarrage Sce

Fermé
Jul-ACTH Messages postés 25 Date d'inscription mardi 29 mai 2007 Statut Membre Dernière intervention 22 juillet 2008 - 22 juil. 2008 à 11:56
Cyclic-3 Messages postés 125 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 15 mai 2009 - 23 juil. 2008 à 01:58
Bonjour,

Je cherche à réaliser un script me permettant de rattacher mes clients Endpoint à un nouveau serveur.
Pour ce faire, il faut arrêter le service, remplacer un fichier xml puis redémarrer le service.

Je souhaite passer la liste des cibles à traiter dans un fichier texte. Jusque-là, j'ai pondu le code ci-dessous, mais sans succès:

SET FICHIER=%1%
FOR /F %%I IN (%FICHIER%) DO (GOTO UPDATE)

:UPDATE
SET CIBLE = %%I
sc \\%CIBLE% stop "Symantec Antivirus"
cd \\%CIBLE%\c$\Program Files\Symantec\Symantec Endpoint Protection"
copy /Y "\\w2003s\repository$\Symantec\Sylink.xml" .
sc \\%CIBLE% start "Symantec Antivirus"


Les commandes sont correctes, mais je galère avec la variable CIBLE, que j'aimerais définir pour chaque passage dans la boucle comme la ligne traitée dans le fihier texte.

Merci.

Jul
A voir également:

2 réponses

Cyclic-3 Messages postés 125 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 15 mai 2009 11
22 juil. 2008 à 12:43
Bonjour,

Dans ta boucle de FOR, mets plutôt ça:

FOR /F %%I IN (%FICHIER%) CALL UPDATE

Comme UPDATE n'est pas un autre BATCH, le DOS reconnait l'appel à une étiquette comme à un sous-programme et fait un retour à la ligne appelante jusqu'à épuisement des valeurs.

Et va voir sur ce site WWW.ASTASE.COM le tutoriel, il est très bien fait.

Suggestion: essaye de simplifier en mettant le moins de variables possible, c'est untruc à s'y perdre !

Cordialement.
0
Jul-ACTH Messages postés 25 Date d'inscription mardi 29 mai 2007 Statut Membre Dernière intervention 22 juillet 2008 3
22 juil. 2008 à 15:21
Merci Cyclic,

Ca a en effet été très efficace de remplacer le DO par un CALL, et j'ai trouvé pas mal de choses intéressantes sur ASTASE.

Je ne dois plus être bien loin du bonheur, mais j'ai un message d'erreur bizarre lors de la copie de fichiers:

SET FICHIER=%1%
FOR /F %%I IN (%FICHIER%) DO (set CIBLE=%%I
CALL :UPDATE
)

:UPDATE
sc \\%CIBLE% stop "Symantec Antivirus"
ping -n 30 127.0.0.1 >nul
copy /Y "D:\Repository$\Symantec\Sylink.xml" "\\%CIBLE%\c$\Program Files\Symantec\Symantec Endpoint Protection"
sc \\%CIBLE% start "Symantec Antivirus"



Me renvoie:

C:\>copy /Y "\\w2003S\Repository$\Symantec\Sylink.xml" "\\HE1-01 \c$\Program Files\Symantec\Symantec Endpoint Protection"
Vous n'étiez pas connecté car il y avait un nom en double sur le réseau. Allez dans Système dans le Panneau de configuration et modifiez le nom de l'ordinateur et essayez à nouveau.
0 fichier(s) copié(s).


Il a craqué, j'ai pas de nom en double. Une piste de recherche? Conflit NETBIOS/DNS?

Merci.
0
Cyclic-3 Messages postés 125 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 15 mai 2009 11
23 juil. 2008 à 01:58
Bonjour,

A mon avis, mais je peux me tromper, tu devrais essayer d'exécuter ton batch en super-administrateur, ou encore en l'exécutant comme tache programmée sous un compte système, comme par un serveur Windows2000 par exemple.

Mais bon, je ne suis plus très au courant des modes et des systèmes, avec l'age !

Cordialement.
0