sLiDeR-X, как ты проверял свой скрипт мне не известно (возможно для USB-HDD и работает, но для флешек только при создание под WinXP, при создание под Win7 создается неправильный migrate.inf).
Тесты проводил на двух флешках.
1. migrate.inf созданный моей прогой (созданный под WinXP) и программой WinSetupFromUSB (созданный под Win7) одинаковые. И при установке флешке назначалась нужная буква.
2. migrate.inf созданный твоим скриптом (созданный под Win7) отличался и при установке флешке назначась буква C:
Надо понять из каких данных по устройству и какой порядок построения migrate.inf, т.к. данные из реестра из HKLM\SYSTEM\MountedDevices можно брать только в WinXP(x86).
Вот
здесь можно почитать.