This works even under MinGW and has a wicked bit of AWK to parse Unicode cr*p:
#!/bin/sh
reg query 'HKLM\SYSTEM\MountedDevices' | \
 awk 'BEGIN { letter=""; }
  /DosDevices\\[D-Z]:/{
    d=$1; a=$NF;
    dr=substr(d, length("\\DosDevices\\")+1, 1);
    i=0; str="";
    while(length(a) > 0) {
     c=substr(a, 0, 2); a=substr(a,3);
     if((++i%2)==0) { continue; }
     str = str sprintf("%c", strtonum("0x" c));
    }
    if(verbose) { print dr ": " str > "/dev/stderr"; }
    if(tolower(str) ~ /cdrom/) { letter=dr; }
  }
  END {
    if(length(letter) > 0) { print letter; }
    else { exit 1; }
 }
-ulianov