Intitulés des icônes du poste de travail

Le
Fred
Bonjour,
Je souhaite modifier les intitulés des lecteurs réseaux dans le poste de
travail (windows 2000 pour l'instant)
Je ne trouve pas de solution en batch. ni en script avec les objets de base
(FileSystemObject ou Shell)
Voyez-vous une solution ?

PS : j'ai déjà posté sur windows2000 à ce sujet il y a quelques jours.
Vos réponses Page 1 / 2
Trier par : date / pertinence
Jacques Barathon [MS]
Le #64733
Sous XP tu peux changer le nom d'un lecteur réseau (et éventuellement
modifier son commentaire) après t'y être connecté. Il faut pour cela aller
tripatouiller dans la base de registre:

HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerMountPoints2

Là, tu verras des clés au format ##serveur#partage. Dans celle qui
t'intéresse tu pourras modifier les valeurs _CommentFromDesktopINI et
surtout _LabelFromDesktopINI qui est celle qui reçoit par défaut le nom du
partage suivi du nom du serveur et de la lettre d'unité entre parenthèses.

Sous 2000 il doit exister une entrée sensiblement similaire, mais comme je
n'ai pas de 2000 sous la main il faudra que tu ailles voir par toi-même.

Jacques

"Fred" news:%
Bonjour,
Je souhaite modifier les intitulés des lecteurs réseaux dans le poste de
travail (windows 2000 pour l'instant)
Je ne trouve pas de solution en batch. ni en script avec les objets de
base
(FileSystemObject ou Shell)
Voyez-vous une solution ?

PS : j'ai déjà posté sur windows2000 à ce sujet il y a quelques jours.




Fred
Le #64732
Merci beaucoup,
Je vais rechercher cela et ajouter la modification du registre dans mon
script.
(Je vais probablement devoir changer les droits sur cette clé car il me
semble que les Utilisateurs de base ne peuvent modifier les clés situées
dans cet emplacement. Il y a de la GPO en perspective !)


"Jacques Barathon [MS]" message de news:%23zH$b%
Sous XP tu peux changer le nom d'un lecteur réseau (et éventuellement
modifier son commentaire) après t'y être connecté. Il faut pour cela aller
tripatouiller dans la base de registre:

HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerMountPoints2

Là, tu verras des clés au format ##serveur#partage. Dans celle qui
t'intéresse tu pourras modifier les valeurs _CommentFromDesktopINI et
surtout _LabelFromDesktopINI qui est celle qui reçoit par défaut le nom du
partage suivi du nom du serveur et de la lettre d'unité entre parenthèses.

Sous 2000 il doit exister une entrée sensiblement similaire, mais comme je
n'ai pas de 2000 sous la main il faudra que tu ailles voir par toi-même.

Jacques

"Fred" news:%
Bonjour,
Je souhaite modifier les intitulés des lecteurs réseaux dans le poste de
travail (windows 2000 pour l'instant)
Je ne trouve pas de solution en batch. ni en script avec les objets de
base
(FileSystemObject ou Shell)
Voyez-vous une solution ?

PS : j'ai déjà posté sur windows2000 à ce sujet il y a quelques jours.








Fred
Le #64731
Bonjour,
Sous Windows 2000, j'ai trouvé la clé suivante :
HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerMountPointsE_Label
FromReg
Il y en a une pour chaque lecteur réseau (E pour l'exemple)
Sous cette clé, une valeur de type REG_BINARY intitulée Cache.
Cette valeur contient l'intitulé codé Unicode du nouveau nom du lecteur
lorsque l'on le renomme "manuellement"
Sinon, sous
HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerMountPointsE, on
trouve une valeur REG_BINARY intitulée _UB qui contient (toujours en
Unicode) le chemin d'accès réseau au partage connecté.
J'essaie de faire un script vbs, équivalent du NET USE, avec un paramètre
supplémentaire pour personnaliser l'intitulé du lecteur réseau dans le poste
de travail et je reviendrai le poster ici.



"Jacques Barathon [MS]" message de news:%23zH$b%
Sous XP tu peux changer le nom d'un lecteur réseau (et éventuellement
modifier son commentaire) après t'y être connecté. Il faut pour cela aller
tripatouiller dans la base de registre:

HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerMountPoints2

Là, tu verras des clés au format ##serveur#partage. Dans celle qui
t'intéresse tu pourras modifier les valeurs _CommentFromDesktopINI et
surtout _LabelFromDesktopINI qui est celle qui reçoit par défaut le nom du
partage suivi du nom du serveur et de la lettre d'unité entre parenthèses.

Sous 2000 il doit exister une entrée sensiblement similaire, mais comme je
n'ai pas de 2000 sous la main il faudra que tu ailles voir par toi-même.

Jacques

"Fred" news:%
Bonjour,
Je souhaite modifier les intitulés des lecteurs réseaux dans le poste de
travail (windows 2000 pour l'instant)
Je ne trouve pas de solution en batch. ni en script avec les objets de
base
(FileSystemObject ou Shell)
Voyez-vous une solution ?

PS : j'ai déjà posté sur windows2000 à ce sujet il y a quelques jours.








Fred
Le #64730
Précision,
Si on modifie le nom dans la valeur Cache, il faut incrémenter le nombre
dans la clé Version (au même endroit) pour que l'affichage soit mis à jour
dans le poste de travail.

"Fred" news:%23l1A3$
Bonjour,
Sous Windows 2000, j'ai trouvé la clé suivante :

HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerMountPointsE_Label

FromReg
Il y en a une pour chaque lecteur réseau (E pour l'exemple)
Sous cette clé, une valeur de type REG_BINARY intitulée Cache.
Cette valeur contient l'intitulé codé Unicode du nouveau nom du lecteur
lorsque l'on le renomme "manuellement"
Sinon, sous
HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerMountPointsE, on
trouve une valeur REG_BINARY intitulée _UB qui contient (toujours en
Unicode) le chemin d'accès réseau au partage connecté.
J'essaie de faire un script vbs, équivalent du NET USE, avec un paramètre
supplémentaire pour personnaliser l'intitulé du lecteur réseau dans le
poste

de travail et je reviendrai le poster ici.



"Jacques Barathon [MS]" message de news:%23zH$b%
Sous XP tu peux changer le nom d'un lecteur réseau (et éventuellement
modifier son commentaire) après t'y être connecté. Il faut pour cela
aller


tripatouiller dans la base de registre:

HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerMountPoints2

Là, tu verras des clés au format ##serveur#partage. Dans celle qui
t'intéresse tu pourras modifier les valeurs _CommentFromDesktopINI et
surtout _LabelFromDesktopINI qui est celle qui reçoit par défaut le nom
du


partage suivi du nom du serveur et de la lettre d'unité entre
parenthèses.



Sous 2000 il doit exister une entrée sensiblement similaire, mais comme
je


n'ai pas de 2000 sous la main il faudra que tu ailles voir par toi-même.

Jacques

"Fred" news:%
Bonjour,
Je souhaite modifier les intitulés des lecteurs réseaux dans le poste
de



travail (windows 2000 pour l'instant)
Je ne trouve pas de solution en batch. ni en script avec les objets de
base
(FileSystemObject ou Shell)
Voyez-vous une solution ?

PS : j'ai déjà posté sur windows2000 à ce sujet il y a quelques jours.












Fred
Le #64729
Voilà un bout de script qui fonctionne mais qui ne me paraît pas très
propre.
Si quelqu'un à des idées pour améliorer les points suivants :
- la méthode RegWrite ne permet pas d'écrire des données REG_BINARY de plus
d'une valeur. J'ai donc laissé une chaîne de caractères et cela marche comme
cela.
- je ne sais pas tester l'existence d'une clé ou d'une valeur. RegRead
retourne une erreur donc je boucle jusqu'à ce qu'il n'y ait plus d'erreur
(temps de mise à jour de la BDR par l'instruction MapNetworkDrive)

Set objArgs = WScript.Arguments
sDrive = objArgs(0)
sPath = objArgs(1)
sLabel = objArgs(2)
Set WshNetwork = WScript.CreateObject("WScript.Network")
WshNetwork.MapNetworkDrive sDrive & ":", sPath

Set WshShell = WScript.CreateObject("WScript.Shell")
on error resume next
Version = 0
do
Version WshShell.RegRead("HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersio
nExplorerMountPoints" & sDrive & "_LabelFromRegVersion")
loop while Version = 0

WshShell.RegWrite
"HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerMountPoints" &
sDrive & "_LabelFromRegCache", sLabel
WshShell.RegWrite
"HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerMountPoints" &
sDrive & "_LabelFromRegVersion", Version + 1, "REG_BINARY"



"Fred" news:%
Précision,
Si on modifie le nom dans la valeur Cache, il faut incrémenter le nombre
dans la clé Version (au même endroit) pour que l'affichage soit mis à
jour

dans le poste de travail.

"Fred" news:%23l1A3$
Bonjour,
Sous Windows 2000, j'ai trouvé la clé suivante :



HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerMountPointsE_Label

FromReg
Il y en a une pour chaque lecteur réseau (E pour l'exemple)
Sous cette clé, une valeur de type REG_BINARY intitulée Cache.
Cette valeur contient l'intitulé codé Unicode du nouveau nom du lecteur
lorsque l'on le renomme "manuellement"
Sinon, sous
HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerMountPointsE,
on


trouve une valeur REG_BINARY intitulée _UB qui contient (toujours en
Unicode) le chemin d'accès réseau au partage connecté.
J'essaie de faire un script vbs, équivalent du NET USE, avec un
paramètre


supplémentaire pour personnaliser l'intitulé du lecteur réseau dans le
poste

de travail et je reviendrai le poster ici.



"Jacques Barathon [MS]" message de news:%23zH$b%
Sous XP tu peux changer le nom d'un lecteur réseau (et éventuellement
modifier son commentaire) après t'y être connecté. Il faut pour cela
aller


tripatouiller dans la base de registre:

HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerMountPoints2

Là, tu verras des clés au format ##serveur#partage. Dans celle qui
t'intéresse tu pourras modifier les valeurs _CommentFromDesktopINI et
surtout _LabelFromDesktopINI qui est celle qui reçoit par défaut le
nom



du
partage suivi du nom du serveur et de la lettre d'unité entre
parenthèses.



Sous 2000 il doit exister une entrée sensiblement similaire, mais
comme



je
n'ai pas de 2000 sous la main il faudra que tu ailles voir par
toi-même.




Jacques

"Fred" news:%
Bonjour,
Je souhaite modifier les intitulés des lecteurs réseaux dans le
poste




de
travail (windows 2000 pour l'instant)
Je ne trouve pas de solution en batch. ni en script avec les objets
de




base
(FileSystemObject ou Shell)
Voyez-vous une solution ?

PS : j'ai déjà posté sur windows2000 à ce sujet il y a quelques
jours.




















scraper
Le #64728
Bonjour Fred
(dans news:uz0$)
tu nous disais :

Voilà un bout de script qui fonctionne mais qui ne me paraît pas très
propre.
Si quelqu'un à des idées pour améliorer les points suivants :
- la méthode RegWrite ne permet pas d'écrire des données REG_BINARY
de plus d'une valeur. J'ai donc laissé une chaîne de caractères et
cela marche comme cela.


si tu veux passer une valeur précise en binaire, tu as la solution d'écrire
un fichier *.reg avec ladite valeur, par ton script, puis de fusionner le
reg par script :-)

- je ne sais pas tester l'existence d'une clé ou d'une valeur. RegRead
retourne une erreur donc je boucle jusqu'à ce qu'il n'y ait plus
d'erreur (temps de mise à jour de la BDR par l'instruction
MapNetworkDrive)


attention peut être à une boucle infinie qui te forcera à killer ton process
si ta mise à jour est pas effectuée !




--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper

Fred
Le #64727
Bonjour Scraper,
merci pour tes suggestions.
Je vais générer le fichier .reg en fonction du paramètre saisi dur la ligne
de commande. Ce sera plus propre.
Pour la boucle, j'avais pensé initialement faire une petite tempo de 1 ou 2
secondes. Je vais revenir à cette idée.

"scraper"
Bonjour Fred
(dans news:uz0$)
tu nous disais :

Voilà un bout de script qui fonctionne mais qui ne me paraît pas très
propre.
Si quelqu'un à des idées pour améliorer les points suivants :
- la méthode RegWrite ne permet pas d'écrire des données REG_BINARY
de plus d'une valeur. J'ai donc laissé une chaîne de caractères et
cela marche comme cela.


si tu veux passer une valeur précise en binaire, tu as la solution
d'écrire
un fichier *.reg avec ladite valeur, par ton script, puis de fusionner le
reg par script :-)

- je ne sais pas tester l'existence d'une clé ou d'une valeur. RegRead
retourne une erreur donc je boucle jusqu'à ce qu'il n'y ait plus
d'erreur (temps de mise à jour de la BDR par l'instruction
MapNetworkDrive)


attention peut être à une boucle infinie qui te forcera à killer ton
process
si ta mise à jour est pas effectuée !




--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper





Jean-Claude BELLAMY
Le #64725
Dans le message news:uz0$ ,
Fred
Voilà un bout de script qui fonctionne mais qui ne me paraît pas très
propre.
Si quelqu'un à des idées pour améliorer les points suivants :
- la méthode RegWrite ne permet pas d'écrire des données REG_BINARY
de plus d'une valeur.


Il faut laisser tomber ces méthodes de la classe Shell de WSH!
Elle est beaucoup trop limitée.

Il faut faire appel au contraire à StdRegProv (de WMI), qui autorise
absolument tout au niveau BDR (lecture/écriture totu type, énumération de
clef et de valeurs, test de permissions, ...).

En particulier la méthode "SetBinaryValue", qui permet, comme son nom
l'indique, de définir n'importe quelle valeur binaire, de n'importe quelle
longueur.


Exemple :
---------

const HKLM = &H80000002
Const REG_BINARY = 3
Tab= array( _
&H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, _
&H03, &H00, &H00, &H00, &H38, &H00, &H1d, &H00, _
&H38, &H00, &H1d, &He0, &H00, &H00, &H00, &H00)

strComputer = "."
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\" & _
strComputer & "rootdefault:StdRegProv")

KeyName="SYSTEMCurrentControlSetControlKeyboard Layout"
ValueName="Scancode Map"
oReg.SetBinaryValue HKLM, KeyName,ValueName,Tab


Pour tout savoir sur "StdRegProv" :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/stdregprov.asp
En particulier sur "SetBinaryValue" :
http://msdn.microsoft.com/library/en-us/wmisdk/wmi/setbinaryvalue_method_in_class_stdregprov.asp


J'ai donc laissé une chaîne de caractères et
cela marche comme cela.

- je ne sais pas tester l'existence d'une clé ou d'une valeur.


Il suffit de
1) intercepter les erreurs par un "On error resume next" (comme tu l'as
fait)
2) tester la variable "err.number" (ou "err" tout court, vu que "number" est
la propriété par défaut de err)!

