Toon posts:

[XP] Script om cd rom driveletter intestellen*

Pagina: 1
Acties:

Verwijderd

Topicstarter
Wie kan mij helpen aan een script\programma\methode om de cd-rom drive van een computer een specifieke driveletter (bijv. f:) toe te wijzen?

  • Goochem
  • Registratie: April 2002
  • Laatst online: 24-11-2023
Welke Windows versie gebruik je?

Onder XP kun je onder rechtermuisknop Deze Computer > Beheren (of Manage) en dan Schijfbeheer de Driverletters toewijzen.

Goochem


Verwijderd

Topicstarter
Dat weet ik, maar het gaat om een gescripte actie...

Het gaat om XP

Verwijderd

DriveLetter wijzigingen worden in het register bijgehouden in oa:

HKLM\System\MountedDevices
HKLM\System\MountedDevices\#{ee68e5e7-12c9-11d9-86e0-0026540a0422}
HKLM\System\MountedDevices\\DosDevices\[driveletter]

Check het evt eens door met RegMon de DMADMIN.EXE te loggen. ;)

[ Voor 55% gewijzigd door Verwijderd op 30-09-2004 12:32 ]


Verwijderd

Topicstarter
Verwijderd schreef op 30 september 2004 @ 12:26:
DriveLetter wijzigingen worden in het register bijgehouden in oa:

HKLM\System\MountedDevices
HKLM\System\MountedDevices\#{ee68e5e7-12c9-11d9-86e0-0026540a0422}
HKLM\System\MountedDevices\\DosDevices\[driveletter]

Check het evt eens door met RegMon de DMADMIN.EXE te loggen. ;)
Ook daar was ik al achter, alleen iedere cd-rom drive heeft een ander Id en ik kan dus niet bepalen welk Id bij de cd-rom speler hoort...

In WMI zit in W2K3 server wel de class win32_volume, maar die is niet supported in WXP.

Ik denk dat ik maar een tekstbased script i.c.m. diskpart ga schrijven... niet zo netjes, wel effectief.

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Even een titel edit zodat het OS in je topic titel staat :)

Verwijderd

Topicstarter
Heb zelf dit kixscriptje geschreven:

$root = 'C:'
$ComSPec = "%COMSPEC% /C"

SetCDDriveLetter ()

Function SetCDDriveLetter

Run $ComSPec+"diskpart /s "+$root+"\volume.txt >c:\volume.log"
Sleep 2

If Open(3,"c:\volume.log") = 0
$x = ReadLine(3)
While @ERROR = 0
If InStr($x,"DVD-ROM") OR InStr($x,"Cd-rom-sta")
$cdvolume = SubStr ($x,10,1)
$ltrold = SubStr ($x,16,1)
If $ltrold = "E"
$done = "True"
EndIf
EndIf
$x = ReadLine(3)
Loop
Close (3)
Else
Beep
? "Diskpartfile volume.log niet uit te lezen, error code: [" + @ERROR + "]"
EndIf

If Open(4,"c:\volume.log") = 0
$x = ReadLine(4)
While @ERROR = 0
If InStr($x," E ")
$evolume = SubStr ($x,10,1)
EndIf
$x = ReadLine(4)
Loop
Close (4)
Else
Beep
? "Diskpartfile volume.log niet uit te lezen, error code: [" + @ERROR + "]"
EndIf
? $evolume

If $done <> "True"
If Open (3 , "c:\setvol.txt", 5) = 0
$rv = WriteLine (3, "Select volume "+$evolume+@CRLF)
$rv = WriteLine (3, "assign letter="+$ltrold+@CRLF)
$rv = WriteLine (3, "Select volume "+$cdvolume+@CRLF)
$rv = WriteLine (3, "assign letter=E"+@CRLF)
Else
? "Failed to open file, error code [" + @ERROR + "]"
EndIf
EndIf

Run $ComSPec+"diskpart /s "+$root+"\setvol.txt

EndFunction

;Topic mag gesloten worden...

[ Voor 13% gewijzigd door Verwijderd op 30-09-2004 14:07 ]

Pagina: 1