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 :

Mapper des lecteurs réseaux en fonction des groupes


Sujet :

VBScript

  1. #1
    Futur Membre du Club
    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
    Points : 8
    Points
    8
    Par défaut Mapper des lecteurs réseaux en fonction des groupes
    Voila je sais que c'est un sujet qui revient souvent et que plusieurs solution sont données mais j'explique quand même mon problème:

    J'effectue un script wsh qui permet de mapper des lecteurs réseaux à des users en fonction de leur groupe d'appartenance.

    En algo sa donne :

    POUR chaque utilisateur du domaine alors

    IF user est membre du group direction alors
    IF user est membre du groupe Compta alors
    IF user est membre du groupe General alors
    ENDIF

    FINPOUR

    Et j'ai du mal pour ma boucle pour et les déclarations :s

    pour le moment j'ai un script de ce style la :

    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
    Dim wshNetwork
    Set WshNetwork = WScript.CreateObject("WScript.Network")
     
     
    CONST DIRECTION_GROUP = "cn=Direction"
    CONST COMPTA_GROUP = "cn=Compta"
    CONST GENERAL_GROUP = "cn=Direction"
     
    Set ADSysInfo = CreateObject("ADSystemInfo") Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName) strGroups = LCase(Join(CurrentUser.MemberOf))
     
     
     
    FOR EACH strUserName IN strUserDomain
    	On Error resume Next
     
    'Suppression des anciens lecteurs réseaux
    Set WshNetwork = WScript.CreateObject("WScript.Network")WshNetwork.RemoveNetworkDrive "T:"
    Set WshNetwork = WScript.CreateObject("WScript.Network")WshNetwork.RemoveNetworkDrive "N:"
    Set WshNetwork = WScript.CreateObject("WScript.Network")WshNetwork.RemoveNetworkDrive "U:"
    Set WshNetwork = WScript.CreateObject("WScript.Network")WshNetwork.RemoveNetworkDrive "P:"
     
     
     
    'L'objet WshNetwork est obtenu en créant une instance de l'objet COM identifié par le progID «WScript.WshNetwork« :
     
    Set NetworkDisk = WScript.CreateObject("WScript.Network" ) 
     
    If InStr (strGroups, DIRECTION_GROUP) Then 
            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 
            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
    	WshNetwork.MapNetworkDrive "T:", "\\SRV-PERSo\Commun" 
    	WshNetwork.MapNetworkDrive "P:", "\\SRV-PERSO\USERS$\%Username%"  
    END IF
    Merci de votre aide !

  2. #2
    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,

    un code directement inspiré de ce que propose microsoft

    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
     
    Dim wshNetwork, WshShell, Server1, Server2
     
    Set WshNetwork = CreateObject("Wscript.Network")
    Set WshShell = WScript.CreateObject("WScript.Shell")
     
    on error resume next
     
    Server1 = "YBNT01"
    Server2 = "YBNT07"
     
    ' **** Delete old maps ****
    Commande = "Cmd /c NET USE * /DELETE /Y"
    Go = WSHshell.Run(Commande)
    wscript.sleep 300
     
    '**** All Public ****
    WshNetwork.MapNetworkDrive "J:","\\" & Server1 & "\Temp"
    wscript.sleep 300
    WshNetwork.MapNetworkDrive "P:","\\" & Server1 & "\Public"
    wscript.sleep 300
     
    '**** CG_Planning ****
    If isMemberOf("CG_Planning") Then 
       WshNetwork.MapNetworkDrive "J:","\\" & Server1 & "\Temp"
       wscript.sleep 300
       WshNetwork.MapNetworkDrive "G:","\\" & Server2 & "\Manufacturing"
       wscript.sleep 300
    End If
     
    '**** CG_Warehouse ****
    If isMemberOf("CG_Warehouse") Then 
       WshNetwork.MapNetworkDrive "J:","\\" & Server1 & "\Temp"
       wscript.sleep 300
       WshNetwork.MapNetworkDrive "G:","\\" & Server2 & "\Manufacturing"
       wscript.sleep 300
    End If
     
    '**** Personal share ****
    WshNetwork.MapNetworkDrive "U:","\\" & Server1 & "\" & wshNetwork.UserName
    wscript.sleep 300
     
    Set WshNetwork = Nothing
    Set user = Nothing
    Set found = Nothing
    Set WshShell = Nothing
    Set Server1 = Nothing
    Set Server2 = Nothing
     
    WScript.Quit
     
    '*** Fin ****
     
    Function isMemberOf(group) 
    Dim user, found, temp 
    found = False 
     
    Set user = GetObject("WinNT://" & CreateObject("WScript.Network").UserDomain & "/" & CreateObject("WScript.Network").UserName & ",user") 
     
    For Each temp In user.Groups 
    If UCase(temp.Name) = UCase(group) Then 
       found = True 
       Exit For 
    End If 
    Next 
     
    isMemberOf = found 
    End Function 
     
    '*********************
    Tu définis tes serveurs de partage (sever1 et server2)
    La fonction isMemberOf regarde si ton utilisateur est membre du groupe, si oui la valeur found passe à vrai et on mappe le lecteur correspond.
    C'est simple et ca marche bien.

    A++
    Plus tu pédales moins vite, moins t'avances plus vite.

  3. #3
    Futur Membre du Club
    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
    Points : 8
    Points
    8
    Par défaut
    Merci pour ta réponse mais en fait je voulais vraiment utiliser mon script car c'est un projet que je dois présenter en fin d'année pour mon diplôme de BTS IG ARLE.

    Mon script est il complètement faux ou y a t il une façon de l'améliorer ou encore le plus important pourquoi il ne fonctionne pas...

    Merci de votre aide !!!

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Je suppose que ça va pas beaucoup t'aider

    mais je me permets de mettre ce que j'utilise pour mapper les disques.

    C'est loin de ce que tu fais mais on ne sais jamais ...


    NET USE M: \\SP21\Defense_M
    NET USE N: \\SP21\Defense_N

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/06/2012, 12h59
  2. [VBS] Monter / Démonter / Contrôler des lecteurs réseaux
    Par lopezmathieu dans le forum VBScript
    Réponses: 2
    Dernier message: 24/06/2011, 15h16
  3. lenteur : utilisation des lecteurs réseaux différents domaines
    Par devlopassion dans le forum Administration
    Réponses: 2
    Dernier message: 19/03/2009, 10h55
  4. script pour nettoyer des lecteurs réseaux
    Par ko0nz dans le forum VBScript
    Réponses: 1
    Dernier message: 06/02/2008, 17h13
  5. Script de connexion / Deconnexion des lecteurs réseaux
    Par f1vincent dans le forum Développement
    Réponses: 1
    Dernier message: 31/01/2007, 16h39

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