par Christa Anderson - Mis en ligne le 23/06/2004 - Publié en Septembre 2003
Vos questions invitent à y regarder de plus près
Voyons comment vous
pouvez attribuer des ressources réseau
à des ordinateurs de même nom, et à
des utilisateurs d'après leurs groupes
d'appartenance...Dans les articles « Connecter les utilisateurs
aux ressources réseau » et « Se
connecter aux imprimantes », Windows
& .Net Magazine novembre 2002,
ou sur www.itpro.fr, j'expliquais comment
attribuer des imprimantes et
des partages réseau aux utilisateurs
d'après les noms d'ordinateurs et les
noms d'utilisateurs. Des lecteurs
m'ont aussitôt demandé par message
électronique s'ils pouvaient faire ce
genre d'attribution pour plus d'un utilisateur
ou ordinateur à la fois. C'est
possible, mais il ne suffit pas alors de
faire des sélections d'après les noms
individuels. Voyons comment vous
pouvez attribuer des ressources réseau
à des ordinateurs de même nom, et à
des utilisateurs d'après leurs groupes
d'appartenance.
Comment attribuer des ressources réseaux
Après avoir lu l’article « Se connecter
aux imprimantes », un lecteur m’a posé
cette question : « Supposons que j’ai 20
PC Windows 2000 (nommés Gamma1,
Gamma2,… Gamma20) que je dois associer
à printer1. Puis-je utiliser une
instruction Select Case et tester la présence
de Case « Gamma* » pour accéder
à ces PC ? » Si vous utilisiez l’instruction
Select Case comme vous l’avez décrit,
VBScript essaierait de trouver la correspondance
de la chaîne Gamma*
avec la valeur exacte Gamma* – autrement
dit, les seules correspondances
concerneraient les ordinateurs nommés
Gamma*. Le caractère joker que
vous avez l’habitude d’utiliser dans des
recherches ou à partir de la ligne de
commande, ne fonctionnera pas sans
l’objet RegExp de VBScript, dont je n’ai
pas encore parlé dans un article de la
rubrique Scripting Solutions. En revanche,
si vous avez nommé les ordinateurs
d’après un schéma obéissant à
l’emplacement de l’ordinateur, la fonction,
ou autre règle, vous pouvez rechercher
des correspondances d’après
la racine commune de ces noms.
Supposons que votre société ait
des stations de travail installées dans le
lab, la bibliothèque et zone de réception,
et que vous ayez nommé ces stations
de travail d’après leur emplacement.
Les stations de travail du lab ont
des noms qui commencent par le préfixe
LAB, celles de la bibliothèque ont
des noms qui commencent par LIBR et
celles de la zone de réception ont des
noms qui commencent par REC. Tous
les noms des stations de travail se terminent
par des nombres à deux
chiffres, donc les noms des stations de
travail se présentent ainsi : LAB01,
LIBR19 et RECP03.
Le listing 1 montre SetPrinter.vbs,
un script qui définit les imprimantes
par défaut pour ces trois groupes de
stations de travail. SetPrinter.vbs commence
par définir les variables et par
créer l’objet oNetwork pour représenter
un objet WshNetwork. Ensuite, le
script utilise la fonction Left pour capturer
un préfixe de trois caractères à
partir de chaque nom de station de travail,
puis attribue ce préfixe à une variable.
Les fonctions Left et Right de
VBScript comptent le nombre de
caractères d’une chaîne et renvoient
le nombre de caractères que vous indiquez. La fonction Left renvoie le
nombre spécifié de caractères provenant
du côté gauche de la chaîne, tandis
que la fonction Right fait de même
avec le côté droit de la chaîne. La syntaxe
des deux fonctions est simple :
elles prennent comme arguments la
chaîne sur laquelle on va travailler et le
nombre de caractères à renvoyer.
Ainsi, si vous tapez
Left(« gorilla », 2)
la fonction Left renvoie la valeur go. Si
vous tapez
Right(« gorilla », 5)
la fonction Right renvoie la valeur rilla.
Le premier argument de la fonction
Left ou Right n’est pas obligatoirement
une chaîne littérale : on peut fort
bien utiliser du code qui renvoie une
chaîne au moment de l’exécution.
Comme le code du renvoi A dans le listing
1 le montre, SetPrinter.vbs utilise
la propriété computerName de l’objet
WshNetwork pour obtenir le nom de
l’ordinateur à l’exécution. La fonction
Left capture ensuite les trois premières
lettres du nom de l’ordinateur et les attribue
à la variable chaîne appelée
sShort. Comme ce script l’illustre, le
nombre de caractères dans sShort
n’est pas obligatoirement le même que
le nombre de caractères dans le préfixe
que vous utilisez dans les noms des ordinateurs.
Dans la mesure où les caractères
dans sShort identifient sans ambiguïté
un groupe particulier
d’ordinateurs, le script fonctionnera.
Enfin, SetPrinter.vbs utilise l’instruction
SelectCase pour comparer les
caractères dans sShort avec les chaînes
Lib, Lab et Rec. Quand sShort trouve la
correspondance avec l’une de ces
chaînes, le script attribue le chemin
d’imprimante approprié à la variable
sPrintPath. SetPrinter.vbs utilise ensuite
la variable sPrintPath avec les méthodes
AddWindowsPrinterConnection
et SetDefaultPrinter de l’objet
WshNetwork pour ajouter une
connexion d’imprimante et attribuer
l’imprimante par défaut, respectivement.
Téléchargez cette ressource
Guide Adobe Firefly, l’IA générative dédiée aux équipes créatives
Depuis plus d’une décennie, Adobe exploite l’intelligence artificielle (IA) pour proposer des solutions toujours plus performantes et innovantes aux équipes créatives. Comment le nouveau moteur d’IA générative Adobe Firefly permet-il aux entreprises de développer leurs capacités créatives et de tirer, dès à présent, tout le profit de l'IA générative ?
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Top 6 de la sécurité des secrets
- Déploiement Data Zone de votre IA !
- Le nouvel espace-temps de la transformation digitale : redéfinition des rôles dans les projets IT
- Facturation électronique : les craintes des entreprises liées à la réforme
- Cyber-assurances, priorité ou faux remède pour les TPE et PME ?