Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

Net use in VB

Wiesner / 11 Antworten / Flachansicht Nickles

Ich verbinde mich derzeit zu meinen wichtigen Netzwerk Shares mit einer Batchdatei und dem Befehl: net use \\PCname /USER:username@domain password


Da in der Batchdatei das Passwort in Klartext steht frage ich mich ob es da nicht möglich ist selbiges in eine VB-Exe zu Packen. Mein Problem ist ich finde kein Codebeispiel wie ich "net use" in VB mache.


Könnt Ihr mir da weiterhelfen?


Thanks


Mike

bei Antwort benachrichtigen
Banale Lösung HADU
REPI Wiesner „Net use in VB“
Optionen

Hier mal was als VB-Script


'
' MapDrives.VBS
'
' WSH ab Version 2.0 (5.1)
' Abbilden von festen Netzfreigaben auf lokale Laufwerksbuchstaben
' für W2000
'

'
' Variablen
'

Option Explicit
On Error Resume Next

Dim WSHFile, WSHShell, WSHNetwork, Command, ErrorCode
Dim MakroName, Version, LogProg, LogText
Dim Name, FName
Dim Text, Titel, Stil, Ergebnis
Dim LocalDrive(), NetDriveShare(), NetDriveShareText()
Dim LW, LWFlag, LWStatus
Dim ObjArgs, Arg, Argument(), i
Dim CRLF, TAB, x

CRLF = vbCRLF
TAB = vbTAB

' WSHFile Object.
Set WSHFile = CreateObject("Scripting.FileSystemObject")

' WSHShell Object.
Set WSHShell = WScript.CreateObject("WScript.Shell")

' WSHNetwork Object.
Set WSHNetwork = WScript.CreateObject("WScript.Network")

' Variablen vorbelegen.
Name = WScript.ScriptName
FName = WScript.ScriptFullName
LogProg = Left(FName, InstrRev(FName, "\")) & "Log.vbs"

MakroName = "'" & Left(Name, InstrRev(Name, ".") - 1) & "'"
Version = "V1.2"

' Bei Änderungen auch hier anpassen.
ReDim Preserve LocalDrive(4), NetDriveShare(4), NetDriveText(4)

LocalDrive(0) = "k:"
NetDriveShare(0) = "\\tgt_dc1\d"
NetDriveText(0) = "d: auf tgt_dc1"

LocalDrive(1) = "t:"
NetDriveShare(1) = "\\tgt_dc1\cd-rom"
NetDriveText(1) = "cd-rom auf tgt_dc1"

LocalDrive(2) = "u:"
NetDriveShare(2) = "\\tgt_dc1\bereiche"
NetDriveText(2) = "bereiche auf tgt_dc1"

LocalDrive(3) = "x:"
NetDriveShare(3) = "\\tgt_dc1\profiles"
NetDriveText(3) = "profiles auf tgt_dc1"

LocalDrive(4) = "y:"
NetDriveShare(4) = "\\tgt_dc1\users"
NetDriveText(4) = "users auf tgt_dc1"

If (WSHFile.FileExists(LogProg)) Then
' Information protokollieren.
LogText = "4" & Space(1) & Chr(34) & MakroName & " - Start (" & FName & ")" & Chr(34)
Command = LogProg & Space(1) & LogText
ErrorCode = WSHShell.Run(Command, 1, True)
End If

' Fehlerroutine.
Sub ErrorCheck(ErrorCode)
Select Case ErrorCode
Case 0
' kein Fehler, Durchlauf O.K. !!!

Case - 2147024829
Text = "Netzwerkressource " & NetDriveShare(x) & CRLF
Text = Text & "existiert nicht - keine Verbindung möglich !"
Titel = MakroName & " Routine " & Version
Stil = vbCritical + vbOkOnly
WSHShell.Popup Text, 5, Titel, Stil

Case - 2147024811
Text = "Laufwerk " & LocalDrive(x)
Text = Text & "existiert bereits - keine Verbindung möglich !"
Titel = MakroName & " Routine " & Version
Stil = vbCritical + vbOkOnly
WSHShell.Popup Text, 5, Titel, Stil

Case Else
Text = "Fehlercode: " & CStr(ErrorCode) & CRLF
Text = Text & "Bitte überprüfen !"
Titel = MakroName & " Routine " & Version
Stil = vbCritical + vbOkOnly
WSHShell.Popup Text, 5, Titel, Stil

End Select
End Sub

' Sub für Endemeldung im Makro.
Sub EndeBox()
' Ausschriften nur ohne Argument.
If IsEmpty(Arg) Then
Text = "Ende - Mapping diverse Netzfreigaben !!!"
' Text = Text & Space(5) & "(" & cStr(Date) & " - " & cStr(Time) & ")"
Titel = MakroName & " Routine " & Version
Stil = vbInformation + vbOkOnly
WSHShell.Popup Text, 5, Titel, Stil
End If

If (WSHFile.FileExists(LogProg)) Then
' Information protokollieren.
LogText = "4" & Space(1) & Chr(34) & MakroName & " - Ende (" & FName & ")" & Chr(34)
Command = LogProg & Space(1) & LogText
ErrorCode = WSHShell.Run(Command, 1, True)
End If

' Object trennen.
WScript.DisconnectObject WSHShell
Set WSHShell = Nothing

WScript.DisconnectObject WSHFile
Set WSHFile = Nothing

WScript.DisconnectObject WSHNetwork
Set WSHNetwork = Nothing

WScript.DisconnectObject ObjArgs
Set ObjArgs = Nothing

WScript.DisconnectObject LW
Set LW = Nothing

WScript.Quit
End Sub

' Beginn Main.
' Argument(e) auslesen.
Set ObjArgs = Wscript.Arguments
For i = 0 To ObjArgs.Count - 1
ReDim Preserve Argument(i)
Argument(i) = ObjArgs(i)
Next

' Erstes Argument herausfiltern, wenn gesetzt.
If (i > 0) Then Arg = UCase(Argument(0)) End If

LWFlag = 1
Text = "Folgende Freigaben wurden dauerhaft verbunden:" & CRLF & CRLF
For x=0 To UBound(LocalDrive, 1)
If (WSHFile.DriveExists(LocalDrive(x))) Then
Set LW = WSHFile.GetDrive(LocalDrive(x))
If (LW.ShareName = "") Then
' dann kein Netzlaufwerk vorhanden, kann also
' auch nicht getrennt werden.
LWFlag = 0
Else
' Laufwerk trennen, wenn schon verbunden, auch wenn diese
' Freigabe momentan aktiv ist und aus Benutzerprofil entfernen.
WSHNetwork.RemoveNetworkDrive LocalDrive(x), True, True
LWFlag = 1
End If
End If

' Wenn Variable auf 0 gesetzt erfolgt kein erneutes Verbinden.
If LWFlag Then
' Laufwerk dauerhaft mit Share verbinden,
' kann auch noch über Benutzername und Passwort verbunden werden (z.B. W2000).
WSHNetwork.MapNetworkDrive LocalDrive(x), NetDriveShare(x), True

' Auftretende Fehler anzeigen.
ErrorCheck(Err.Number)

' Test ob Laufwerk funktionsfähig.
Set LW = WSHFile.GetDrive(LocalDrive(x))
If LW.IsReady Then LWStatus = "up" Else LWStatus = "down" End If
Else
LWStatus = "failed"
End If

Text = Text & LocalDrive(x) & Space(3) & NetDriveShare(x) & CRLF
Text = Text & Space(6) & "--> " & NetDriveText(x) & TAB & TAB & LWSTATUS & CRLF & CRLF

Next

' Ausschriften nur ohne Argument.
If IsEmpty(Arg) Then
Titel = "Mapping Drive's"
Stil = vbInformation + vbOkOnly
WSHShell.Popup Text, 15, Titel, Stil
End If

EndeBox

Es empfiehlt sich immer, etwas Linux im Hause zu haben.
bei Antwort benachrichtigen