Netzlaufwerk per Dienst verbinden

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von picoflop.

    Netzlaufwerk per Dienst verbinden

    Hallo zusammen,

    ich versuche mehrere Netzlaufwerke per Dienst zu Mappen. Das funktioniert als Normales Programm einwandfrei.
    Sobald das ganze jedoch als Dienst unter meinem User läuft (Domain Admin) funktioniert das Mappen nicht mehr.

    Ich habe versucht dies mithilfe von "WNetAddConnection2" bzw. "Process" umzusetzen leider bisher ohne Erfolg...

    Hat jemand eine Idee was ich hier falsch mache?

    Vielen Dank!!

    VB.NET-Quellcode

    1. Private Function connect() As Boolean
    2. Dim Drive As New System.IO.DriveInfo(sDrive)
    3. Dim p As New Process()
    4. With p.StartInfo
    5. .FileName = "net"
    6. If sUser.Length > 0 Then
    7. .Arguments = String.Format("use {0} {1} /user:{2} {3}", sDrive, sPath, sUser, sPassword)
    8. Else
    9. .Arguments = String.Format("use {0} {1}", sDrive, sPath)
    10. End If
    11. .UseShellExecute = False
    12. .CreateNoWindow = True
    13. End With
    14. p.Start()
    15. If Drive.IsReady Then
    16. Return True
    17. Else
    18. Return False
    19. End If
    20. End Function



    VB.NET-Quellcode

    1. Public Function MapDrive() As Boolean
    2. Dim nr As New NETRESOURCE
    3. Dim cntresult As Integer
    4. Dim sDrives As String = Join(System.Environment.GetLogicalDrives, "\")
    5. If sDrives.Contains(sDrive) Then
    6. Return False
    7. End If
    8. With nr
    9. .dwType = RESOURCETYPE_DISK
    10. .lpLocalName = sDrive
    11. .lpRemoteName = sPath
    12. End With
    13. cntresult = WNetAddConnection2(nr, sPassword, sUser, 0)
    14. If cntresult = 0 Then
    15. Return True
    16. Else
    17. Return False
    18. End If
    19. End Function