IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

[WinXP] Script pour le registre : créer une clé / valeur DANS TOUS LES USERS


Sujet :

VBScript

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Points : 3
    Points
    3
    Par défaut [WinXP] Script pour le registre : créer une clé / valeur DANS TOUS LES USERS
    Bonjour,

    Je rencontre un dysfonctionnement entre deux produits adobe, la solution consiste à désactiver l’option VIEWPDFFILE du PDFMaker de Elements 6.0

    Je peux le faire avec cette clé mais bien sur ça n’agit que sur le current_user ! Et impossible d’appliquer le paramètre sur tous les users, que ce soit avec un parametre dans C:\Documents and Settings\Default User ou bien dans le registre avec HKEY_USERS\.DEFAULT


    [HKEY_CURRENT_USER\Software\Adobe\Acrobat\PDFMaker\6.0\Global\Settings]
    "ViewPDFFile"=hex:00


    Il m’est donc venu l’idée d’un script vb qui écrirait une clé dans le registre dans tous les users.

    Mais le gros problème c’est que je n’ai pas suffisamment de compétences en vb. Je suis incapable, pour le moment, d’écrire ce script, même en s’aidant de google et des bouquins ça reste hard, je n’ai pas beaucoup de temps devant moi pour corriger le problème.

    Y aurait il un expert qui pourrait me fournir un script permettant d’appliquer une valeur aux clés de tous les utilisateurs dans le registre ?

    Si vous avez de bonnes ref de bouqins ou liens sur le sujet… c'est avec plaisir

    Merci par avance pour vos réponses.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Points : 1 111
    Points
    1 111
    Par défaut
    Salut,

    voila un script d'exemple pour ecrire dans le registre, a toi de l'adapter a tes besoins :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    const HKEY_LOCAL_MACHINE = &H80000002
    Const HKEY_CURRENT_USER = &H80000001
    strComputer = "."
     
     
    Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_ 
    strComputer & "\root\default:StdRegProv")
     
    strKeyPath = "SOFTWARE\System Admin Scripting Guide"
    strValueName = "String Value Name"
    strValue = "string value"
    oReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
     
    strValueName = "DWORD Value Name"
    dwValue = 82
    oReg.SetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,dwValue
    Je peux essayer de te faire le script si tu me donnes le type de clef de registre ( string, dword?).

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Merci beaucoup Flamby38, ça fait super plaisir de se connecter sur le forum et de voir ta réponse.

    Je vais essayer de comprendre le principe et mettre ça en place dans l'après midi et te tiendrai au courant. Je ne te le cache, si tu veux essayer d'adapter le script avec cette clé... je suis preneur parce que là à froid je ne vois pas ou specifier le type de clé.

    Pour l'instant le seul paramètre que je dois forcer tiens dans cette clé de type REG_BINARY et qui a pour valeur 00

    [HKEY_CURRENT_USER\Software\Adobe\Acrobat\PDFMaker\6.0\Global\Settings]
    "ViewPDFFile"=hex:00

    encore merci pour ton aide très très très précieuse

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Points : 1 111
    Points
    1 111
    Par défaut
    Salut,

    voila a quoi ca devrait ressembler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    const HKEY_LOCAL_MACHINE = &H80000002
    Const HKEY_CURRENT_USER = &H80000001
    strComputer = "."
     
     
    Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_ 
    strComputer & "\root\default:StdRegProv")
     
    strKeyPath = "Software\Adobe\Acrobat\PDFMaker\6.0\Global\Settings"
    strValueName = "ViewPDFFile"
    BinaryValue = array (&H00)
    oReg.SetBinaryValue HKEY_CURRENT_USER,strKeyPath,strValueName,BinaryValue
    Je pense que ca devrait fonctionner correctement, si jamais par malheur tu ne t'en sortais pas, il reste une solution alternative peut etre plus simple a mettre en oeuvre :
    exporter ta clef dans un fichier .REG.

    Ensuite, tu peux mettre ton fichier reg en tant que script, ca marche MAIS les utilisateurs auront une boite de dialogue ou il faut cliquer OK.

    Pour eviter ca on peut lancer le .reg via vbs, si tu as besoin j'irais chercher dans mes archives je dois avoir un exmple.

    bonne chance

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040

  6. #6
    Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Merci bbil, je vais lire tout ca pour une première approche de la chose.

    Merci Flamby38, ca fonctionne tres bien ! Mais seulement qu'a moitié par rapoort au besoin initial. Je n'avais peut être pas suffisamment détaillé.

    Ce script que tu me propose serait plutôt a utiliser en ouverture de session, hors j'ais besoin d'agir sur tous les users en une seule opération (à la fin de l'installation du Reader 8.1) donc je m'étais imaginé un script qui ferait dans un premier temps un "list" (requete WMI ?) de tous les users existants, puis appliquer ce paramètre avec un "RegWrite" par l'intermédiaire d'une boucle "foreach" (ou quelque chose de semblable)

    Je sais pas si vous comprenez mon idée ?
    Est ce que cela vous semble cohérent ?

    (je continue à lire tutos et autres articles de mon coté....)

  7. #7
    Membre averti
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 341
    Points
    341
    Par défaut
    Salut,

    si j'ai bien compris tu souhaites enumérer tous les users référencés dans la branche Users du registre, plutot que d'attaquer Current User qui ne te prends que l'utilisateur en cours.
    Pour y arriver, tu peux faire comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    const HKEY_USERS = &H80000003
    strComputer = "."
     
    Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" _ 
       & strComputer & "\root\default:StdRegProv")
     
    strKeyPath = ""
    objReg.EnumKey HKEY_USERS, strKeyPath, arrSubKeys
     
    For Each subkey In arrSubKeys
         wscript.echo "SID : " & subkey
    Next
    A++

  8. #8
    Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup RadPAT !!!

    Est ce que je peux abuser de ton aide et de tes competences ?

    J'ai regardé ton script et celui de Flamby38 et fais des essais mais je ne vois pas comment/ou ajouter ma clé et sa valeur. à savoir:

    [HKEY_CURRENT_USER\Software\Adobe\Acrobat\PDFMaker\6.0\Global\Settings]
    "ViewPDFFile"=hex:00

    Est ce que tu pourrais l'integrer ?

    J'ai commencé à lire des tutos sur vbs, whs et wmi, j'aimerais pouvoir m'en sortir tout seul mais ca prend un certain temps... alors je me permets de te demander...

  9. #9
    Membre averti
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 341
    Points
    341
    Par défaut
    Si je reprends le code de flamby38, ca donnerait qquechose comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    const HKEY_USERS = &H80000003
    strComputer = "."
     
    Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" _ 
       & strComputer & "\root\default:StdRegProv")
     
    strKeyPath = ""
    objReg.EnumKey HKEY_USERS, strKeyPath, arrSubKeys
     
    strKeyPath = "Software\Adobe\Acrobat\PDFMaker\6.0\Global\Settings"
    strValueName = "ViewPDFFile"
    BinaryValue = array (&H00)
     
    For Each subkey In arrSubKeys
         oReg.SetBinaryValue HKEY_USERS,subkey & "\" & strKeyPath,strValueName,BinaryValue
    Next
    à tester...

    A++

  10. #10
    Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Merci RadPAT !

    J'ai testé, il faisait une erreur en ligne 16 car il y avait oReg au lieu de objReg !
    J'ai corrigé est le script s'exécute bien !

    Mais la clé ne s'applique pas pour tous les users deja créés, je ne sais pas de quoi ca vient, je vais regarder a droite a gauche pour en savoir un peu plus sur les requêtes wmi, le résultat ne comporte peut etre que certain type de compte, power users, admin ... c'est peut etre la qu'est le probleme...

    Si vous avez une piste, elle est bienvenue.

    Merci encore pour votre aide !!!!!

  11. #11
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Alors le script proposé va voir dans HkeyUser dans la BDR, et récupère le nom des sous dossiers.
    Puis pour chacun d'eux le script va positionner ta clé dans Software\Adobe\Acrobat\PDFMaker\6.0\Global\Settings.
    Donc si cela ne suffit pas cela veut dire qu'il faut aussi mettre la clé ailleurs.
    Donc ce n'est pas en cherchant dans le fonctionnement de WMI que tu auras la solution (tu auras juste plus de connaissance ce qui est bien ) mais en cherchant sur le net où est ce qu'il faut mettre la clé pour les autres users.

    Dans la boucle affiche un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wscript.echo HKEY_USERS,subkey & "\" & strKeyPath
    cela te lancera une fenetre te spécifiant où la clé sera ecrite. tu pourras ainsi vérifier que cela le fait bien pour tous les sous répertoires.

  12. #12
    Membre averti
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 341
    Points
    341
    Par défaut
    En fait j'ai un doute sur le script de Flamby38 que j'ai repris sans trop chercher :


    A la reflexion, ce ne serait pas un Dword plutot ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objRegistry.SetDWORDValue
    A++

  13. #13
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Pas sur c'est une clé REG_BINARY qu'il faut mettre donc le SetBinaryValue semble adapter.

  14. #14
    Membre averti
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 341
    Points
    341
    Par défaut
    sauf que pour moi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BinaryValue = array (&H00)
    , c'est de l'hexa.
    Et puis une autre question, pourquoi faire un array avec une seule valeur. Du coup, logiquement dans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oReg.SetBinaryValue HKEY_USERS,subkey & "\" & strKeyPath,strValueName,BinaryValue
    BinaryValue devrait faire reference à l'array, donc J'avoue avoir un peu de mal à comprendre....

    A++

  15. #15
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Tes dernières remarques sont très juste, d'ailleurs on peut relire un peu plus haut ceci :
    "ViewPDFFile"=hex:00
    et dans le premier script ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    strValueName = "DWORD Value Name"
    dwValue = 82
    En fait il y a eu changement de méthode utilisé car pierre1024 à signalé que c'était du Reg_Bynary alors que cela n'en n'est pas.

    Pour le tableau je me demande si c pas à cause du fait que c'est un binary.
    Je crois me souvenir une fois lorsque j'avais crée une clé qui est une de type liste j'avais du je crois passé en paramètre une liste ou un tableau et pas une valeur.

  16. #16
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut vbs pour ajout DWORD MTU
    à l'aide......................


    Bonjour,
    je me permet de vous contacter car je vois que vous êtes très compètent dans les scripts.
    En fait, pour faire simple, je cherche à créer un .vbs me permettant d'ajouter une clé de registre de type (DWORD) avec une valeur de 1000 en décimale et nommé (MTU)

    Le chemin dans la base de registre est le suivant : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\

    Le soucis est que je ne sais pas comment ajouter cette clé dans tous les sous-dossier car le nom de l'interface (ex: 81FCC140-CAC6-407E.........) change sur chaque poste!
    comment donc ajouter la clé dans tous les sous-dossier pour être certain que la clé est au moins dans le bonne interface pour pouvoir appliquer ce même script sur toutes la machines de mon parc?

    Merci par avance,


    Romain







    Citation Envoyé par Flamby38 Voir le message
    Salut,

    voila un script d'exemple pour ecrire dans le registre, a toi de l'adapter a tes besoins :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    const HKEY_LOCAL_MACHINE = &H80000002
    Const HKEY_CURRENT_USER = &H80000001
    strComputer = "."
     
     
    Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_ 
    strComputer & "\root\default:StdRegProv")
     
    strKeyPath = "SOFTWARE\System Admin Scripting Guide"
    strValueName = "String Value Name"
    strValue = "string value"
    oReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
     
    strValueName = "DWORD Value Name"
    dwValue = 82
    oReg.SetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,dwValue
    Je peux essayer de te faire le script si tu me donnes le type de clef de registre ( string, dword?).

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/06/2008, 11h49
  2. Réponses: 0
    Dernier message: 17/06/2008, 11h10
  3. quel script pour dire de charger une autre version du site si IE6
    Par Anonyme1 dans le forum Webdesign & Ergonomie
    Réponses: 8
    Dernier message: 12/12/2007, 17h25
  4. Tutoriels pour apprendre a créer une application eclipse
    Par NiHiL dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 21/12/2006, 22h53
  5. Pour qu'un logiciel ne soit utiliser dans tous les sessions
    Par mouloudéen dans le forum Autres Logiciels
    Réponses: 10
    Dernier message: 14/12/2005, 19h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo