Mappage réseaux sous 2003 à l aide d'une GPO

Mappage réseaux sous 2003 à l aide d'une GPO - Réseaux - Systèmes & Réseaux Pro

Marsh Posté le 07-01-2009 à 14:56:05    

Bonjour,
 
Quelle est selon vous la façon la plus simple et plus sure pour mettre en place des gpo de mappage réseau, sachant que pratiquement chaque UO à des lecteurs différents.
J'ai un serveur 2003 avec AD.
je souhaiterai utiliser les GPO pour automatiser le mappage de lecteur réseau à l'ouverture de session.
Je souhaiterai à l'aide d'une GPO faire que les utilisateurs de telles UO est accès à un certain nombre de lecteurs lorsqu ils se logent (K,L,M), et que d'autres utilisateurs d'une autres UO est accès à d'autres lecteurs lorsqu ils se logent.(L,M,O).
Je souhaiterai faire la meme chose pour les imprimantes aussi.
 
Si c'est un script je souhaiterai que ce soit un seul, générique.
 
Voici le code que j ai trouve qui devrait m'aider mais je ne m'y connais pas en vbs

Code :
  1. Dim WshShell
  2. Dim objNet
  3. Dim objRootDSE
  4. Dim Tab
  5. Dim DN
  6. Dim i
  7. Dim strComputer
  8. DN = ""
  9. Set WshShell = WScript.CreateObject("WScript.Shell" )
  10. Set objNet = WScript.CreateObject("WScript.Network" )' create network object for vars
  11. Set objRootDSE = GetObject("LDAP://rootDSE" )' bind to the rootDSE for portability
  12. strADsConfPath = "LDAP://" & objRootDSE.Get("configurationNamingContext" )' bind to configuration to get Domain Controllers later
  13. strRootDSE = objRootDSE.Get("defaultNamingContext" )' bind to the defaultContext for portability
  14. strUserName = UCase(objNet.UserName)' pull user name from environment variable
  15. Tab =  Split(GetDNUser(strUserName,"person" ),"," )
  16. For i=1 to UBound(Tab)
  17. If i = Ubound(Tab) Then
  18. DN = DN + Tab(i)
  19. Else
  20. DN = DN + Tab(i) + ","
  21. End If
  22. Next
  23. 'MsgBox DN
  24. Const ADS_SCOPE_SUBTREE = 2
  25. Set objConnection = CreateObject("ADODB.Connection" )
  26. Set objCommand =   CreateObject("ADODB.Command" )
  27. objConnection.Provider = "ADsDSOObject"
  28. objConnection.Open "Active Directory Provider"
  29. Set objCommand.ActiveConnection = objConnection
  30. objCommand.CommandText = "Select Name, unCName, ManagedBy from " _
  31.     & "'LDAP://"&DN&"' where objectClass='volume'"
  32. objCommand.Properties("Searchscope" ) = ADS_SCOPE_SUBTREE
  33. Set objRecordSet = objCommand.Execute
  34. objRecordSet.MoveFirst
  35. Do Until objRecordSet.EOF
  36.     'Wscript.Echo "Share Name: " & objRecordSet.Fields("Name" ).Value
  37.     msgbox objRecordSet.Fields("Name" ).Value
  38.     msgbox objRecordSet.Fields("uNCName" ).Value
  39. Dim oNet
  40. Set oNet = CreateObject("Wscript.Network" )
  41. oNet.MapNetworkDrive objRecordSet.Fields("Name" ).Value, objRecordSet.Fields("uNCName" ).Value
  42. objRecordSet.MoveNext
  43. Loop
  44. Function GetDNUser(param1,param2)
  45.   Set objDSE = GetObject("LDAP://rootDSE" )
  46.   ON ERROR RESUME NEXT
  47.   Set objConnection = CreateObject("ADODB.Connection" )
  48.   objConnection.Open "Provider=ADsDSOObject;"
  49.   Set objCommand = CreateObject("ADODB.Command" )
  50.   objCommand.ActiveConnection = objConnection
  51.   objCommand.CommandText = "SELECT distinguishedName, Sn " & "FROM 'LDAP://" & objDSE.Get("defaultNamingContext" ) & "' " & "WHERE objectCategory='" & param2 & "' AND sAMAccountName='" & param1 & "' " & "ORDER BY sAMAccountName"
  52.   Set objRecordSet = objCommand.Execute
  53.   GetDNUser = objRecordSet.Fields("distinguishedName" )
  54.   objConnection.Close
  55.   if err.number <> 0 then
  56.     msgbox "ERREUR: le nom renseigné n'existe pas dans l'AD.",16,Wscript.ScriptName & " " & version
  57.     ERR.CLEAR
  58.     wscript.quit
  59.   end if
  60. End Function
  61. MsgBox "Mappage effectué"


Message édité par whyata le 07-01-2009 à 15:32:22
Reply

Marsh Posté le 07-01-2009 à 14:56:05   

Reply

Marsh Posté le 08-01-2009 à 19:07:15    

Un login script avec la commande net use , ça ne correspond pas à ce que tu veux faire ?
 
net use Z: \\serveur\partage

Reply

Marsh Posté le 16-01-2009 à 10:36:16    

ben en fait je veux un seul et unique script a appliqué pour toutes mes OU et les net use qu'on utilise déjà fonctionne de manière aléatoire alors qu'avec ce script j'ai mes lecteurs mappés mais j ai déférent message d'erreur qui apparaissent à l'ouverture de session et qui me dérange  
 
( windows script host):
Script: \\chemin de mon script
Line:36
Char:1
Error: Either BOF or EOF is true, or the current record has been deleted.request operation requires a current record.
Code: 800A0BCD
Source: ADODB.Recordest
 
windows script host):
Script: \\chemin de mon script
Line: 41
Char:1
Error: the local device name is already in use
Code: 80070055
Source: WSHNetwork.MapNetworkDrive
 
 
Line:51
Column:3
Error: (null)
code: 80004005
Source: (null)
 
on m'a conseillé de rajouter ceci mais je ne sais pas où le meme vu que c est pas moi qui est créé le script et que je ne m y connais pas en vbs
 
On error resume next
oNet.RemoveNetworkDrive objRecordSet.Fields("Name" ).Value
On error goto 0
Set oNet = nothing

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed