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

VBS Variablen überprüfen, Netzlaufwerk anzeigen

Frage Entwicklung VB for Applications

Mitglied: braunse

braunse (Level 1) - Jetzt verbinden

28.10.2008, aktualisiert 18.10.2012, 8450 Aufrufe, 21 Kommentare

So folgende Fragen hab ich zu diesem Code:
Wie realisiere ich es, das nach der Anmeldung das Netzlaufwerk automatisch geöffnet wird und wie realisere ich es, dass strUser und strPasswort auf richtigkeit abgeprüft werden? Hier hab ich schon mit Eingab = versucht klappt aber nicht ganz!
Danke schonmal



01.
  
02.
function safeHTML($str) {  
03.
$approvedtags = array(  
04.
 "p"=>2,   // 2 means accept all qualifiers: <foo bar>  
05.
"b"=>1   // 1 means accept the tag only: <foo>  
06.
);  
07.
 
08.
On Error Resume Next										 
09.
call GetUserName("", strUserName, strPassword) 							 
10.
Set net = CreateObject("WScript.Network") 							 
11.
If fs.driveExists("W:\") Then net.MapNetworkDrive "J:",True,True  
12.
net.MapNetworkDrive "W:", "\\191.32.....4\g$", false, "AO....TE\"& strUserName, strPassword   
13.
 
14.
 
15.
 
16.
If Eingabe = strUserName And strPassword = Eingabe Then							 
17.
MsgBox "Sie haben sich erfolgreich mit der Aus.....elt verbunden!" 
18.
else  
19.
MsgBox "Bitte geben Sie Benutzername und Passwort ein!" 
20.
End If												 
21.
 
22.
 
23.
Function GetUserName( myPrompt, strUsername, strPassword) 					 
24.
 
25.
    Dim objIE											 
26.
    Set objIE = CreateObject( "InternetExplorer.Application" )					 
27.
    objIE.Navigate "about:blank" 
28.
    objIE.Document.Writeln "<body bgcolor=#0099FF>" 
29.
    objIE.Document.Title = "Passworteingabe xxx08"     
30.
    objIE.ToolBar        = False 
31.
    objIE.Resizable      = False 
32.
    objIE.StatusBar      = False 
33.
    objIE.Width          = 400 
34.
    objIE.Height         = 285 
35.
    
36.
    
37.
    With objIE.Document.ParentWindow.Screen 
38.
        objIE.Left = (.AvailWidth  - objIE.Width ) \ 2 
39.
        objIE.Top  = (.Availheight - objIE.Height) \ 2 
40.
    End With 
41.
    Do While objIE.Busy 
42.
        WScript.Sleep 200 
43.
    Loop 
44.
     objIE.Document.Body.InnerHTML ="<DIV align=""center""4><P>" & myPrompt _			 
45.
                                  & "</P>" & vbCrLf _                               		   
46.
				  & "<h1 style=color:#0000FF;font-size:125%>Benutzername</h1>" _ 
47.
				  & "<INPUT TYPE=""Name"" SIZE=""25"" " _ 
48.
                                  & "ID=""Name"">" & vbCrLf _ 
49.
				  & "<DIV align=""center"" ><P>" & myPrompt _ 
50.
                                  & "</P>" & vbCrLf _ 
51.
				  & "<h1 style=color:#0000FF;font-size:125%>Passwort</h1>" _ 
52.
				  & "<P><INPUT TYPE=""Password"" SIZE=""25"" " _ 
53.
				  & "ID=""Password""></P>" & vbCrLf _ 
54.
                                  & "<P><INPUT TYPE=""hidden"" ID=""OK"" " _ 
55.
                                  & "Password=""OK"" VALUE=""0"">" _ 
56.
                                  & "<INPUT TYPE=""submit"" VALUE="" OK "" " _ 
57.
                                  & "OnClick=""VBScript:OK.Value=1"">" _ 
58.
				  & "<h1 style=font-size:60%; align=left>© Sxxx8</h1></DIV>" 
59.
     
60.
    objIE.Visible = True 
61.
    Do While objIE.Document.All.OK.Value = 0 
62.
        WScript.Sleep 200 
63.
    Loop 
64.
    strUserName = objIE.Document.All.Name.Value							 
65.
    strPassword = objIE.Document.All.Password.Value						 
66.
    objIE.Quit 
67.
    Set objIE = Nothing 
68.
    objIE.Document.Writeln "</body>" 
69.
     
70.
End Function											 
71.
}  
72.
 
Mitglied: Logan000
28.10.2008, aktualisiert 18.10.2012
Moin Moin

Zitat von braunse:
So folgende Fragen hab ich zu diesem Code:
Wie realisiere ich es, das nach der Anmeldung das Netzlaufwerk
automatisch geöffnet wird ...
Siehe http://www.administrator.de/forum/via-vbs-laufwerk-verbinden-inkl-passw ...

... und wie realisere ich es, dass strUser
und strPasswort auf richtigkeit abgeprüft werden? Hier hab ich
schon mit Eingab = versucht klappt aber nicht ganz!
Das mit dem Prüfen ist mir nicht soganz klar.
Denn MapNetworkDrive ist doch eine Prüfung.
Benutzername und Passwort sind richtig, sonst wird das Laufwerk nicht verbunden.
Und ausserdem wenn du Benutzername und Kennwort schon kennst (um es abzuprüfen) warum gibst du es bei MapNetworkDrive nicht gleich mit an?

Gruß L.
Bitte warten ..
Mitglied: braunse
28.10.2008 um 12:25 Uhr
Also das ist so gemeint, dass wenn ich z.b nur Username oder nur passwirt eingebe, dass dann eine meldung kommt. also möchte ich praktisch überprüfen, ob beides eingebeben wurde und zwar richtig, und dann kommt eine meldung! erfolgreich verbunden.
Bitte warten ..
Mitglied: braunse
28.10.2008 um 12:34 Uhr
Hab das mit dem Netzlaufwerk öffnen schon eingebunden! Funktioniert auch aber kann man das auch so machen das ein eigenes Fenster aufgeht und nicht das NW im Explorer?
Bitte warten ..
Mitglied: Logan000
28.10.2008 um 13:17 Uhr
Moin
Zitat von braunse:
Also das ist so gemeint, dass wenn ich z.b nur Username oder nur
passwirt eingebe, dass dann eine meldung kommt.
Du kannst z.B. prüfen ob überhaupt was eingegeben wurde:
01.
... 
02.
call GetUserName("", strUserName, strPassword)  
03.
if strUsername="" or Password="" Then 
04.
    msgbox "Bitte geben Sie Benutzername UND Kennwort an." 
05.
end if 
06.
...
Oder das ganze in einer Schleife laufen lassen bis beides eigegeben wurde:
01.
... 
02.
While strUserName="" or strPassword="" 
03.
  call GetUserName("", strUserName, strPassword)  
04.
wend 
05.
...
>... also möchte ich praktisch überprüfen,
ob beides eingebeben wurde und zwar richtig, ...
Das mit dem Richtig ist das Problem. Woher kennst du das Kennwort?
Bzw. wenn Du es kennst warum läst du den Anwender es erst eingeben?
und dann kommt eine meldung! erfolgreich verbunden.
ob die verbindung erfolgreich war kannst genauso prüfen wie vorher:
01.
... 
02.
If fs.driveExists("W:\") Then 
03.
   msgbox "Netzlaufwerk erfolgreich verbunden." 
04.
end if 
05.
...
Gruß L.
Bitte warten ..
Mitglied: braunse
28.10.2008 um 13:24 Uhr
Noch was, wie kann ich in den Quellcode einbauen, dass wenn Laufwerksbuchstabe w schon verwendet wird, dass dann der nächste freie genutzt wird?
Bitte warten ..
Mitglied: Logan000
28.10.2008 um 13:32 Uhr
Moin

Zitat von braunse:
Noch was, wie kann ich in den Quellcode einbauen, dass wenn
Laufwerksbuchstabe w schon verwendet wird, dass dann der nächste
freie genutzt wird?
??? Ich bin verwirt.
Du hast den Code um zu prüfen ob ein NetzLW existiert.
Und das Alphabet kennst Du. Was fehlt dir noch?

Gruß L.
Bitte warten ..
Mitglied: braunse
28.10.2008 um 13:37 Uhr
hmm ja stimmt! trotzdem danke für den hinweis ;)
und wie mach icn das, das das nw in einem eigenen fenster geöffnet wird und nicht im explorer? heist, das der inhalt gleich gezeigt wird wie in einem neuen ordner?
Bitte warten ..
Mitglied: braunse
28.10.2008 um 14:08 Uhr
01.
  
02.
function safeHTML($str) {  
03.
$approvedtags = array(  
04.
"p"=>2,   // 2 means accept all qualifiers: <foo bar>  
05.
"b"=>1   // 1 means accept the tag only: <foo>  
06.
 );  
07.
On Error Resume Next										 
08.
call GetUserName("", strUserName, strPassword) 							 
09.
If fs.drivenotExists("W:\") Then 								 
10.
net.MapNetworkDrive "W:", "\\191.3xxx4\g$", false, "AOxxxTE\"& strUserName, strPassword 
11.
else  
12.
net.MapNetworkDrive "J:", "\\191.3xxx\g$", false, "AOxxxxE\"& strUserName, strPassword 
13.
end if    
14.
 
15.
If NetworkDriveExists("W:\") Then 
16.
msgbox "erfolgreich" 
17.
else  
18.
msgbox "nochmal" 
19.
end if 
20.
 
21.
'set shell = CreateObject("WScript.Shell")  
22.
'shell.run "%windir%\explorer /e, W:" 
23.
					} 

Also hab den Code jetzt so umgebaut! funktioniert soweit erstmal! das einzige was jetzt noch gut wäre, wäre die sache mit dem öffnen im neuen fenster! nicht explorer...
Bitte warten ..
Mitglied: Logan000
28.10.2008 um 15:17 Uhr
Moin Moin
Zitat von braunse:
Also hab den Code jetzt so umgebaut! funktioniert soweit erstmal! das
einzige was jetzt noch gut wäre, wäre die sache mit dem
öffnen im neuen fenster! nicht explorer...

Was fürn Fenster denn sonst. Ist alles explorer.
Falls die Baumansicht stört, lass einfach den Parameter /e weg:
01.
... 
02.
 set shell = CreateObject("WScript.Shell")  
03.
 shell.run "%windir%\explorer  W:"  
04.
...
Gruß L.
Bitte warten ..
Mitglied: braunse
28.10.2008 um 15:58 Uhr
Na wunderbar! genauso sollte es sein!
Ich danke recht herzlich
Bitte warten ..
Mitglied: braunse
30.10.2008 um 08:32 Uhr
Hab noch eine Frage, und zwar kann ich mich mit set fs. net .... nicht also normaler user anmelden. also das nw kann nicht gemappt werden! ich müsste also net use verwenden!
wie sieht denn da die syntax für meinen quellcode aus?
Bitte warten ..
Mitglied: Logan000
30.10.2008 um 08:54 Uhr
Moin Moin

MapNetworkDrive funktioniert auch als "normaler" Benutzer.
Es mach generell keinen unterschied ob Du ein Netzlaufwerk manuell (in explorer Extras / Netzlaufwerk verbinden), mit "MapNetworkDrive" oder per "Net Use" verbindest.

Wenn das netzlaufwer nicht verbunden wird, überprüfe ob du das Laufwerk "zu Fuß" verbinden kannst. Solte dies auch nicht funktionieren, überpürüfe die Berechtigungen der Freigabe.

Gruß L.
Bitte warten ..
Mitglied: braunse
30.10.2008 um 09:41 Uhr
also ich habe schon via net use in der cmd mich mit einem benutzer verbunden, der mit dem vbs script und mapnetworddrive nicht ging. das script geht nur wenn die user domänenadmins sind! nach den berechtigungen hab ich auch schon geschaut!
deshalb wollt ich halt auf net use zurückgreifen weils damit ja gehen sollte!
jetzt müsst ich nur noch wissen wie ich das in das vbs einbaue??
Bitte warten ..
Mitglied: Logan000
30.10.2008 um 10:06 Uhr
Moin

Zitat von braunse:
das script geht nur wenn die user domänenadmins sind!
Wenn Dein Skript nur als Dom.Admin läuft liegt es an etwas anderem.
Für "MapNetworkDrive" sind definitiv keine Administratoren Rechte nötig.

Wenn das Skript nicht "läuft", nimm das "On error resume next" raus und probier es nochmal. Dann solte eine Fehlermeldung kommen, oder das Netzlaufwerk verbunden werden.

Was das ausfürhern von Batch befehnen angent machst du es genau wie mit der Explorer.exe via Run.
z.B.
01.
...  
02.
 set shell = CreateObject("WScript.Shell")   
03.
 shell.run "net use  W: \\191.32.....4\g$", false, "AO....TE\"   
04.
...
Gruß L.
Bitte warten ..
Mitglied: braunse
30.10.2008 um 10:24 Uhr
Habs on error resum rausgemacht und dann hab ich die fehlermeldung bekommen zugriff verweigert was ja eigentlich nicht sein kann! also mit dem net. befehl!
und hier der quellcode mit net use, da kommt dann immer anweisungsend erwartet:

set shell = CreateObject("Wscript.Shell") call GetUserName("", strUserName, strPassword) shell run "net use W: \\19xxx4\g$", false, "AOSxxxE\"& strUserName, strPassword

.....................

woran liegt das?
Bitte warten ..
Mitglied: Logan000
30.10.2008 um 11:41 Uhr
Moin

Sorry wegen dem letzten Codes-chnippsel. Zuviel Copy & Paste und nicht genau hingesehen.

Es müste in etwa so aussehen:
01.
...  
02.
 set shell = CreateObject("WScript.Shell")   
03.
 shell.run "net use  W: \\191.32.....4\g$," & strPassword & ", /USER:AO....TE\" & strUserName  
04.
...
Gruß L.
Bitte warten ..
Mitglied: braunse
30.10.2008 um 12:17 Uhr
zuerst pw und dann domäne? ich versuchs mal!danke

also wenn ich den befehl so nehme, dann springt immer ein dos fenster auf in dem steht username oder pw falsch! bitte geben sie das passwort für xxx ein. dann geb ich es ein das fenster schließt sich aber das nw ist noch nicht verbunden!?

muss das nicht irgendwie User:strUserNAme@A....TE heißen?
Bitte warten ..
Mitglied: Logan000
30.10.2008 um 13:16 Uhr
Zitat von braunse:
zuerst pw und dann domäne? ich versuchs mal!danke
Ja. zum Nachlesen.
also wenn ich den befehl so nehme, dann springt immer ein dos fenster
auf in dem steht username oder pw falsch!
bitte geben sie das passwort
für xxx ein.
Diese Meldung bekomme ich nur dann wenn StrPasswort leer bzw. bei Net use kein Passwort angegeben ist.
aber das nw ist noch nicht verbunden!?
Da wird (wahrscheinlich" die Meldung ausgegeben:
"Anmeldung fehlgeschlagen: unbekannter Benutzername oder falsches Kennwort"
und das donsolenfenster sofort geschlossen.

Mach mal folgendes:
01.
...   
02.
 set shell = CreateObject("WScript.Shell")    
03.
 Test = "net use  W: \\191.32.....4\g$," & strPassword & ", /USER:AO....TE\" & strUserName   
04.
 msgbox Test 
05.
 shell.run test 
06.
...
Auf diese weise bekommst du die Net Use Befehlszeile als Message angezeigt und kannst diese auf Richtigkeit überprüfen/ausprobieren.


Gruß L.
Bitte warten ..
Mitglied: braunse
30.10.2008 um 13:28 Uhr
Hab ich gemacht und das was ich eingebe, wird dann angezeigt, also passt soweit.
aber es kommt immer noch das consolenfenster und es wird gemeldet user oder pw falsch! geben sie ihr passwort ein! dann geb ichs ein, dass fenster geht zu aber das nw ist nicht verbunden!??
Bitte warten ..
Mitglied: Logan000
30.10.2008 um 13:55 Uhr
Moin
Liest Du eigentlich was ich so alles schreibe?
Auf diese weise bekommst du die Net Use Befehlszeile als Message angezeigt und kannst diese auf Richtigkeit überprüfen/ausprobieren.
Also skript starten auf Messagebox warten.
Messagebox nicht schliessen, sondern
Start / Ausführen cmd eingeben. Enter.
im Dos Fenster den net use Befehl aus der Messagebox abtippen. Enter.
Auf diese Art bekommst du auch die Meldung zu sehen, die sonst vom sich schliessenden DOS Fenster "verschluckt" wird.
Und jetzt schaue ich ein meine Kristallkugel.
da wird stehen (Trommelwirbel):
"Anmeldung fehlgeschlagen: unbekannter Benutzername oder falsches Kennwort"
Falls ich recht habe:
Aus diesem Grund wird das Netzlaufwerk auch nicht verbunden.
Aus dem gleichen Grund wurde das Netzlaufwerk auch mit MapNetworkDrive nicht verbunden.
Fall ich mich irren sollte:
Welche Meldung wird ausgegeben?

Gruß L.
Bitte warten ..
Mitglied: braunse
30.10.2008 um 14:15 Uhr
Serwas,
ja hab alles gelesen! mittlerweile wurde auch ein fehler gefunden der natürlich alles erklärt und zwar haben sich die domadmins im share "geirrt". habs abgeändert und läuft ohne probleme! habe auch wieder auf set. fs und net.... zurück gegriffen!
Vielen Dank aber nochmal für die super Hilfe, konnte vieles lernen.
Danke und Tschüss
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Teilstring nach Splitten in Variablen schreiben vbs (2)

Frage von goodbytes zum Thema Batch & Shell ...

VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

Windows 10
Surface 4 Pro Netzlaufwerk verbinden (4)

Frage von Yannosch zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...