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

  FORUM HardWare.fr
  Systèmes & Réseaux Pro
  Infrastructures serveurs

  Help script wsh map lecteur réseau et groupe

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Help script wsh map lecteur réseau et groupe

n°35669
Tai91
Posté le 04-04-2008 à 17:15:35  profilanswer
 

Hi everyone ^^
 
j'ai une petite question technique qui je l'espère sera résolu grâce à vous. Voila je me lance.  
 
(Je viens de débuter)
(Je sais déja mapper un lecteur réseau...)
 
Je n'ai pas encore trouvé comment récupérer un groupe pour mette en place ceci :
 
J'ai deux équipes appartenant chacun à un groupe global.
Ex: l'user John appartient  au groupe Equipe 1
    l'user Tai appartient au groupe Equipe 2
 
Je veux que selon l'appartenance à un groupe le script map tel lecteur réseau.
Ex: si l'user est du groupe Equipe 1 mapper le lecteur réseau X
     sinon (appartient alors à l'quipe2) mapper le lecteur Y
 
Auriez vous des idées?
 
thanks a lot pour votre aide.
 

mood
Publicité
Posté le 04-04-2008 à 17:15:35  profilanswer
 

n°35672
tecoxe
Posté le 04-04-2008 à 19:23:59  profilanswer
 

Tu veux faire ça en vbscript ?

n°35674
Tai91
Posté le 04-04-2008 à 20:52:47  profilanswer
 

bah si wsh=vbscript surement ça ressemble à ça :
Dim lecteur
Set lecteur= CreateObject("Wscript.Network" )
lecteur.MapNetworkDrive "V:","\\seifer\VPC\Equipe1\partage"
lecteur.MapNetworkDrive "T:","\\seifer\VPC\commun"
WScript.Quit
 
Cordialement

n°35682
tayn
Posté le 05-04-2008 à 00:30:28  profilanswer
 

Ca donnera un truc dans le genre:
 
Set NetworkDisk = WScript.CreateObject("WScript.Network" )
 
If IsMember ("Equipe 1" ) Then
        NetworkDisk.MapNetworkDrive "V:", "\\seifer\VPC\Equipe1\partage"
        NetworkDisk.MapNetworkDrive "T:", "\\seifer\VPC\commun"
End If
 
If IsMember ("Equipe 2" ) Then
        NetworkDisk.MapNetworkDrive "V:", "\\seifer\VPC\Equipe2\partage"
        NetworkDisk.MapNetworkDrive "T:", "\\seifer\VPC\commun"
End If


Message édité par tayn le 05-04-2008 à 00:31:03
n°35683
ShonGail
En phase de calmitude ...
Posté le 05-04-2008 à 03:43:52  profilanswer
 

tu as la commande ifmember du kit de ressources pour admin MS

n°35690
Tai91
Posté le 05-04-2008 à 12:09:18  profilanswer
 

Thanks vous deux pour l'aide ^^ Sinon je ne sais pas ce qu'est le kit de ressources pour admin MS. Je fais ça sous un server 2003.
 
Jvais test et je vous tiens au courant

n°35692
Tai91
Posté le 05-04-2008 à 12:11:51  profilanswer
 

un ami m'a passé ce code mais il ne marche pas completement.
 
Const GROUP1     = "cn=compta"  
Const GROUP2         = "cn=finance"  
Const GROUP3 = "cn=secretariat"
 
Set wshNetwork = CreateObject("WScript.Network" ) wshNetwork.MapNetworkDrive "h:", "\\FileServer\Users\" & wshNetwork.UserName
 
Set ADSysInfo = CreateObject("ADSystemInfo" )  
Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName) strGroups = LCase(Join(CurrentUser.MemberOf))
 
If InStr(strGroups, GROUP1) Then
 
 wshNetwork.MapNetworkDrive "g:", "\\FileServer\compta\"  
 
else
blabla pour le groupe 2

n°35693
ShonGail
En phase de calmitude ...
Posté le 05-04-2008 à 12:16:51  profilanswer
 

Tai91 a écrit :

Thanks vous deux pour l'aide ^^ Sinon je ne sais pas ce qu'est le kit de ressources pour admin MS. Je fais ça sous un server 2003.
 
Jvais test et je vous tiens au courant


 
 
Google = http://support.microsoft.com/kb/927229/fr
 
C'est simple. Autant l'utiliser ;)

n°35698
Tai91
Posté le 05-04-2008 à 14:20:05  profilanswer
 

ShonGail j'ai installé le kit ifmember depuis la page microsoft que tu m'as donné (thanks) et j'ai fait ce ce script :
Dim lecteur
 
Set lecteur = WScript.CreateObject("WScript.Network" )
 
If IsMember ("Equipe 1" ) Then
 lecteur.MapNetworkDrive "h:", "\\seifer\VPC\Equipe1\" & lecteur.UserName
        lecteur.MapNetworkDrive "V:", "\\seifer\VPC\Equipe1\partage"
        lecteur.MapNetworkDrive "T:", "\\seifer\VPC\commun"
End If
 
If IsMember ("Equipe 2" ) Then
 lecteur.MapNetworkDrive "h:", "\\seifer\VPC\Equipe1\" & lecteur.UserName
        lecteur.MapNetworkDrive "V:", "\\seifer\VPC\Equipe2\partage"
        lecteur.MapNetworkDrive "T:", "\\seifer\VPC\commun"
End If
 
WScript.Quit
 
Le problème est que j'ai une erreur vbs :type imcompatible "ifmember" lors du login de de l'un de mes users.
 
Ai-je oublié quelque chose d'important?
 
Cordialement

n°35704
tayn
Posté le 05-04-2008 à 15:05:16  profilanswer
 

oups excuse moi j'ai oublié de te fournir la fonction ISMEMBER!
 
Pour le ressource kit c'est autre chose c'est IFMEMBER
 
Dans mon cas tu n'as besoin de rien téléchargé.
 
Donc dans ton script il faut que tu ajoutes a la fin la fonction ISMEMBER qui est:

Citation :


 
Function IsMember(sGroup)
Dim ADsPath, oUser, oGroup
 
If IsEmpty(GroupDict) Then
 Set GroupDict = CreateObject("Scripting.Dictionary" )
 GroupDict.CompareMode = vbTextCompare
 ADsPath = WSHNetwork.UserDomain & "/" & WSHNetwork.UserName
 Set oUser = GetObject("WinNT://" & ADsPath & ",user" )
 For Each oGroup in oUser.Groups
  GroupDict.Add oGroup.Name, "-"
 Next
 Set oUser = Nothing
End If
Ismember = CBool(GroupDict.Exists(sGroup))
 
End Function


 
avec au debut de ton script
 

Citation :

Set WSHNetwork = WScript.CreateObject("WScript.Network" )


 
Sinon tu peux effectivement utiliser IFMEMBER! C'est donc autre chose.


Message édité par tayn le 05-04-2008 à 15:16:18
mood
Publicité
Posté le 05-04-2008 à 15:05:16  profilanswer
 

n°35706
Tai91
Posté le 05-04-2008 à 15:11:31  profilanswer
 

Thanks tayn jv test de suite. Tu pourrais si ta le temps me décrire chaque ligne de ta fonction. C'est histoire d'expliquer au jury ce que ça fait pas à pas ^^
 
-Tai-

n°35708
Tai91
Posté le 05-04-2008 à 15:17:12  profilanswer
 

J'ai du bug quelque part car j'ai plus de message d'erreur mais rien n'est mapper snif ^^
Voici mon code :  
Set WSHNetwork = WScript.CreateObject("WScript.Network" )  
 
Dim lecteur
 
Set lecteur = WScript.CreateObject("WScript.Network" )
 
If IsMember ("Equipe 1" ) Then
 lecteur.MapNetworkDrive "h:", "\\seifer\VPC\Equipe1\" & lecteur.UserName
        lecteur.MapNetworkDrive "V:", "\\seifer\VPC\Equipe1\partage"
        lecteur.MapNetworkDrive "T:", "\\seifer\VPC\commun"
End If
 
If IsMember ("Equipe 2" ) Then
 lecteur.MapNetworkDrive "h:", "\\seifer\VPC\Equipe1\" & lecteur.UserName
        lecteur.MapNetworkDrive "V:", "\\seifer\VPC\Equipe2\partage"
        lecteur.MapNetworkDrive "T:", "\\seifer\VPC\commun"
End If
 
WScript.Quit
 
 
 
Function IsMember(sGroup)
Dim ADsPath, oUser, oGroup
 
If IsEmpty(GroupDict) Then
 Set GroupDict = CreateObject("Scripting.Dictionary" )
 GroupDict.CompareMode = vbTextCompare
 ADsPath = WSHNetwork.UserDomain & "/" & WSHNetwork.UserName
 Set oUser = GetObject("WinNT://" & ADsPath & ",user" )
 For Each oGroup in oUser.Groups
  GroupDict.Add oGroup.Name, "-"
 Next
 Set oUser = Nothing
End If
Ismember = CBool(GroupDict.Exists(sGroup))
 
End Function

