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 :

Script Mappage par groupe


Sujet :

VBScript

  1. #1
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 42
    Par défaut Script Mappage par groupe
    Salut je m'explique je souhaite mapper des lecteurs pour les utilisateurs selon le groupe. J'ai ce bout de code mais je suis pas sure.
    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
    'On Error Resume Next
    'Déclaration des variables'
    Dim objGroupList, objADObject, strGroup, objUser
     
    Set WshShell = WScript.CreateObject("WScript.Shell")
    Set WshVarEnv = WshShell.Environment("PROCESS")
    strNetBiosDomain = WshVarEnv.Item ("USERDOMAIN")
    strLogonServer = WshShell.ExpandEnvironmentStrings("%Logonserver%")
    strUserName = WshShell.ExpandEnvironmentStrings("%USERNAME%")
     
    Set objUser = GetObject("WinNT://" & strNetBiosDomain & "/" _
      & strUserName & ",user")
     
    Dim objNetwork 
    Set objNetwork = CreateObject("Wscript.Network") 
     
    'Condition 1 : Si l'utilisateur appartient à "G_Informatique"
    If IsMember("G_Informatique") Then
    objNetwork.RemoveNetworkDrive "Z:"
    objNetwork.MapNetworkDrive "Z:" , "\\monserveur\partage"
    WshShell.run strLogonServer & "netlogon\AuditCompta.vbs"
    End If
    'Fin du script'
    WScript.quit
     
    'Les 2 Fonctions de test d'appartenance aux groupes'
    Function IsMember(strGroup)
      If IsEmpty(objGroupList) Then
        Call ReadGroups
      End If
      IsMember = objGroupList.Exists(strGroup)
    End Function
     
    Sub ReadGroups
      Dim objGroup
      Set objGroupList = CreateObject("Scripting.Dictionary")
      objGroupList.CompareMode = vbTextCompare
      For Each objGroup In objUser.Groups
        objGroupList(objGroup.name) = True
      Next
      Set objGroup = Nothing
    End Sub

  2. #2
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 42
    Par défaut
    Trouvééééé! Voilà ce script permet de mapper les lecteurs réseaux qui sont dans les OU et selon les groupes, vu que j'ai trop galéré et je ne le souhaite à personne TENEZ:

    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
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    Dim WshShell
    Dim objNet
    Dim objRootDSE
    Dim Tab
    Dim DN
    Dim i
    Dim strComputer
    DN = ""
    Set WshShell = WScript.CreateObject("WScript.Shell")
    Set objNet = WScript.CreateObject("WScript.Network")' create network object for vars
    Set objRootDSE = GetObject("LDAP://rootDSE")' bind to the rootDSE for portability
    strADsConfPath = "LDAP://" & objRootDSE.Get("configurationNamingContext")' bind to configuration to get Domain Controllers later
    strRootDSE = objRootDSE.Get("defaultNamingContext")' bind to the defaultContext for portability
    strUserName = UCase(objNet.UserName)' pull user name from environment variable
    Tab =  Split(GetDNUser(strUserName,"person"),",")
    
    Set WshNetwork = WScript.CreateObject("WScript.Network")
     
    For i=1 to UBound(Tab)
     If i = Ubound(Tab) Then
     
     DN = DN + Tab(i)
     Else
     DN = DN + Tab(i) + ","
     End If
    Next
    
    'MsgBox DN
    
    Const ADS_SCOPE_SUBTREE = 2
    Set objConnection = CreateObject("ADODB.Connection")
    Set objCommand =   CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"
    Set objCommand.ActiveConnection = objConnection
    objCommand.CommandText = "Select Name, unCName, ManagedBy from " _
        & "'LDAP://"&DN&"' where objectClass='volume'"
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 
    Set objRecordSet = objCommand.Execute
    objRecordSet.MoveFirst
    
    Dim oNet 
    Set oNet = CreateObject("Wscript.Network")
    
    Do Until objRecordSet.EOF
    
    
    
        'Wscript.Echo "Share Name: " & objRecordSet.Fields("Name").Value
        'msgbox objRecordSet.Fields("Name").Value
        'msgbox objRecordSet.Fields("uNCName").Value
        
    On Error Resume next
    oNet.RemoveNetworkDrive objRecordSet.Fields("Name").Value,True,True 
    On Error Goto 0
    
    oNet.MapNetworkDrive objRecordSet.Fields("Name").Value, objRecordSet.Fields("uNCName").Value
    
    
    
    objRecordSet.MoveNext
     
    Loop
     
    Function GetDNUser(param1,param2)
      Set objDSE = GetObject("LDAP://rootDSE")
      ON ERROR RESUME NEXT
      Set objConnection = CreateObject("ADODB.Connection")
      objConnection.Open "Provider=ADsDSOObject;"
      Set objCommand = CreateObject("ADODB.Command")
      objCommand.ActiveConnection = objConnection
      objCommand.CommandText = "SELECT distinguishedName, Sn " & "FROM 'LDAP://" & objDSE.Get("defaultNamingContext") & "' " & "WHERE objectCategory='" & param2 & "' AND sAMAccountName='" & param1 & "' " & "ORDER BY sAMAccountName"
      Set objRecordSet = objCommand.Execute
      GetDNUser = objRecordSet.Fields("distinguishedName")
      objConnection.Close
      if err.number <> 0 then
        'msgbox "ERREUR: le nom renseigné n'existe pas dans l'AD.",16,Wscript.ScriptName & " " & version
        ERR.CLEAR
        wscript.quit
      end if
    End Function
    
    set WshShell = CreateObject("WScript.Shell")
    Set WshNetwork = WScript.CreateObject("WScript.Network")
    
    
    if WshShell.ExpandEnvironmentStrings("%OS%") <> "Windows_NT" then
      WshShell.Run "COMMAND.EXE /C NET TIME \\BTW-USER1 /SET /Y >NUL:"
     
      DomainName=WshShell.RegRead("HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSNP32\NetworkProvider\AuthenticatingAgent")
      Set UserObj = GetObject("WinNT://" & DomainName & "/" & WshNetwork.username)
    
     
     'msgbox (UserObj.homeDrive)
     'msgbox (UserObj.HomeDirectory)
    
    else
    
      DomainName=WshShell.ExpandEnvironmentStrings("%USERDOMAIN%")
      Set UserObj = GetObject("WinNT://" & DomainName & "/" & WshNetwork.username)
    
    end if
    
    'wscript.echo "Bonjour "&WshNetwork.username&" connecté sur "&WshNetwork.computername
    
    
    'Init Groups
    Dim UserGroups
    Dim GroupObj
    UserGroups=""
    For Each GroupObj In UserObj.Groups
      UserGroups=UserGroups & "[" & GroupObj.Name & "]"
    Next
    
    'wscript.echo "Membre de "&UserGroups
    
    
    
    if InGroup("Nom du groupe") Then
    
    On Error Resume next
    oNet.RemoveNetworkDrive objRecordSet.Fields("Name").Value,True,True 
      WshNetwork.MapNetworkDrive "Z:","\\mon serveur\mon partage"
    On Error Goto 0
    End if
    
    if InGroup("Nom du groupe") Then
    
    On Error Resume next
    oNet.RemoveNetworkDrive objRecordSet.Fields("Name").Value,True,True 
    WshNetwork.MapNetworkDrive "K:","\\mon serveur\mon partage"
    On Error Goto 0
    End If
    
    if InGroup("Nom du groupe") Then
    
    On Error Resume next
    oNet.RemoveNetworkDrive objRecordSet.Fields("Name").Value,True,True 
    WshNetwork.MapNetworkDrive "P:","\\mon serveur\mon partage"
    On Error Goto 0
    End If
    
    if InGroup("Nom du groupe") Then
    
    On Error Resume next
    oNet.RemoveNetworkDrive objRecordSet.Fields("Name").Value,True,True 
    WshNetwork.MapNetworkDrive "V:","\\mon serveur\mon partage"
    On Error Goto 0
    End if
    
    if InGroup("Nom du groupe") Then
    
    On Error Resume next
    oNet.RemoveNetworkDrive objRecordSet.Fields("Name").Value,True,True 
    WshNetwork.MapNetworkDrive "V:","\\mon serveur\mon partage"
    On Error Goto 0
    End if
    
    
    
    '
    Function InGroup(strGroup)
     InGroup=False
     If InStr(UserGroups,"[" & strGroup & "]") Then
       InGroup=True
     End If
    End Function
    
    'MsgBox "Mappage effectué"



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

Discussions similaires

  1. Plusieurs scripts pour différents groups par GPO
    Par spike93 dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 02/03/2010, 10h02
  2. Réponses: 4
    Dernier message: 19/01/2006, 14h34
  3. Réponses: 7
    Dernier message: 23/09/2005, 20h58
  4. Trier les fichiers par type et les afficher par groupe ...
    Par KneXtasY dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 18/09/2005, 18h50
  5. concaténer par GROUP BY des champs text/varchar
    Par Fredobdx dans le forum Requêtes
    Réponses: 1
    Dernier message: 12/07/2005, 13h44

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