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

Scripts/Batch Discussion :

Définir une variable d'environnement depuis un script


Sujet :

Scripts/Batch

  1. #1
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 295
    Points
    7 295
    Par défaut Définir une variable d'environnement depuis un script
    Bonjour

    Je suis en train de réaliser un script d'installation de poste de travail pour que tout le monde aient le même environnement de développement dans ma boite.

    Au menu, JAVA, MAVEN, ECLIPSE, ...

    Tout peut passer par de la décompression de fichier, mais ce qui m'embête, c'est que je ne sais pas définir les variables d'environnements qui vont m'être nécessaire.

    %JAVA_HOME%
    %MAVEN_HOME%
    ...

    L'idée est bien sur de ne pas demander a l'utilisateur d'aller les modifier, c'est assez compliqué pour que ca pose des problèmes.

    Est ce que vous sauriez comment les définir ?
    (variable d'environnement ou variable d'utilisateur)

    Merci
    Pierre

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Est ce que tu peux modifier la base de registres avec ton script ?

    Variables d'environnement de l'utilisateur : HKEY_CURRENT_USER\Environment

    Variables d'environnement de la machine : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

    La prise en compte de la modification de ces variables nécessite souvent le redémarrage de la machine ou de la session utilisateur
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 295
    Points
    7 295
    Par défaut
    Je pense que cela ne posera pas de problème, le script sera exécuté avec des droit administrateur.

    (de mémoire, je croyais que les var utilisateur demandait un redémarrage et les var système était appliquée de suite).

    Pour créer des clefs dans le registre depuis un script, tu sais ou je pourrais trouver de la doc ?

    Merci

    Pierre

    EDIT : En fait, le chemin sur mon poste pour les var d'env système est :
    HKEY_LOCAL_MACHINE/System/Curent_control_set/Control/SESSION MANAGER/Environnement

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par pmithrandir Voir le message
    Je pense que cela ne posera pas de problème, le script sera exécuté avec des droit administrateur.
    Cela me parait nécessaire

    Citation Envoyé par pmithrandir Voir le message
    (de mémoire, je croyais que les var utilisateur demandait un redémarrage et les var système était appliquée de suite).
    Non, les variables machine sont mises en place lors du démarrage de tous les process.
    Les variables utilisateurs sont ajoutées lors de la connexion de l'utilisateur.
    Par contre, si tu modifies une variable d'environnement, les environnement déjà existant (services, utilisateurs connectés, ...) ne sont pas modifiés. C'est pour cela qui faut se delogguer ou redémarrer la machine suivant l'impact de la variable.

    Citation Envoyé par pmithrandir Voir le message
    Pour créer des clefs dans le registre depuis un script, tu sais ou je pourrais trouver de la doc ?
    En C, oui mais je pense que cela t'aide, en script, je ne sais pas, désolé
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  5. #5
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 295
    Points
    7 295
    Par défaut
    J'ai fait un petit fichier de commande qui donne 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
    REM A mettre a jour
    REM REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PATH
    REM %%M2%%;%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin
    
    
    REM A supprimer
    REM REG DELETE /? 
    REG DELETE "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v M2 /f
    REG DELETE "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v M2_HOME /f
    REG DELETE "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v JAVA_HOME /f
    REM A Ajouter
    REM REG ADD /? 
    REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v JAVA_HOME /t REG_SZ /d C:\java\Sun\SDK\jdk
    REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v M2_HOME /t REG_SZ /d C:\java\apache-maven
    REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v M2 /t REG_EXPAND_SZ /d %%M2_HOME%%\bin
    Pour les valeurs supprimée et ajoutée, pas de problème.

    En revanche, pour le path, je ne vois pas comment détecté si java a déjà été installé sur le poste.

    Une idée ?

  6. #6
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 295
    Points
    7 295
    Par défaut
    Un copie du script finalisé
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    @echo off
    SETLOCAL
    echo "Vous devez patienter jusqu'a la fin de l'execution. Des messages d'erreurs de fichiers introuvables peuvent aparaitre quand les desinstallaleurs ne sont pas trouves.
    REM A mettre a jour
    REM Modifie le PATH pour ajouter les nouveaux chemins java.
    FOR /F "tokens=2*" %%A IN ('REG QUERY "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PATH ^| FIND "REG_SZ"') DO SET OLDPATH=%%B
    
    echo %OLDPATH% | find /I "jre"
    if errorlevel 1 goto :not-foundjre
    
    :foundjre
      ::Do found stuff
      echo "Veuillez nettoyer votre variable PATH, celle ci contient déjà une référence à jre.
      goto :endjre
    
    :not-foundjre
      ::Do not found stuff
      echo %OLDPATH% | find /I "m2"
      if errorlevel 1 goto :not-foundm2
    
      :foundm2
        ::Do found stuff
        echo "Veuillez nettoyer votre variable PATH, celle ci contient déjà une référence à m2.
        goto :endm2
    
      :not-foundm2
        ::Do not found stuff
        echo %OLDPATH% | find /I "maven"
        if errorlevel 1 goto :not-foundmaven
        :foundmaven
          ::Do found stuff
          echo "Veuillez nettoyer votre variable PATH, celle ci contient déjà une référence à maven.
          goto :endmaven
        :not-foundmaven
          ::Do not found stuff
          echo %OLDPATH% | find /I "java"
          if errorlevel 1 goto :not-foundjava
          :foundjava
            ::Do found stuff
            echo "Veuillez nettoyer votre variable PATH, celle ci contient déjà une référence à java.
            goto :endjava
          :not-foundjava
            REM decompression de java
            C:\Sun\SDK\uninstall.dos.exe -silent
            rmdir /S /Q c:\SUN\
            C:\java\Sun\SDK\uninstall.dos.exe -silent
            rmdir /S /Q c:\java\SUN\
            Java\java_ee_sdk-5_05-windows.exe -silent Java\install.txt
            REM decompression de eclipse
            rmdir /S /Q c:\java\eclipse\
            7-Zip\7z.exe x Eclipse\eclipse.7z -oc:\java\
            REM decompression de maven
            rmdir /S /Q c:\java\apache-maven\
            7-Zip\7z.exe x Maven\apache-maven-2.0.9-bin.zip -oc:\java\
            ren c:\java\apache-maven-2.0.9 apache-maven
            REM decompression de tomcat
            rmdir /S /Q c:\java\tomcat\
            rmdir /S /Q "c:\java\Tomcat 6.0\"
            rmdir /S /Q c:\java\apache-tomcat-6.0.18\
            7-Zip\7z.exe x Tomcat\apache-tomcat-6.0.18.zip -oc:\java\
            copy /Y tomcat-users.xml c:\java\apache-tomcat-6.0.18\conf\
            ::Do not found stuff
            REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PATH /t REG_EXPAND_SZ /d "%OLDPATH%;%%M2%%;%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin" /f
            REM A supprimer
            REM REG DELETE /? 
            REG DELETE "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v M2 /f
            REG DELETE "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v M2_HOME /f
            REG DELETE "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v JAVA_HOME /f
            REG DELETE "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v JAVAHOME /f
            REG DELETE "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v CLASSPATH /f
            REG DELETE "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v CLASS_PATH /f
            REM A Ajouter
            REM REG ADD /? 
            REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v JAVA_HOME /t REG_SZ /d C:\java\Sun\SDK\jdk
            REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v M2_HOME /t REG_SZ /d C:\java\apache-maven
            REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v M2 /t REG_EXPAND_SZ /d %%M2_HOME%%\bin
            REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v JavaHome /t REG_EXPAND_SZ /d %%JAVA_HOME%%\jre\bin
            
          :endjava
        :endmaven
      :endm2
    :endjre

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/09/2011, 15h22
  2. Réponses: 3
    Dernier message: 18/12/2008, 07h29
  3. Définir une variable d'environnement sous ubuntu
    Par sheura dans le forum Administration système
    Réponses: 6
    Dernier message: 24/03/2008, 10h17
  4. [WIN2003]définir une variable d'environnement dans un batch
    Par creezeer dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 28/08/2007, 11h25
  5. changer une variable d'environnement a partir d'un script
    Par doomxl dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 28/06/2007, 13h08

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