Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
864 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBS]Script mappage reseau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBS]Script mappage reseau

n°1506442
Sharki
Posté le 23-01-2007 à 17:52:29  profilanswer
 

Bonjour
Je vous expose un peu la situation
 
Je suis stagiaire, totalement debutant dans le VBS et on ma donné a faire un script VBS permettant de mappé les lecteur reseau appartenent a une UO spécifique dans l'active directory du windows server 2003
 
Exemple
Sous mon active directory , j'ai une UO "Compatable"
Dans cette UO comptable j'ai creer un Utilisateur Toto
Dans cette meme UO il y a un Lecteur partagée nommé L:
Je voudrais que lorsque Toto se connecte , le script ce lançe et cela va lui mappé le lecteur L:
 
Evidemment ce script doit etre polyvalent et marché sur TOUS les UO de mon active directory
 
JE part donc petit a petit et la premiere etape serait de recupéré l'uo dans laquelle est l'utilisateur qui vient de se logué
 
J'ai essayé ceci:
 

Code :
  1. Set objDSE = GetObject("LDAP://rootDSE" )
  2. set oConnection = CreateObject("ADODB.Connection" )
  3. oConnection.Provider = "ADsDSOObject"
  4. oConnection.Open "ADs Provider"
  5. ' filtre sur le login utilisateur
  6. ' -------------------------------
  7. sFilter = "(&(objectclass=user)(samaccountname=" & monUser & " ))"
  8. ' Définition des paramètres récupéré : ici DistinguishedName
  9. ' ----------------------------------------------------------
  10. sQuery = "<LDAP://" & objDSE.Get("defaultNamingContext" ) & ">;" & sFilter & ";distinguishedName;subtree"
  11. Set oRecordSet = oConnection.Execute(sQuery)
  12. usrDN = oRecordset.Fields("distinguishedName" ).value
  13. oConnection.Close
  14. ' Affichage de l'OU
  15. ' -----------------
  16. partie = split(usrDN,"," )
  17. chercheOU = Right(partie(1),Len(partie(1))-3)


 
Mais sa m'affiche cela:
 
http://img100.imageshack.us/img100/8381/erreur9ng.jpg
 
Bref , pourquoi ? je comprend pas trop le message d'erreur d'un côté  :sweat:  
 
AUssi , suis-je bien parti ? ou je me goure totalement en recuperant l'uo de l'util et il existe un moyen plus rapide ?  :whistle:  
Et aussi , si vous avez des idées sur la suite du script ???
 
Bref , je demande peut etre beaucoup je vous l'accorde...mais deja au moins récuperer l'UO de l'util courant sa serait deja un grand pas !!
 
Par avance merci !!
 
Et merci de m'avoir lu
 
En vous souhaitant une bonne journée/soirée , suivant l'heure de lecture :)  :)

mood
Publicité
Posté le 23-01-2007 à 17:52:29  profilanswer
 

n°1506588
Sharki
Posté le 24-01-2007 à 09:14:47  profilanswer
 

Petite Info sup
J'ai fait le script sans aucun commentaire
et l'erreur se trouve sur cette ligne apparament:
 

Code :
  1. usrDN = oRecordset.Fields("distinguishedName" ).value


 
Si sa peut faire avançé la chose ....

n°1506644
Sharki
Posté le 24-01-2007 à 10:56:26  profilanswer
 

Bon j'ai avançé
J'arrive a recupéré le DN(distinguished name) de l'utilisateur courant !!
Manque plus qu'a le splitté et j'aurais le DN de l'uo de l'utilisateur !!
 
je vous poste mon nouveau code !
 
 
 

Code :
  1. Dim WshShell
  2. Dim objNet
  3. Dim objRootDSE
  4. Set WshShell = WScript.CreateObject("WScript.Shell" )
  5. Set objNet = WScript.CreateObject("WScript.Network" )' create network object for vars
  6. Set objRootDSE = GetObject("LDAP://rootDSE" )' bind to the rootDSE for portability
  7. strADsConfPath = "LDAP://" & objRootDSE.Get("configurationNamingContext" )' bind to configuration to get Domain Controllers later
  8. strRootDSE = objRootDSE.Get("defaultNamingContext" )' bind to the defaultContext for portability
  9. strUserName = UCase(objNet.UserName)' pull user name from environment variable
  10. msgbox GetDNUser(strUserName,"person" ),64,Wscript.ScriptName & " " & version
  11. Function GetDNUser(param1,param2)
  12.   Set objDSE = GetObject("LDAP://rootDSE" )
  13.   ON ERROR RESUME NEXT
  14.   Set objConnection = CreateObject("ADODB.Connection" )
  15.   objConnection.Open "Provider=ADsDSOObject;"
  16.   Set objCommand = CreateObject("ADODB.Command" )
  17.   objCommand.ActiveConnection = objConnection
  18.   objCommand.CommandText = "SELECT distinguishedName, Sn " & "FROM 'LDAP://" & objDSE.Get("defaultNamingContext" ) & "' " & "WHERE objectCategory='" & param2 & "' AND sAMAccountName='" & param1 & "' " & "ORDER BY sAMAccountName"
  19.   Set objRecordSet = objCommand.Execute
  20.   GetDNUser = objRecordSet.Fields("distinguishedName" )
  21.   objConnection.Close
  22.   if err.number <> 0 then
  23.     msgbox "ERREUR: le nom renseigné n'existe pas dans l'AD.",16,Wscript.ScriptName & " " & version
  24.     ERR.CLEAR
  25.     wscript.quit
  26.   end if
  27. End Function


 
 
Si vous avez une idée pour splitté la chose... je vous ecoute ^^


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBS]Script mappage reseau

 

Sujets relatifs
reseau IPPb [SCRIPT SHELL] Help!!!
script en php pour VidéosurveillanceVérification fonctionnement de script
Script PHP et hebergement mutualisébatch qui ping toutes les machines d'un réseau
HELP!! Pb script![VBS]Ouverture d'un classeur excel
faire un scriptScript VBS Mappage Disque Réseau et printer LPT2
Plus de sujets relatifs à : [VBS]Script mappage reseau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR