> Tech > Appliquer ce que vous avez appris

Appliquer ce que vous avez appris

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Forts de vos nouvelles connaissances, utilisez ADSI pour attribuer des ressources à  des gens d'après leur groupe d'appartenance. Pour cela, vous devez collecter le nom de l'utilisateur et le domaine de l'utilisateur actuellement connecté, injecter cette information dans une fonction GetObject pour se lier à  cet objet utilisateur, puis extraire

une liste des groupes auxquels cet utilisateur
appartient. Munis de cette liste, vous pouvez utiliser l’instruction
For Each…Next de VBScript pour effectuer
une action sur chaque groupe
de la liste. Dans ce cas, l’action consiste
à  comparer le nom du groupe à  une
liste de noms de groupes possibles. Si
une correspondance se manifeste, associez
la ressource réseau appropriée.
Utilisez les même méthodes et propriétés
d’objets WshNetwork dont je
vous ai montré l’utilisation dans
« Connecter les utilisateurs aux ressources
réseau ». Le listing 3 montre à 
quoi pourrait ressembler le script.
Si vous personnalisez et exécutez
le script SetResource.vbs du listing 3, il
attribuera les ressources réseau
d’après le groupe d’appartenance de
l’utilisateur. Cependant, si vos utilisateurs
appartiennent à  plus d’un
groupe, vous aurez du mal à  utiliser ce
script en l’état. SetResource.vbs associe
une lettre d’unité à  une ressource
réseau d’après le groupe de l’utilisateur
; si le script rencontre un second
groupe pour l’utilisateur, le script ne
peut pas associer l’unité à  nouveau. Le
script se terminera alors avec une erreur.
Pour éviter cela, vous avez deux
possibilités : vous pouvez empêcher
SetResource.vbs d’essayer d’associer
une seconde ressource réseau au
même utilisateur, ou vous pouvez
dissocier l’unité réseau existante avant
d’associer la nouvelle.
Empêcher une seconde tentative
d’association. Pour empêcher le script
d’essayer d’associer une seconde ressource
réseau au même utilisateur,
vous pouvez utiliser la méthode Quit
de l’objet WScript pour terminer le
script dès qu’une correspondance se
produit. A l’exception de la clause Case
Else (qui inclut toujours la méthode
Quit), vous devez ajouter la méthode
Quit à  la fin de chaque cas, comme le
montre le code suivant :

Case « Domain Users »
oNet.MapNetworkDrive « X: », _
« \\server\users »
WScript.Quit

Cependant, si votre script effectue
d’autres tâches après l’association à 
une ressource réseau, vous ne voudrez
pas qu’il se termine après avoir associé
la ressource. Dans de tels cas, vous
pouvez utiliser l’instruction Exit pour
quitter la boucle For Each…Next. Dès
qu’une association se produit, le script
cesse d’explorer les noms de groupes
et poursuit à  hauteur du code qui suit
la clause Next. Pour cela, il faut ajouter
à  la fin de chaque cas une instruction
Exit qui inclut le mot-clé For, comme le
montre le code suivant :

Case « Domain Users »
oNet.MapNetworkDrive « X: »,_
« \\server\users »
Exit For

Comme la clause Case Else inclut
déjà  la méthode Quit, vous n’ajouteriez
pas une instruction Exit à  la clause
Case Else.
Que vous utilisiez la méthode Quit
ou l’instruction Exit, faites très attention
à  l’ordre dans lequel vous placez
les cas dans l’instruction Select Case.
Supposons que vous vouliez associer
les utilisateurs qui sont dans des
groupes multiples à  la ressource réseau
la plus puissante mise à  leur disposition.
Autant pour la méthode Quit
que pour l’instruction Exit, vous devez
mettre le groupe le plus puissant
d’abord. Par exemple, si vous faites la
comparaison sur deux groupes –
Domain Users et Domain Administrators
– vous mettrez le code Case
« Domain Administrators » en premier,
suivi du code Case « Domain Users ». (La
clause Case Else vient toujours en dernier.
Dissocier une unité de réseau existante.
Si vos utilisateurs appartiennent
à  plus d’un groupe, vous pouvez empêcher
SetResource.vbs de signaler
une erreur à  cause d’une unité de réseau
existante. Pour cela, dissociez
l’unité existante puis associez à  la nouvelle
unité. Ce processus utilise la méthode
RemoveNetworkDrive de l’objet
WshNetwork, comme le montre le
code suivant :

Case « Domain Administrators »
oNet.RemoveNetworkDrive « X: »
oNet.MapNetworkDrive « X: », _
« \\server\users »

Comme la méthode Quit et l’instruction
Exit, la méthode RemoveNetworkDrive
demande que vous placiez
les cas de l’instruction Select Case dans
un certain ordre. Toutefois, quand
vous utilisez la méthode Remove-
NetworkDrive, vous devez placer le
groupe le plus puissant en dernier et le
groupe le moins puissant en premier.
En outre, vous ne devez pas inclure la
méthode RemoveNetworkDrive dans
le code pour le premier cas.

Téléchargez cette ressource

Guide inmac wstore pour l’équipement IT de l’entreprise

Guide inmac wstore pour l’équipement IT de l’entreprise

Découvrez les dernières tendances et solutions IT autour des univers de Poste de travail, Affichage et Collaboration, Impression et Infrastructure, et notre nouveau dossier thématique sur l’éco-conception et les bonnes pratiques à adopter pour réduire votre impact environnemental.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010

A lire aussi sur le site

Revue Smart DSI

La Revue du Décideur IT