Prüfen ob Netzlaufwerk bereits Buchstabe zugeordnet wurde

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Tobias2107.

    Prüfen ob Netzlaufwerk bereits Buchstabe zugeordnet wurde

    Hallo,

    ich muss via VB.net oder Batch überprüfen ob bei einen Netzlaufwerk, auf welchen lediglich Leserechte vorhanden sind, bereits ein Laufwerksbuchstabe zugeordnet ist.
    Hat hier vielleicht jemand einen Tipp?

    Die Serveradressen bzw. die UNC-Pfade sind fest definiert.
    Andersrum finde ich einiges hier im Forum.


    Vielen Dank im vorraus

    Viele Grüße
    Tobias

    petaod schrieb:



    Hallo,
    danke für die schnelle Antwort!

    Leider bekomme ich hier nur den drivetype als Rückgabewert, nicht den gemappten Buchstaben.
    Oder sehe ich da etwas falsch?
    Prinzipiell würde mir sogar reichen, rauszufinden ob das Laufwerk überhaupt mit einen Buchstabe gemappt wurde, welcher Buchstabe spielt weniger eine Rolle.

    Viele Grüße
    Tobias
    @Tobias2107 Willkommen im Forum. :thumbup:
    So was, Verweis zu System.Management.dll hinzufügen:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports System.Management
    2. Imports System.IO
    3. Public Class Form1
    4. Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
    5. For Each drive As DriveInfo In DriveInfo.GetDrives
    6. If drive.DriveType = IO.DriveType.Network Then
    7. If drive.IsReady Then
    8. Me.ListBox1.Items.Add(drive.Name & " [" & Form1.GetDriveInfo(drive.Name) & "]")
    9. Else
    10. Me.ListBox1.Items.Add(drive.Name & " [nicht bereit]")
    11. End If
    12. Else
    13. Me.ListBox1.Items.Add(drive.Name)
    14. End If
    15. Next
    16. End Sub
    17. Private Shared Function GetDriveInfo(ByVal driveLetter As String) As String
    18. driveLetter = driveLetter.TrimEnd("\"c)
    19. Dim provider As New ManagementObjectSearcher("Select ProviderName FROM Win32_MappedLogicalDisk WHERE DeviceID='" & driveLetter & "'")
    20. Dim retval As String = "False"
    21. For Each mapping As ManagementObject In provider.Get()
    22. If mapping IsNot Nothing Then
    23. retval = mapping("ProviderName").ToString()
    24. End If
    25. Next
    26. Return retval
    27. End Function
    28. End Class
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Tobias2107 schrieb:

    Leider bekomme ich hier nur den drivetype als Rückgabewert, nicht den gemappten Buchstaben.
    Hast du dir das Codebeispiel dazu angesehen?
    Es gibt auch DriveInfo.Name

    Edit:
    Aber @RodFromGermany hat dir ja die Komplettlösung schon präsentiert.
    Da sollten jetzt keine Fragen mehr übrig bleiben.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „petaod“ ()