Alors :
objVol.Put_
J'ai déjà vu une syntaxe dans le genre sur un code fournis par MSDN.
Cela m'a surpris à l'époque mais cela marche (pas le même objet).
Perso j'aurais plus utilisé cette ligne ainsi :
set colVol = objWMI.ExecQuery("Select * from Win32_DiskDrive WHERE InterfaceType='USB'")
Comme le dit l'erreur DriveLetter n'existe pas pour la classe Win32_DiskDrive.
En fait diskdrive gère les disque physique et s'en fou des lettres de ces lecteurs, il faut utiliser win32_logicaldisk
Ensuite la propriété DeviceID renseigne sur la lettre, et tu peux la modifier.
Cela un truc du genre :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| ' Script VB qui tente de changer une lettre de lecteur USB (F: ---> L:)
strComputer = "."
strOldDrive = "F:"
strNewDrive = "L:"
' ------ END CONFIGURATION ---------
set objWMI = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
'set colVol = objWMI.ExecQuery("select * from Win32_Volume where Name = '" & _
' strOldDrive & "\\'")
'
set colVol = objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDisk WHERE DriveType = 2",,48)
if colVol.Count <> 1 then
WScript.Echo "Erreur : Le volume recherché n'a pas été trouvé."
else
for each objVol in colVol
objItem.DeviceID = strNewDrive
WScript.Echo "Mise à jour des lettres de lecteur effectuée avec succès."
next
end if |
Partager