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 :

Problème de reconnexion


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 14
    Par défaut Problème de reconnexion
    Bonjour j'ai un script si dessous qui fonctionne bien lors de la premiere utilisation. Mais si je supprimes lecteurs réseau manuellement et que je relance le script, ce dernier ne les remontes pas, vous savez d'ou pourrait provenir l'erreur ?

    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
    'Déclaration, obligatoire
    	Dim wshNetwork 
     
    'Instanciation de la classe "NETWORK"
    	Set WshNetwork = WScript.CreateObject("WScript.Network" ) 
     
    'Déclaration des constantes de groupe, elles doivent contenir le nom exact des groupes d'utilisateur AD
    	CONST DIRECTION_GROUP = "cn=Direction" 
    	CONST COMPTA_GROUP = "cn=Compta"
    	CONST GENERAL_GROUP = "cn=General" 
    	'Liste des lecteurs réseau à déconnecter, afin de ne pas déconnecter de lecteurs supplémentaires
    	CONST NETWORK_DRIVE_REMOVE = "T: N: U: P:"
     
    'Ouverture de la classe Active Directory System Info afin de récupérer les infos de l'utilisateur connecté
    	Set ADSysInfo = CreateObject("ADSystemInfo" ) 
     
    	'Affichage du contenu UserName (on peux supprimer), on peux remarquer qu'il contiens toute une chaine de connexion
    	WScript.Echo "ADSysInfo.UserName renvoie toute une chaine de connexion :" & vbcrlf  & vbcrlf & ADSysInfo.UserName
    	WScript.Echo "WshNetwork.UserName renvoie uniquement le nom d'utilisateur :" & vbcrlf  & vbcrlf &  WshNetwork.UserName
     
    	'Connexion à l'utilisateur ---CONNECTé--- via le LDAP (Annuaire)
    	Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName)
     
    	'Récupération de la liste des groupes ("MemberOf" = "Membre de") de l'utilisateur
    	strGroups = LCase(Join(CurrentUser.MemberOf)) 
     
    	'Affichage des groupes de l'utilisateur  (on peux supprimer)
    	WScript.Echo "Contenu de la variable strGroups, censée contenir la liste des groupes de l'utilisateur :" & vbcrlf  & vbcrlf & strGroups
     
    	'On récupère la liste des Lecteurs Réseau connectés
    	set strNetDrives=WshNetwork.EnumNetworkDrives
     
    	'Passage en revue des lecteurs réseaux, afin d'éviter une erreur si le lecteur n'à jamais été connecté. (le voila le FOR héhé! )
    	For i = 0 to strNetDrives.Count - 1 Step 2
     
    		'On affiche la première ligne (Lettre lecteur) et la seconde ligne (nom de partage), d'ou un STEP 2, afin de faire 2 lignes par 2 lignes
    		'Pareil on peux virer la ligne
    		WScript.Echo "Lettre : " & strNetDrives.Item(i) & vbcrlf & "Partage : " & strNetDrives.Item(i+1)
     
     
    		'On supprime le lecteur réseau uniquement si on le trouve dans la chaine NETWORK_DRIVE_REMOVE (et de 1 IF)
    		If InStr(strNetDrives.Item(i),NETWORK_DRIVE_REMOVE) then
    			'On affiche la lettre du lecteur qu'on supprime.... pareil on peux virer la ligne après :p
    			WScript.Echo "Suppression du lecteur : " & strNetDrives.Item(i)
    			'On supprime le lecteur réseau
    			WshNetwork.RemoveNetworkDrive strNetDrives.Item(i)
    		End If
    	Next
     
    'Si DansLaChaine StrGroups on trouve la valeur DIRECTION ou COMPTA ou GENERAL alors on agit! et de 1 IF ELSEIF!
    If InStr (strGroups, DIRECTION_GROUP) Then 
    	WScript.Echo "DIRECTION"
    	WshNetwork.MapNetworkDrive "T:", "\\SRV-PERSO\Commun" 
    	WshNetwork.MapNetworkDrive "N:", "\\SRV-PERSO\Compta" 
    	WshNetwork.MapNetworkDrive "U:", "\\SRV-PERSO\Direction" 
    	WshNetwork.MapNetworkDrive "P:", "\\SRV-PERSO\USERS$\%Username%" 
    elseif InStr (strGroups, COMPTA_GROUP) Then 
    	WScript.Echo "COMPTA"
    	WshNetwork.MapNetworkDrive "T:", "\\SRV-PERSo\Commun" 
    	WshNetwork.MapNetworkDrive "N:", "\\SRV-PERSO\Compta" 
    	WshNetwork.MapNetworkDrive "P:", "\\SRV-PERSO\USERS$\%Username%" 
    elseif InStr (strGroups, GENERAL_GROUP) Then 
    	WScript.Echo "GENERAL"
    	WshNetwork.MapNetworkDrive "T:", "\\SRV-PERSo\Commun" 
    	WshNetwork.MapNetworkDrive "P:", "\\SRV-PERSO\USERS$\%Username%" 
    End If
     
    'Toujours finir le script par un Quit, sinon il reste en mémoire!
    WScript.quit

    Cordialement,

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Par défaut
    A premiere vue je ne vois pas pourquoi, en revanche peut etre qu'il y a un contournement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WshNetwork.MapNetworkDrive "T:", "\\SRV-PERSo\Commun", true
    En rajoutant le true tu enregistres le lecteur réseau dans le profil, avec un peu de chance si tu le supprimes manuellement il reviendra au prochain logon.

    Sinon, y'a t'il un message d'erreur lors de l'execution du script, ou est ce qu'il fait juste rien?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 14
    Par défaut
    Non aucun message, je teste ta solution ce soir je vous tiens au courant.
    En tout cas merci de ta réponse.

    Bonne journée

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 14
    Par défaut
    Bon c'est la cata !!!!
    Mon script s'exécute, aucun message d'erreur mais aucun lecteur réseau n'est mappé, seulement l'imprimante est mappé.

    Je précise je n'ai pas fait la modification avec le true, mais avant sa fonctionné trés bien !!!

    Je suis sous sbs2003 avec les users reliés au domaine.

    Lorsque mon script s'exécute j'ai l'impression qu'il n'agit pas entierement, je m'explique :

    La dernière fenêtre que je vois est :


    'Affichage des groupes de l'utilisateur (on peux supprimer)
    WScript.Echo "Contenu de la variable strGroups, censÈe contenir la liste des groupes de l'utilisateur :" & vbcrlf & vbcrlf & strGroups


    Il ne se passe plus rien après !!!

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 14
    Par défaut
    Personne pour m'aider sa devient assez urgent je peux répondre à toutes les questions que vous voulez !

  6. #6
    Membre chevronné Avatar de pitchalov
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 340
    Par défaut
    Bonjour,

    Le code a l'air correct.
    Assure-toi que la casse des groupes correspond bien à celle placée dans tes constantes, car sinon ton Instr tel qu'il est appelé ne fera pas la correspondance.

    Ou alors essaie dans l'appel de tes Instr :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If InStr (UCase(strGroups), UCase(DIRECTION_GROUP)) Then
    Sinon faut débugger, afficher toutes les étapes de ton script, les résultats de tes tests, etc, pour trouver l'endroit où ça coince.
    Bon courage

Discussions similaires

  1. Problème de reconnexion à OEM
    Par Rim'c dans le forum Solaris
    Réponses: 2
    Dernier message: 15/01/2013, 10h36
  2. Problème de reconnexion à entreprise manager
    Par Rim'c dans le forum Installation
    Réponses: 0
    Dernier message: 03/01/2013, 17h50
  3. Problème de reconnexion à sql server
    Par SonnyFab dans le forum ASP.NET
    Réponses: 7
    Dernier message: 13/07/2010, 16h36
  4. [Integration] Problème de reconnexion au Ldap
    Par pjv dans le forum Spring
    Réponses: 1
    Dernier message: 26/10/2009, 11h03
  5. Réponses: 10
    Dernier message: 02/03/2007, 09h35

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