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!!
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
- Private Function connect() As Boolean
- Dim Drive As New System.IO.DriveInfo(sDrive)
- Dim p As New Process()
- With p.StartInfo
- .FileName = "net"
- If sUser.Length > 0 Then
- .Arguments = String.Format("use {0} {1} /user:{2} {3}", sDrive, sPath, sUser, sPassword)
- Else
- .Arguments = String.Format("use {0} {1}", sDrive, sPath)
- End If
- .UseShellExecute = False
- .CreateNoWindow = True
- End With
- p.Start()
- If Drive.IsReady Then
- Return True
- Else
- Return False
- End If
- End Function
VB.NET-Quellcode
- Public Function MapDrive() As Boolean
- Dim nr As New NETRESOURCE
- Dim cntresult As Integer
- Dim sDrives As String = Join(System.Environment.GetLogicalDrives, "\")
- If sDrives.Contains(sDrive) Then
- Return False
- End If
- With nr
- .dwType = RESOURCETYPE_DISK
- .lpLocalName = sDrive
- .lpRemoteName = sPath
- End With
- cntresult = WNetAddConnection2(nr, sPassword, sUser, 0)
- If cntresult = 0 Then
- Return True
- Else
- Return False
- End If
- End Function