Exemple :

Function ReadKey(key)
On Error Resume Next
ReadKey=shell.RegRead(key)
If Err.Number<>0 Then
If right(key,1)<>"" Then key=key & ""
Err.Clear
ReadKey=shell.RegRead(key)
If Err.Number<>0 Then Wscript.Echo "Erreur dans la lecture de la clef" &
vbcrlf & key
End If
end function


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
http://www.bellamyjc.org *


scraper
Le #64724
Bonjour Fred, dans le message
news://
tu disais :


Bonjour Scraper,
merci pour tes suggestions.
Je vais générer le fichier .reg en fonction du paramètre saisi dur la
ligne de commande. Ce sera plus propre.
Pour la boucle, j'avais pensé initialement faire une petite tempo de
1 ou 2 secondes. Je vais revenir à cette idée.


tu peux inclure une tempo dans ta boucle, et un comptage ...

tu mets ensuite une condition du genre

If n > 5 Then Exit Do

juste avant le Loop While ...etc ...

où n est ta variable de comptage




--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper

Fred
Le #64417
Bonsoir,
Je vais me mettre au script WMI avec le scriptomatic pour commencer.
J'ai vu également un utilitaire regini.exe qui peut faire cela.
Mais l'ensemble de mon problème ne peut être résolu en batch donc je vais
utiliser ta méthode.