n°35709
tayn
Posté le 05-04-2008 à 15:24:35  profilanswer
 

Function IsMember(sGroup) ==> INITIALISE FONCTION
[/b][/b]Dim ADsPath, oUser, oGroup ==> INITIALISE VARIABLE
 
If IsEmpty(GroupDict) Then ==> SI GROUPDICT est vide alors on lance ce qui va suivre pour l'initialisé
 Set GroupDict = CreateObject("Scripting.Dictionary" ) => On initialise un object scripting.dictionnary
 GroupDict.CompareMode = vbTextCompare ==> Le mode de comparaison (pour la suite pour déterminer les groupes) est un mode "texte"
 ADsPath = WSHNetwork.UserDomain & "/" & WSHNetwork.UserName ==> On recupere le chemin AD en assemblant le domaine du user + le nom (ca donnera un truc du genre "INTRANET/TOTO"
 Set oUser = GetObject("WinNT://" & ADsPath & ",user" ) ==> On initialise la variable oUser sur ce chemin utilisateur AD
 For Each oGroup in oUser.Groups ==> Pour chaque groupe donc appartient l'utilisateur TOTO
  GroupDict.Add oGroup.Name, "-" ==> On ajoute dans la variable (tableau en fait) "GROUPDICT" le nom du groupe + un tiret.
 Next ==> Boucle
 Set oUser = Nothing ==> réinitilisateur de oUser pour faire ca propre
End If
Ismember = CBool(GroupDict.Exists(sGroup)) ==> On vérifie dans le tableau GROUPDICT si par exemple "EQUIPE 2" est dans les groupes de l'utilisateur. (par rapport au remplissage du tableau au dessus FOR / NEXT), et on retourne TRUE ou FALSE en fonction du résultat.
End Function
 
A++

n°35710
tayn
Posté le 05-04-2008 à 15:27:52  profilanswer
 

Si ca marche pas essaye de faire des "wscript.echo" de tes variables un peu partout pour voir ou ca merde.
 
Par exemple tu fait :
 
For Each oGroup in oUser.Groups
    GroupDict.Add oGroup.Name, "-"
   wscript.echo oGroup.Name
Next  
 
Toute facon essayes de comprendre le code et t'arriveras a comprendre d'ou vient ton problème! Sinon utilises IFMEMBER! :)

n°35711
Tai91
Posté le 05-04-2008 à 15:30:00  profilanswer
 

big thanks a toi tayn pour cette aide. jvais me penché la dessus. sinon pour IFmember voit pas comment ça marche dans un script mais c'est une autre histoire.
Bon jrepars faire mes tests ^^
 
-Tai-

n°35714
ShonGail
En phase de calmitude ...
Posté le 05-04-2008 à 16:12:51  profilanswer
 

Tai91 a écrit :

big thanks a toi tayn pour cette aide. jvais me penché la dessus. sinon pour IFmember voit pas comment ça marche dans un script mais c'est une autre histoire.
Bon jrepars faire mes tests ^^
 
-Tai-


 
 


echo off
cls
ifmember administrateurs
if not errorlevel 1 goto negatif
echo * Membre du groupe admininistrateurs local *
pause
exit
:negatif
echo * Pas membre du groupe admininistrateurs local *
pause
exit

n°35749
Tai91
Posté le 06-04-2008 à 14:47:39  profilanswer
 

yo ^^ grace au echo j'ai bien vu ou t'es les erreurs et ça marche du tonnerre tayn. jte le redis encore 'big thanks'.
 
ptite question si quelque passe encore par la:  
 
Peut on renommer par un nom à nous le lecteur réseau mapper directement dans le script?
Peut on créer un repertoire perso d'un user et le mapper par la suite par script?
(l'équivalent de connecter un "dossier de base" dans l'onglet profil d'un user. En effet celui ci va créer de lui même un dossier perso et le mapper. )
 
Cordialement et nice week ^^


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Systèmes & Réseaux Pro
  Infrastructures serveurs

  Help script wsh map lecteur réseau et groupe

 

Sujets relatifs
[Help] IPcopLecteur de sauvegarde IBM TS2230 relié à deux noeuds d'un cluster SLES
Restructuration architecture réseau (OpenLDAP, VPN, Firewall...)connexion imprimante reseau en TSE
Avertissment sécurité execution logiciel via réseaucréation url dans plusieurs dossiers par script
help perte de mot de passe sous W2000Question cablage réseau (outil)
"Poubelle réseau" pour les suppresion de dossiers partagésDéployer VoIP avec SIP sur réseau local
Plus de sujets relatifs à : Help script wsh map lecteur réseau et groupe


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