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 :

Mot de passe crypté et expension retardée [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Bragu Demon
    Homme Profil pro
    Intégrateur d'Explopitation
    Inscrit en
    Juin 2013
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Intégrateur d'Explopitation
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2013
    Messages : 125
    Par défaut Mot de passe crypté et expension retardée
    Bonjour ce message est un doublon de celui-ci : (vu que je pense qu'il est mieux ici).

    J'utilise un script BATCH DOS afin de monter un lecteur réseau.
    J'utilise un bout de code pour masquer la saisie du mot de passe.

    J'utilise également l’expansion retardée dans mon script total.
    Je bloque sur un effet indésirable : lorsque le mot de passe saisi contient un ! la connexion ne se fait pas a cause de l'expansion retardée (les ! étant utilisés pour les variables).

    J'ai pallié à ce problème en supprimant la partie saisie du nom d'utilisateur et du mot de passe, qui sont demandé lors de l'exécution du net use.
    Mais ça fait moins "propre".
    L'autre solution est de terminer par endlocal l’expansion retardée, mais cela pose problème lorsque je rappelle des variables enrichie en début de script (même en remettant le setlocal enabledelayedexpansion)

    Je pensais à utiliser la commande set afin de remplacer les ! par un ^^! mais ça ne fonctionne pas.

    Auriez-vous une idée, éventuellement sur une autre méthode pour masquer la saisie de l'utilisateur ?


    Voici la partie authentification :

    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
    @ECHO OFF
    CLS
    setlocal EnableDelayedExpansion
    echo.
    echo Un lecteur reseau vers le serveur va etre monte.
    echo.
    
    :: Permet de masquer la saisie du mot de passe :
    >$ echo set o=createObject("scriptpw.password"):wsh.echo o.getpassWord():^
      set a=createobject("scripting.filesystemobject"):a.deletefile("$")
      set /p etp=Utilisateur            : 
      cd|set/p"=Mot de passe           : "
    for /f "tokens=*" %%* in ('cscript -nologo -e:vbs $') do set "mdp=%%*"
    	echo.
    set /p Lettre=Lettre [Entree pour X] : 
    	echo.
    	echo Mot de passe saisi     : %mdp% 
    
    echo.
    pause
    
    IF %errorlevel%==1 set Lettre=X
    :: Teste si la lettre est déjà utilisée
    if exist %Lettre%: goto Err_Lettre
    
    :: Suppression du lecteur X: pour le remonter
    :: permet d'accéder aux fichiers de TWS Graph
    net use %Lettre%: /delete /Yes > NUL
    cls
    net use %Lettre%: \\adresse_IP_serveur\Partage /user:DOMAINE\%Etp% %mdp% /PERSISTENT:YES

  2. #2
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Salut,

    Une solution serait de confier le montage de ton lecteur réseau à ton script vbs, ça t'évitera les problèmes liés au caractère réservé et ça aura l'avantage de ne pas enregistrer et faire transiter le mot de passe entre les différents interpréteurs...

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    setlocal enabledelayedexpansion
    >e echo WScript.Quit(WScript.CreateObject("WScript.Shell").Run("cmd /c echo " ^& WScript.CreateObject("ScriptPW.Password").GetPassWord() ^& "& pause", 1, true))
    cscript //nologo //e:vbs e
    echo errorlevel=%errorlevel%
    endlocal
    pause

  3. #3
    Membre confirmé Avatar de Bragu Demon
    Homme Profil pro
    Intégrateur d'Explopitation
    Inscrit en
    Juin 2013
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Intégrateur d'Explopitation
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2013
    Messages : 125
    Par défaut
    En effet, des fois les solution les plus simples et les plus logiques sont les plus longues à trouver !

    Merci beaucoup en tout cas, c'est parfait

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

Discussions similaires

  1. petit problème de mot de passe crypté PASSWORD()
    Par bris dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 09/02/2007, 16h01
  2. MYSQL 5: sélectionner un mot de passe crypté
    Par koueletbak dans le forum Requêtes
    Réponses: 7
    Dernier message: 14/04/2006, 12h50
  3. [Stratégie] Connexion à MySQL avec mot de passe crypté
    Par Krishtov dans le forum Général Java
    Réponses: 5
    Dernier message: 08/03/2006, 17h27
  4. [Sécurité] mot de passe cryptée?
    Par kevinf dans le forum Langage
    Réponses: 8
    Dernier message: 01/11/2005, 14h02

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