LW-Buchstaben ändern

  • Hi Kollegas!

    Ich habe folgende Aufgabe:
    Bestimmte Volumes sollen bestimmte Laufwerksbuchstaben bekommen. Falls z.B. das Volume "BB" nicht den LW-Buchstaben U hat, soll der Buchstabe auf U geändert werden. Bisher habe ich hierzu einen VB Code gefunden -siehe unten.
    Dieser benötigt einen Neustart nach Ausführen des Scriptes.

    Frage eines AutoIT-Anfängers:
    Gibt es zu dieser Aufgabe bereits ein AutoIT-Script?
    Lässt sich dies mit AutoIT scripten (evtl. ohne Neustart)?

    Vielen Dank für Eure schnelle Antwort!

    Gruß aus Hamburg,
    Michael


    +++VBCode Start+++
    'Definition der Variablen
    Dim objFSO
    Dim drvLoop
    Dim oReg

    sComputer = "."
    Const HKLM = &H80000002

    'Objekte
    Set objFSO = CreateObject("Scripting.FileSystemObject")

    'Schleife, in der die DriveLetter mit den VolumeNames verglichen werden.

    For Each drvLoop In objFSO.Drives
    If drvLoop.VolumeName = "BB" and drvLoop.DriveLetter <> "U" Then

    sSourceDrive = drvLoop.DriveLetter & ":"
    sTargetDrive = "U:"
    bOK = True
    Set oReg = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" _
    & sComputer & "\root\default:StdRegProv")

    sKeyPath = "SYSTEM\MountedDevices"
    sSrc = "\DosDevices\" & UCase(sSourceDrive)

    iRC = oReg.GetBinaryValue(HKLM, sKeyPath, sSrc, sValue)

    If iRC = 0 Then
    sTrg = "\DosDevices\" & UCase(sTargetDrive)
    iRC = oReg.SetBinaryValue(HKLM, sKeyPath, sTrg, sValue)

    If iRC = 0 Then
    oReg.DeleteValue HKLM, sKeyPath, sSrc
    Else
    bOK = False
    End If
    Else
    bOK = False
    End If
    ChangeDrvLetter = bOK

    Msgbox "Drive letters changed, please reboot to see the change!"
    Else
    'Msgbox drvLoop.DriveLetter & ":\" & "Disk information unavailable"
    End If

    Next

    Set objFSO = Nothing
    +++VBCode Ende+++