"Jean-Claude BELLAMY" message de news: %
Dans le message news:uz0$ ,
Fred
Voilà un bout de script qui fonctionne mais qui ne me paraît pas très
propre.
Si quelqu'un à des idées pour améliorer les points suivants :
- la méthode RegWrite ne permet pas d'écrire des données REG_BINARY
de plus d'une valeur.


Il faut laisser tomber ces méthodes de la classe Shell de WSH!
Elle est beaucoup trop limitée.

Il faut faire appel au contraire à StdRegProv (de WMI), qui autorise
absolument tout au niveau BDR (lecture/écriture totu type, énumération de
clef et de valeurs, test de permissions, ...).

En particulier la méthode "SetBinaryValue", qui permet, comme son nom
l'indique, de définir n'importe quelle valeur binaire, de n'importe quelle
longueur.


Exemple :
---------

const HKLM = &H80000002
Const REG_BINARY = 3
Tab= array( _
&H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, _
&H03, &H00, &H00, &H00, &H38, &H00, &H1d, &H00, _
&H38, &H00, &H1d, &He0, &H00, &H00, &H00, &H00)

strComputer = "."
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\" & _
strComputer & "rootdefault:StdRegProv")

KeyName="SYSTEMCurrentControlSetControlKeyboard Layout"
ValueName="Scancode Map"
oReg.SetBinaryValue HKLM, KeyName,ValueName,Tab


Pour tout savoir sur "StdRegProv" :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/stdregprov.asp
En particulier sur "SetBinaryValue" :
http://msdn.microsoft.com/library/en-us/wmisdk/wmi/setbinaryvalue_method_in_class_stdregprov.asp


J'ai donc laissé une chaîne de caractères et
cela marche comme cela.

- je ne sais pas tester l'existence d'une clé ou d'une valeur.


Il suffit de
1) intercepter les erreurs par un "On error resume next" (comme tu l'as
fait)
2) tester la variable "err.number" (ou "err" tout court, vu que "number"
est la propriété par défaut de err)!

Exemple :

Function ReadKey(key)
On Error Resume Next
ReadKey=shell.RegRead(key)
If Err.Number<>0 Then
If right(key,1)<>"" Then key=key & ""
Err.Clear
ReadKey=shell.RegRead(key)
If Err.Number<>0 Then Wscript.Echo "Erreur dans la lecture de la clef"
& vbcrlf & key
End If
end function


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
http://www.bellamyjc.org *






Publicité
Poster une réponse
Anonyme