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 :

"Rafraichir" (flusher) une variable d'environnement.


Sujet :

VBScript

  1. #1
    Membre averti
    Inscrit en
    Décembre 2010
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 30
    Par défaut "Rafraichir" (flusher) une variable d'environnement.
    Bonjour à tous,

    Je vous expose ma situation : je suis en train de développer un script de connexion en VBS pour des postes en XP et prochainement en 7.

    J'aimerai que ce script crée une variable d'environnement utilisateur contenant le matricule de l'employé, ceci afin que l'application de gestion de parc puisse utiliser cette valeur et générer la facturation.

    Concrètement, mon script génère bien la variable, elle est visible dans les propriétés avancées du poste de travail, si je demande au script de l'afficher il n'y a aucun problème, mais si je lance un "set" dans la console windows : la variable n'apparait pas.

    Après quelques recherches (merci Google), il semblerait que pour pouvoir être exploitable, cette variable doit être "rafraichie" (faute de meilleur terme) en mémoire, ce qui se traduit par l'envoi via l'API Windows d'un message "WM_SETTINGCHANGE".

    Ma question est donc : comment envoyer un tel message en VBS, voire plus largement comment utiliser l'API Windows en VBS ?

    Bien entendu, je peux être dans l'erreur, et s'il existe un autre moyen de flusher cette variable en VBS pour qu'elle soit exploitable en dehors du script, je suis prenneur

    Merci d'avance pour votre aide !

  2. #2
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut
    bonjour,
    comment envoyer un tel message en VBS, voire plus largement comment utiliser l'API Windows en VBS ?
    http://contrib-vb.developpez.com/ome...namicWrapperX/
    et s'il existe un autre moyen de flusher cette variable en VBS pour qu'elle soit exploitable en dehors du script
    http://blogs.technet.com/b/heyscript...-a-script.aspx
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  3. #3
    Membre averti
    Inscrit en
    Décembre 2010
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 30
    Par défaut
    Cette première solution semble intéressante, mais en pratique, ca veut dire que je dois déployer le composant sur l'ensemble du parc (et à 5000+ machines je suis que moyennement enthousiaste ...)

    Je ne l'ai donc pas encore testé, mais je vais m'y mettre ...

    Méthode qui semblait bien plus intéressante à première vue (pas de composant externe à ajouter) mais qui à le défaut de ne pas fonctionner non plus ...
    La valeur de la variable est bien mise à jour en mémoire, et quand je vérifie sa valeur dans les propriétés avancées elle est correctes, mais un "echo %MaVariable%" en ligne de commande me renvoie toujours la valeur antérieure (voire "%MaVariable%" si celle-ci n'existait pas auparavant).
    Pour qu'elle soit mise à jour lors de ce genre d'appel, il faut redémarrer la session, ce qui enlève tout l'intérêt d'un script de connexion ...

    A noter que mes tests ont été infructueux sur 7 et XP.

    Je vais tout de même tester Dynawrap, mais je commence lentement à désespérer ...

  4. #4
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut
    mais en pratique, ca veut dire que je dois déployer le composant sur l'ensemble du parc
    meuh non
    http://omen999.developpez.com/tutoriels/vbs/deployBin/
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 2
    Par défaut
    Citation Envoyé par Valockar Voir le message
    J'aimerai que ce script crée une variable d'environnement utilisateur contenant le matricule de l'employé
    Bonsoir Valockar,

    Question peut-être"bête", pour quoi n'utilises-tu pas la variable existante %UserName% qui est liée à l'utilisateur loggué ?

    Cordialement,
    François.

  6. #6
    Membre averti
    Inscrit en
    Décembre 2010
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 30
    Par défaut
    Citation Envoyé par casius1206 Voir le message
    Bonsoir Valockar,

    Question peut-être"bête", pour quoi n'utilises-tu pas la variable existante %UserName% qui est liée à l'utilisateur loggué ?

    Cordialement,
    François.
    Bonjour,

    Un mois sans nouvelles, mais les CP, soldes de RTT et fêtes de fin d'année ont fait que j'avais laissé ce problème de côté ^^

    Pour vous répondre, je n'utilise pas %UserName% car ce n'est tout simplement pas la valeur qui m'intéresse ...
    Celle-ci contient le login NT, or notre parc contient des logins génériques qu'il ne faut pas recenser, d'où l'idée de passer par le matricule employé dans une variable d'environnement utilisateur.

    Ceci dit, j'ai résolu ma problèmatique en contournant la difficulté : plutôt que de remonter la valeur de la variable, je remonte la valeur de la clé de registre ...

    Ces valeurs auraient dû être identique selon moi, mais ca n'était pas le cas...
    Bref ... j'ai paramétré l'appli de gestion de parc pour lire la valeur de la clé HKCU\Environment\$NomVariable, et le tour est joué !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. NASM Tester une variable d'environnement à la "compilat
    Par Pierre Maurette dans le forum Assembleur
    Réponses: 1
    Dernier message: 10/06/2005, 13h27
  2. [BES] Création d'une variable d'environnement
    Par NGI80 dans le forum Autres
    Réponses: 2
    Dernier message: 17/10/2002, 07h31

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