Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[Résolu]Modif Registre
Auteur Message
Répondre en citant
Message [Résolu]Modif Registre 
Dans le but d'optimiser mon trafic réseau, je souhaite supprimer un maximum de collisions. Il me faut donc paramétrer mes switchs et cartes réseau en mode FullDuplex.
Ce serait très simple si l'ensemble des postes informatique (environ 400) avaient leur carte configurée en automatique, mais malheureusement ce n'est pas le cas. Je souhaite donc "forcer" le mode FullDuplex 100Mb sur l'ensemble du parc informatique.
J'ai donc pensé à la réalisation d'un script (chose dont je ne m'occupe pas vraiment d'habitude, donc aucune connaissance).
Après avoir cherché avec mon ami Google pendant plusieurs heures (jours? :p) j'en suis arrivé à un truc du genre :

Code:
@echo off

:: Carte Broadcom
for /L %i in (0000,0001,0020) do

   if exist reg HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002be10318}\%i% /v RequestedMediaType

      reg add HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002be10318}\%i% /v RequestedMediaType /t REG_SZ /d 6 /f
      pause

:: Carte Intel
for /L %i in (0000,0001,0020) do

   if exist reg HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002be10318}\%i% /v SpeedDuplex

      reg add HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002be10318}\%i% /v SpeedDuplex /t REG_SZ /d 4 /f
      pause

pause



Pour un pro ça doit piquer les yeux, mais ça représente ce que je cherche à faire (tentative de traduction algorithmique en Batch).

J'ai donc une valeur à modifier, dans le registre, qui correspond au mode de la carte réseau.

Je connais le chemin où se trouve les cartes réseau : HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002be10318}\
Ce chemin contient des numéros, il me faut donc parcourir l'ensemble des numéro (0000, 0001, 0002...etc) afin de trouver la valeur recherchée.
Bien entendu, pour compliquer encore les choses, les postes sont équipés de carte Broadcom ou Intel... le nom de la valeur à trouver varie donc en fonction de la marque (cf commentaire du code).

Il me faudrait donc une boucle pour rechercher le nom de la valeur correspondante au mode de la carte réseau en tenant compte de la marque, lorsque le script trouve la valeur il la change (RequestedMediaType = 6 pour Broadcom et SpeedDuplex = 4 pour Intel).

Je sais pas si j'ai été suffisamment clair et précis et si ce que je cherche à faire est faisable :s

Merci d'avance.



Dernière édition par Eararena le Jeu 18 Mar 2010 - 16:02; édité 1 fois
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Résolu]Modif Registre 
Salut,

Wow, m'étonne que ca fonctionne sur beaucoups de postes ça,
Vu le nombres de cartes reseaux differentes dans un parc et les differents OS....

Tu as un Serveur, du style Windows Serveur sur ton site ???
Tu as des options sympatiques pour gérer ce genre de scripts !!

@++




______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [Résolu]Modif Registre 
Citation:
Wow, m'étonne que ca fonctionne sur beaucoups de postes ça,
Vu le nombres de cartes reseaux differentes dans un parc et les differents OS....

Non non, les postes que je cherche à modifier sont sur XP (pas de Linux ni de Mac) avec uniquement des cartes Broadcom ou Intel. Donc si ça fonctionne pour un poste ça fonctionne pour tous Wink

Citation:
Tu as un Serveur, du style Windows Serveur sur ton site ???

Bien sûr que j'ai un serveur pour gérer ça, Windows 2003. Je vois pas comment déployer un script sur plusieurs postes sans serveur Wink



Répondre en citant
Message [Résolu]Modif Registre 
Lol, oki ^^, désolé je n'avais pas bien lu !

Donc oui, avec que 2 cas possibles, ça va être faisable ....
Je regarde ca dès que possible, si personne n'a posté d'ici, je devrais avoir le temps de te faire ca lundi.
Navré pour le timing mais ma femme me "DEL %MOI%" si je passe trop de temps sur le PC !




______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [Résolu]Modif Registre 
Bonjour
est ce que cette clé existe deja avant la création du reg add ?

si oui peux tu exporter un exemple d'une clé entierement, ça nous aiderait.


HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002be10318}




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message [Résolu]Modif Registre 
Citation:
Navré pour le timing mais ma femme me "DEL %MOI%" si je passe trop de temps sur le PC !

Pas de souci, je m'attaque à un pb qui date de plusieurs mois, je suis pas à une semaine prés Wink

Citation:
est ce que cette clé existe deja avant la création du reg add ?

La clé existe déjà puisque c'est une modification, elle comporte l'ensemble des interfaces réseau installés sur la machine. Seul le contenu et le nombre des 0000+ (on peut appeler ça une sous clé? développement de l'arborescence de la clé) changent, d'où la nécessité d'effectuer une recherche des valeurs SpeedDuplex ou RequestedMediaType (cette valeur peut se trouver dans 0000 comme dans 0001 ou 0015...).


Un exemple de clé peut donc être :

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002be10318}\0000

Dans cette exemple de clé peut, éventuellement, se trouver la valeur recherchée.



Répondre en citant
Message [Résolu]Modif Registre 
Bonsoir Eararena ^^

Voici le code qu'il te faut, @++ Mr. Green

Code:

@echo off

:: bon bah là, on déclare une variable, fastoche
set BASE_REG=HKLM\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002be10318}

:: Carte Broadcom
:: Après, on demande à la boucle d'aller lire ce qui se trouve dans cette variable
:: mais on place un délimiteur "delims=}" pour enlever la variable, on se retrouve donc avec
:: pour chaque itération de la boucle une des lectures: 0000, 0001, 0003, etc
for /f "tokens=2 delims=}" %%A in ('reg query "%BASE_REG%"') do (
   :: donc, cette boucle va rechercher si "RequestedMediaType" existe quelque part ...
   for /f "tokens=*" %%F in ('reg query "%BASE_REG%%%A" ^| Find "RequestedMediaType"') do (
      :: Et si cette clé existe, elle est modifiée avec la valeur "6"
      reg add "%BASE_REG%%%A" /v RequestedMediaType /t REG_SZ /d "6" /f
      ))

:: Carte Intel
for /f "tokens=2 delims=}" %%A in ('reg query "%BASE_REG%"') do (
   for /f "tokens=1" %%F in ('reg query "%BASE_REG%%%A" ^| Find "SpeedDuplex"') do (
      reg add "%BASE_REG%%%A" /v SpeedDuplex /t REG_SZ /d "4" /f
      ))

pause>nul




Dernière édition par stryk le Ven 19 Mar 2010 - 13:55; édité 1 fois

______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [Résolu]Modif Registre 
Les variables d'environnement ça aide bien quand même :p
Je test ça demain et je te tiens au courant, merci de la rapidité sur la proposition de solution en tout cas Wink



Répondre en citant
Message [Résolu]Modif Registre 
Je viens de tester, ça a l'air de marcher, le seul hic => il m'affiche 3x "l'opération s'est bien déroulée" alors que je n'ai que deux modifications à faire normalement Neutral

Si tu pouvais prendre 2 minutes pour m'expliquer une des deux boucles for, pour que je comprenne d'où vient cette troisième fois, merci encore Wink

Edit : C'est bon j'ai trouvé d'où venait le pb. Une carte a été changée, la clé de l'ancienne carte était donc restée dans la base de registre, tout simplement.



Répondre en citant
Message [Résolu]Modif Registre 
Salut,

Et oui, les clés ne s'effacent pas toutes seules .... Mr. Green
J'ai ajouté des commentaires vite-fait sur le code !

Donc, tu me dois un café, @++




______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [Résolu]Modif Registre 
Information sur reg add : http://technet.microsoft.com/fr-fr/library/cc742162(WS.10).aspx




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message [Résolu]Modif Registre 
Thanks a lot pour le code commenté. Ça marche impec pour le moment, j'ai fait pas mal de test pour voir si ça pouvait créer des erreurs sur certain poste, mais ça semble bon.
Pour ce qui est du café, je te propose un café virtuel mais je peux pas faire plus Laughing



Message [Résolu]Modif Registre 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch