Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VB Netzlaufwerk verbinden und User begrüßen

Frage Entwicklung VB for Applications

Mitglied: h4zz4rd

h4zz4rd (Level 1) - Jetzt verbinden

27.07.2007, aktualisiert 06.08.2007, 14816 Aufrufe, 7 Kommentare

Hallo ihr Lieben,
ich habe folgendes Problem.
Ich habe die Aufgabe bekommen, ein Anmeldescript unter VB zu erstellen, in dem der jeweils angemeldete User begrüßt wird und gleichzeitig ein Netzlaufwerk verbunden wird. Das Script soll auf einem XP Client ausgeführt werden. Das Netzlaufwerk befindet sich aúf einem virtuellen Windows 2003 Server. Da ich leider absolut keine Ahnung von VB habe, und Google auch nichts wirklich passendes für mein Problem bietet, hoffe ich auf eure Hilfe

Danke und liebe Grüße,
h4zZ4rd
Mitglied: Sylvio
27.07.2007 um 14:51 Uhr
Hi,

Versuchs mal damit
01.
On Error Resume Next 
02.
 
03.
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2") 
04.
Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem") 
05.
For Each objComputer in colItems 
06.
    UN = objComputer.UserName  
07.
Next 
08.
    Msgbox "Hello " & UN ,  vbOKOnly, "Welcome" 
09.
 
10.
Set objshell = Wscript.CreateObject("WScript.Shell") 
11.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
12.
objshell.Run("net use k: /d"),0 'delete exsisting map 
13.
objshell.Run("net use k: \\servername\share"),0
wobei k: hier den Laufwerksbuchstaben darstellt.


Gruß,
Sylvio
Bitte warten ..
Mitglied: bastla
27.07.2007 um 15:57 Uhr
Hallo h4zz4rd und willkommen im Forum!

Als Alternative zu Sylvio's Vorschlag könntest Du es auch ohne die Verwendung der CMD-Shell probieren:
01.
On Error Resume Next 
02.
Set WshNetwork = CreateObject("WScript.Network") 
03.
MsgBox "Hello " & WshNetwork.UserName & " !", vbOKOnly, "Welcome" 
04.
WshNetwork.RemoveNetworkDrive "K:" 
05.
WshNetwork.MapNetworkDrive "K:", "\\servername\share"
Das "On Error Resume Next"-Statement brauchst Du vor allem für den Fall, dass K: noch nicht mit einem Netzlaufwerk verbunden ist (und daher auch nicht getrennt werden kann).

Falls Du das sauberer lösen wolltest, könntest Du die verbundenen Laufwerke abfragen:
01.
Set oDrives = WshNetwork.EnumNetworkDrives 
02.
For i = 0 to oDrives.Count - 1 Step 2 
03.
	If oDrives.Item(i) = "K:" Then WshNetwork.RemoveNetworkDrive "K:" 
04.
Next
Grüße
bastla
Bitte warten ..
Mitglied: problemsolver
27.07.2007 um 17:21 Uhr
Hi bastla!!!

was man so nebenbei so alles Schönes sieht hier... ;)
Danke sehr für deinen Beitrag! *als-kleines-licht-den-kopf-senk* *fg*

Bei uns ist es teilweise nämlich so, dass die Anmeldeskripte recht lange dauern. (.bat Scripte)
Es wurde immer so gemacht, dass mit net use * /delete /yes alle Laufwerke getrennt worden sind und dann wieder verbunden worden sind.

So wie Du es hier löst, ist es wahrscheinlich eine ganze Ecke schneller!!! (oooder?)

Interessehalber: Kennst Du noch eine Möglichkeit per Batch-Datei herauszufinden, ob ein Laufwerk K: (zum Beispiel) mit einer Ressource (nehmen wir mal "set verbindmich=\\server\meineressource$") noch verbunden ist? (Durch eine Abfrage per REG oder irgendetwas anderem?)
Auf Grundlage dieser könnte man die Anmeldeskripte schon genug optimieren ohne immer wieder alles erneut zu verbinden...

Schon mal danke im Voraus!

Lieben Gruß

Markus
Bitte warten ..
Mitglied: bastla
27.07.2007 um 19:31 Uhr
Hallo problemsolver!

Freut mich, wenn Du Interessantes gefunden hast ...

So wie Du es hier löst, ist es wahrscheinlich eine ganze Ecke schneller!!! (oooder?)
Das Script oben ist eigentlich eine Entsprechung zu Eurer Vorgangsweise (trennen / neu verbinden), also sollte es in der Form nicht wirklich schneller sein. Du könntest das Ganze allerdings tatsächlich umkehren und die Abfrage dazu benutzen, nur dann zu verbinden, wenn eben keine Laufwerksverbindung (zur richtigen Freigabe) besteht.
Eine Abfrage zu diesem Zweck in Batch könnte (für mehrere Netzlaufwerke) etwa so aussehen:
01.
@echo off & setlocal 
02.
for %%i in ("K:\\Server\Share4K" "L:\\Server\Share4L" "X:\\Server\Share4X") do for /f "tokens=1* delims=:" %%d in ('echo %%~i') do call :Connect %%d: "%%e" 
03.
goto :eof 
04.
:Connect 
05.
set conn= 
06.
for /f "tokens=3" %%i in ('net use^|findstr /i "%1"') do set "conn=%%i" 
07.
if /i "%conn%"==%2 goto :eof 
08.
if defined conn net use %1 /d>nul 
09.
net use %1 %2>nul 
10.
goto :eof
Wenn bereits richtig verbunden, lässt der Batch die Verbindung bestehen, wenn verbunden, allerdings nicht mit der richtigen Freigabe, wird getrennt und neu verbunden und wenn noch nicht verbunden wird natürlich gleichfalls "net use ..." ausgeführt.

Aber ob das etwas bringt ...

Grüße
bastla
Bitte warten ..
Mitglied: h4zz4rd
30.07.2007 um 09:07 Uhr
Hallo und danke für die Antwort(en)
Werd das heute morgen gleich mal ausprobieren und schauen, ob ich das auf die Reihe bekomme :P Melde mich dann später nochmal, um Bericht zu erstatten...

Liebe Grüße,
h4zZ4rd
Bitte warten ..
Mitglied: h4zz4rd
30.07.2007 um 09:27 Uhr
Huhu,
da bin ich schon wieder.
Vielen vielen Dank, das klappt ja wunderbar ;)

Nur noch eine kurze Frage zum Schluss:

Set WshNetwork = CreateObject("WScript.Network") --> Was bedeutet diese Zeile ganz genau? Die restlichen weiß ich, bzw konnte man sich denken, nur die Definition dieser nicht so ganz...

Wäre super, falls mir jmd diese Frage noch beantworten könnte.

Liebe Grüße,
h4zZ4rd

P.S. Achso, kann man irgendwie Kommentare einfügen? Habe die VBS mit dem Editor erstellt.
Ciaociao
Bitte warten ..
Mitglied: bastla
06.08.2007 um 16:18 Uhr
Hallo h4zz4rd!

Mit urlaubsbedingter Verspätung zum WshNetwork-Objekt den entsprechenden Hilfe-Text:

Bietet Zugriff auf die freigegebenen Ressourcen des Netzwerkes, mit dem der Computer verbunden ist.

Erstellen Sie ein WshNetwork-Objekt, wenn eine Verbindung mit Netzwerkfreigaben und Netzwerkdruckern hergestellt oder getrennt werden soll, wenn Netzwerkfreigaben zugeordnet oder entfernt werden sollen oder auf Informationen zu einem Benutzer des Netzwerkes zugegriffen werden soll.

Eigenschaften
ComputerName-Eigenschaft | UserDomain-Eigenschaft | UserName-Eigenschaft

Methoden
AddWindowsPrinterConnection-Methode | AddPrinterConnection-Methode | EnumNetworkDrives-Methode | EnumPrinterConnections-Methode | MapNetworkDrive-Methode | RemoveNetworkDrive-Methode | RemovePrinterConnection-Methode | SetDefaultPrinter-Methode

Kommentare können nach einem Apostroph eingefügt werden, also etwa
01.
WshNetwork.RemoveNetworkDrive "K:" 'Netzlaufwerk K: trennen
Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
SAN, NAS, DAS
Netzlaufwerk verbinden - komisches Verhalten (15)

Frage von duschgas zum Thema SAN, NAS, DAS ...

VB for Applications
gelöst VB Netzlaufwerk trennen und mappen klappt nicht so richtig (21)

Frage von Dr.Cornwallis zum Thema VB for Applications ...

Windows Userverwaltung
gelöst Gruppenrichtlinie Netzlaufwerk verbinden und direkt Verknüpfung darauf erstellen (11)

Frage von Lars1992 zum Thema Windows Userverwaltung ...

Windows Netzwerk
Netzlaufwerk offline verfügbar für Mac

Frage von PharIT zum Thema Windows Netzwerk ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (14)

Frage von SarekHL zum Thema DSL, VDSL ...