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 d'application de droits Active Directory dans un script de boot


Sujet :

VBScript

  1. #1
    Membre averti
    Inscrit en
    Février 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 12
    Par défaut Problème d'application de droits Active Directory dans un script de boot
    Bonjour,

    J'utilise un code que j'ai trouvé sur le net pour mapper automatiquement des lecteurs réseau lors du boot de mes machines si l'utilisateur X appartient au compte GRPG-XX. Jusque là rien de compliqué. Là où ça se corse, c'est lorsque je descends à N+2 pour récupérer des droits sur l'AD. A ce moment, le script n'arrive plus à lire les droits et ne me mappe pas les lecteurs.

    Je vous donne un exemple :

    Dans mon AD, j'ai un groupe GRPG-TOTO qui contient un utilisateur Paul Dupont > OK, mappage immédiat.

    Si par contre j'ai un groupe GRPG-TOTO qui contient un autre groupe GRPG-TITI qui contient l'utilisateur Paul Dupont > pas de mappage !

    Ce que je voudrais simplement savoir, c'est déjà si VBScript est capable de lire à N+2 dans une AD, et si oui, comment on peut y arriver ?

    Voici le code :

    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
    'Force la déclaration des variables
    Option Explicit
    'Indique à VBScript de passer à la ligne suivante en cas d'erreur
    On Error Resume Next
    ' Déclaration des variables
    Dim groupe, util, res, chemin, dico, strmap, fso
    'Attribution d'une référence d'un objet à une variable
    Set res = CreateObject("Wscript.network")
    Set fso = CreateObject("Scripting.FileSystemObject")
     
    Function IsMember(sGroup)
    Dim sAdsPath,oUser,oGroup,g_oGroupDict,g_oNet
     
    If IsEmpty(g_oGroupDict) Then
    Set g_oGroupDict=CreateObject("Scripting.Dictionary")
    sAdsPath = res.UserDomain &"/"& res.UserName
    g_oGroupDict.CompareMode = vbTextCompare
    Set oUser = GetObject("WinNT://"& sAdsPath & ",user")
    For Each oGroup In oUser.Groups
    g_oGroupDict.Add oGroup.Name, "-"
    Next
    Set oUser = Nothing
    End If
    IsMember = CBool(g_oGroupDict.Exists(sGroup))
    End Function
     
    '*********
    'MAPPAGES
    '*********
     
     
    If IsMember("GRPG-partage1") then
    If (fso.folderexists("K:\") = False) Then
    res.MapNetworkDrive "K:", "\\mon_serveur\partage1"
    Else
    res.RemoveNetworkDrive "K:"
    res.MapNetworkDrive "K:", "\\mon_serveur\partage1"
    End If
    End if
     
    If IsMember("GRPG-partage2") then
    If (fso.folderexists("K:\") = False) Then
    res.MapNetworkDrive "K:", "\\mon_serveur\partage2"
    Else
    res.RemoveNetworkDrive "K:"
    res.MapNetworkDrive "K:", "\\mon_serveur\partage2"
    End If
    End if
     
    wscript.quit

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 340
    Par défaut
    Salut.

    Je ne pense pas qu'AD te permette de connaitre automatiquement tous les utilisateurs d'un groupe et de ses sous-groupes.

    Moi je te conseillerai de faire une fonction récursive qui parcourrait tous les sous groupes du groupe que tu donnes en paramètre.
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Fonction IsMember (groupeAD)
      Pour chaque Item dans groupeAD
      Si c'est un groupe
        IsMember (cegroupe)
      Sinon
        Check si c'est le bon user
      Fin Si
    Fin Fonction
    Plus qu'à traduire en vbs.

  3. #3
    Membre averti
    Inscrit en
    Février 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 12
    Par défaut
    Salut et merci pour ta réponse,

    Je te confirme qu'AD sait gérer des groupes imbriqués. Je m'en sers quotidiennement.

    Ce que je ne sais pas, c'est si VBScript le gère à son tour, et si oui comment on "lui dit".

    D'autre part, dans le script que j'ai posté, nulle part je ne fais mention de mon contrôleur de domaine AD. J'imagine alors que le script se base sur les infos réseau/AD du poste client connecté pour faire ses affaires...

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 340
    Par défaut
    Dac, je savais pas qu'AD gérait les groupes imbriqués. Alors je ne sais pas si VBS te le permet, je n'ai rien vu du genre, mais peut-être...

    Bref, en tout cas, les fonctions récursives te permettent d'y arriver si tu ne trouves pas d'autre solution.

    Ton script récupère automatiquement (variables locales de windows) les infos DC et user ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sAdsPath = res.UserDomain &"/"& res.UserName

  5. #5
    Membre averti
    Inscrit en
    Février 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 12
    Par défaut
    Merci pour l'info sur la ligne du script concernant les variables locales de Windows.

    Je vais donc me pencher sur les fonctions récursives pour gérer les groupes imbriqués.

    Merci

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

Discussions similaires

  1. export d'objets active directory dans Access
    Par h lekter dans le forum VBA Access
    Réponses: 1
    Dernier message: 04/05/2017, 13h33
  2. Problème intégration active directory dans netasq u30
    Par laugon dans le forum Dépannage et Assistance
    Réponses: 1
    Dernier message: 27/11/2012, 17h20
  3. utilisation identifiant active directory dans application
    Par DemoniumOrigin dans le forum Windows
    Réponses: 1
    Dernier message: 30/07/2009, 10h20
  4. Exporter mes utilisateurs Active Directory dans Access
    Par Fredo67 dans le forum VBA Access
    Réponses: 8
    Dernier message: 21/01/2008, 09h30
  5. [LDAP] problème connexion anonyme avec php à Active Directory
    Par anto48_4 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 02/03/2006, 16h50

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