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

Netzlaufwerk mit Benutzer Abfrage und PW verbinden

Frage Entwicklung Batch & Shell

Mitglied: Nagus

Nagus (Level 2) - Jetzt verbinden

19.08.2010, aktualisiert 20.08.2010, 5673 Aufrufe, 7 Kommentare

Moin Zusammen,
ich habe folgendes Problem:
Die GFs müssen an einem Buchhaltungsarbeitsplatz die Zahlungen freigeben. Dies soll jeweils im Kontext des angemeldeten Users passieren. Die Schlüsselsdatei liegt aber auf dem persönlichen Laufwerk des Users, da dies im Programmpfad eingestellt ist. (Sfirm in einer Citrix Umgebung).

Man könnte das ganze ja ganz profan über zwei drei Batch-Scripte machen, aber das ist natürlich nicht so schick
und da die Passworteingaben völlig unsichtbar ablaufen, auch nicht Benutzer freundlich. Deswegen meine Idee: WSH Shell und da hänge ich nun
Deswegen: HILFE ...

Die Anforderungen:
1. Benutzerabfrage
2. Maskiertes Passwort
3. Es muss ein Laufwerk getrennt werden und ein anderes verbunden werden

Gefunden habe ich bereits:
Benutzername und Passwortabfrage mit dem IE

01.
' This function uses Internet Explorer to 
02.
' create a dialog and prompt for a password. 
03.
   Dim objIE 
04.
   ' Create an IE object (I guess you'll have to) 
05.
   Set objIE = CreateObject( "InternetExplorer.Application" ) 
06.
   ' specify  the IE  settings 
07.
   objIE.Navigate "about:blank" 
08.
   objIE.Document.Title = "Benutzer wechsel" 
09.
   objIE.ToolBar        = False 
10.
   objIE.StatusBar      = False 
11.
   objIE.Resizable      = False 
12.
   objIE.Width          = 400 
13.
   objIE.Height         = 300 
14.
   ' Center the dialog window on the screen (front and center!) 
15.
   With objIE.Document.ParentWindow.Screen 
16.
       objIE.Left = (.AvailWidth  - objIE.Width ) \ 2 
17.
       objIE.Top  = (.Availheight - objIE.Height) \ 2 
18.
   End With 
19.
 
20.
    ' Insert the HTML code to prompt for your super secret password' 
21.
    objIE.Document.Body.InnerHTML = "<DIV align='center'><P>" & myPrompt _ 
22.
                                & "</P>" & vbCrLf _ 
23.
                                & "<div align='center'><font color='red'><P>" & myMessage _ 
24.
                                & "</P></font>" & vbCrLf _ 
25.
	                            & "<P><INPUT TYPE='input' SIZE= '20'" _ 
26.
                                & "ID='Username'/></P>" & vbCrLf _^^ 
27.
                                & "<P><INPUT TYPE='password' SIZE= '20'" _ 
28.
                                & "ID='Password'></P>" & vbCrLf _ 
29.
                                & "<P><INPUT TYPE='hidden' ID='OK'" _ 
30.
                                & "NAME='OK' VALUE='0'/></p>" _ 
31.
                                & "<INPUT TYPE='submit' VALUE='OK'" _ 
32.
                                & "OnClick='VBScript:OK.Value=1'/></P></DIV>" 
33.
 
34.
    ' Make the window visible (If you must *sigh*) 
35.
    objIE.Visible = True 
36.
 
37.
    ' Wait till the OK button has been clicked (uh huh...) 
38.
    Do While 0 = objIE.Document.All.OK.Value 
39.
    	Wscript.Sleep 250 
40.
    Loop 
41.
 
42.
	' Read the password from the dialog window (evil thoughts on this method) 
43.
	getUsername = objIE.Document.All.Username.Value 
44.
	getPassword = objIE.Document.All.Password.Value 
45.
 
46.
    ' Close and release the object 
47.
    objIE.Quit 
48.
    Set objIE = Nothing
Das WSH Script für das Laufwerk verbinden sieht dann etwa so aus:

Netzlaufwerk verbinden

01.
    Set wn = WScript.CreateObject("WScript.Network") 
02.
    'erst trennen 
03.
    wn.RemoveNetworkDrive "U:", True, True 
04.
    'dann mappen 
05.
    wn.MapNetworkDrive "U:", "\\192.168.2.5\Username", False, "Username", "Password" 
06.
   msgbox("Done.")
1. Parameter: Laufwerksbucstabe
2. Parameter: Zieladresse
3. Parameter: Wiederverbindung beim nächsten Systemstart (true/ false)
4. Parameter: User
5. Parameter: Password
Wie bekomme ich nun das Passwort und die Benutzerkennung in das WSH Script? Hier lassen mich meine geringen Programierkentnisse im Stich.

Wer kann mir helfen, oder hat eine bessere Lösung?

Gruß Nagus
Mitglied: bastla
19.08.2010 um 14:39 Uhr
Hallo Nagus!

Wenn beides bereits funktioniert, könnte der letzte Teil des Scripts (ungetestet) einfach so aussehen:
01.
' Read the password from the dialog window (evil thoughts on this method) 
02.
getUsername = objIE.Document.All.Username.Value 
03.
getPassword = objIE.Document.All.Password.Value 
04.
 
05.
Set wn = WScript.CreateObject("WScript.Network") 
06.
wn.MapNetworkDrive "t:", "\\192.168.2.5\geheim", False, getUsername, getPassword 
07.
 
08.
' Close and release the object 
09.
objIE.Quit 
10.
Set objIE = Nothing 
11.
 
12.
msgbox "Done."
Grüße
bastla

P.S.: Scripts bitte als "Code" formatiert posten ...
Bitte warten ..
Mitglied: Nagus
20.08.2010 um 10:22 Uhr
Hi bastla,
erst mal Danke für die Hilfe. Leider funktioniert das nicht. grrrr

Der erste Teil des Scriptes ist ja html und steuert den IE. Dann starte ich die WSH Shell hier muss ich doch die Variablen mit & getUsername & übernehmen - richtig? Alles in einer vbs datei. Auch ok?

Wenn ich das dann zusammen bastel, sieht das so aus:

01.
' Read the password from the dialog window (evil thoughts on this method) 
02.
getUsername = objIE.Document.All.Username.Value 
03.
getPassword = objIE.Document.All.Password.Value 
04.
 
05.
Set wn = WScript.CreateObject("WScript.Network") 
06.
'Erst das Laufwerk trennen 
07.
wn.RemoveNetworkDrive "U:", True, True 
08.
 
09.
'und jetzt mappen und hier steckt jetzt wohl der Wurm drin -.- 
10.
wn.MapNetworkDrive "U:", "\\FS-101-185\daten\Docs\**" & getUsername &""**, False, getUsername, getPassword  
11.
 
12.
' Close and release the object 
13.
objIE.Quit 
14.
Set objIE = Nothing 
15.
  
16.
msgbox "Done."
Was mache ich falsch? (jaja - alles - ich weiß ...

P.S.: Scripts bitte als "Code" formatiert posten ...
ich hoffe so isses nu richtig - habe leider keine Vorschau.

Gruß
Nagus
Bitte warten ..
Mitglied: bastla
20.08.2010 um 12:13 Uhr
Hallo Nagus!

Gemeint war:
01.
' This function uses Internet Explorer to 
02.
' create a dialog and prompt for a password. 
03.
   Dim objIE 
04.
   ' Create an IE object (I guess you'll have to) 
05.
   Set objIE = CreateObject( "InternetExplorer.Application" ) 
06.
   ' specify  the IE  settings 
07.
   objIE.Navigate "about:blank" 
08.
   objIE.Document.Title = "Benutzer wechsel" 
09.
   objIE.ToolBar        = False 
10.
   objIE.StatusBar      = False 
11.
   objIE.Resizable      = False 
12.
   objIE.Width          = 400 
13.
   objIE.Height         = 300 
14.
   ' Center the dialog window on the screen (front and center!) 
15.
   With objIE.Document.ParentWindow.Screen 
16.
       objIE.Left = (.AvailWidth  - objIE.Width ) \ 2 
17.
       objIE.Top  = (.Availheight - objIE.Height) \ 2 
18.
   End With 
19.
 
20.
    ' Insert the HTML code to prompt for your super secret password' 
21.
    objIE.Document.Body.InnerHTML = "<DIV align='center'><P>" & myPrompt _ 
22.
                                & "</P>" & vbCrLf _ 
23.
                                & "<div align='center'><font color='red'><P>" & myMessage _ 
24.
                                & "</P></font>" & vbCrLf _ 
25.
	                            & "<P><INPUT TYPE='input' SIZE= '20'" _ 
26.
                                & "ID='Username'/></P>" & vbCrLf _^^ 
27.
                                & "<P><INPUT TYPE='password' SIZE= '20'" _ 
28.
                                & "ID='Password'></P>" & vbCrLf _ 
29.
                                & "<P><INPUT TYPE='hidden' ID='OK'" _ 
30.
                                & "NAME='OK' VALUE='0'/></p>" _ 
31.
                                & "<INPUT TYPE='submit' VALUE='OK'" _ 
32.
                                & "OnClick='VBScript:OK.Value=1'/></P></DIV>" 
33.
 
34.
    ' Make the window visible (If you must *sigh*) 
35.
    objIE.Visible = True 
36.
 
37.
    ' Wait till the OK button has been clicked (uh huh...) 
38.
    Do While 0 = objIE.Document.All.OK.Value 
39.
    	Wscript.Sleep 250 
40.
    Loop 
41.
 
42.
' Read the password from the dialog window (evil thoughts on this method) 
43.
getUsername = objIE.Document.All.Username.Value 
44.
getPassword = objIE.Document.All.Password.Value 
45.
 
46.
Set wn = WScript.CreateObject("WScript.Network") 
47.
wn.MapNetworkDrive "t:", "\\192.168.2.5\geheim", False, getUsername, getPassword 
48.
 
49.
' Close and release the object 
50.
objIE.Quit 
51.
Set objIE = Nothing 
52.
 
53.
msgbox "Done."
Das gesamte Script ist VBS - HTML wird nur, wie Du schon angemerkt hast, zur Steuerung des IE verwendet; die Kontrolle hat aber weiterhin VBS ...

Grüße
bastla
Bitte warten ..
Mitglied: Nagus
20.08.2010 um 13:21 Uhr
Hi bastla,

hm - also 100%ig sicher ob ich das richtig verstanden habe ...:
Am Ende soweit ich alles verstanden habe und wie ich es zusammengebastelt habe.

Getrennt wird zwar, aber beim Verbinden gibt es einen Fehler. Laufwerkspfad existiert nicht ...
Wie kann ich mir die getUsername und getPassword ansehen? So richtig?
01.
msgbox("" & getUsername &"")
Wenn ich noch die Domäne (=DOM) benötige kann ich mir das doch das so definieren:
01.
strUsrDom=""DOM\" & getUsername""
Schon mal Danke für die Geduld ... !

Gruß
Nagus


01.
' This function uses Internet Explorer to 
02.
	' create a dialog and prompt for a password. 
03.
	 
04.
    Dim objIE 
05.
    ' Create an IE object (I guess you'll have to) 
06.
    Set objIE = CreateObject( "InternetExplorer.Application" ) 
07.
    ' specify  the IE  settings 
08.
    objIE.Navigate "about:blank" 
09.
    objIE.Document.Title = "Benutzer wechsel" 
10.
    objIE.ToolBar        = False 
11.
    objIE.StatusBar      = False 
12.
    objIE.Resizable      = False 
13.
    objIE.Width          = 400 
14.
    objIE.Height         = 300 
15.
    ' Center the dialog window on the screen (front and center!) 
16.
    With objIE.Document.ParentWindow.Screen 
17.
        objIE.Left = (.AvailWidth  - objIE.Width ) \ 2 
18.
        objIE.Top  = (.Availheight - objIE.Height) \ 2 
19.
    End With 
20.
 
21.
    ' Insert the HTML code to prompt for your super secret password' 
22.
    objIE.Document.Body.InnerHTML = "<DIV align='center'><P>" & myPrompt _ 
23.
                                & "</P>" & vbCrLf _ 
24.
                                & "<div align='center'><font color='red'><P>" & myMessage _ 
25.
                                & "</P></font>" & vbCrLf _ 
26.
	                            & "<P><INPUT TYPE='input' SIZE= '20'" _ 
27.
                                & "ID='Username'/></P>" & vbCrLf _ 
28.
                                & "<P><INPUT TYPE='password' SIZE= '20'" _ 
29.
                                & "ID='Password'></P>" & vbCrLf _ 
30.
                                & "<P><INPUT TYPE='hidden' ID='OK'" _ 
31.
                                & "NAME='OK' VALUE='0'/></p>" _ 
32.
                                & "<INPUT TYPE='submit' VALUE='OK'" _ 
33.
                                & "OnClick='VBScript:OK.Value=1'/></P></DIV>" 
34.
 
35.
    ' Make the window visible (If you must *sigh*) 
36.
    objIE.Visible = True 
37.
 
38.
    ' Wait till the OK button has been clicked (uh huh...) 
39.
    Do While 0 = objIE.Document.All.OK.Value 
40.
    	Wscript.Sleep 250 
41.
    Loop 
42.
	' Read the password from the dialog window (evil thoughts on this method) 
43.
	getUsername = objIE.Document.All.Username.Value 
44.
	getPassword = objIE.Document.All.Password.Value 
45.
 
46.
    Set wn = WScript.CreateObject("WScript.Network")  
47.
'erst trennen  
48.
    wn.RemoveNetworkDrive "U:", True, True  
49.
 
50.
'dann mappen - hier funktioniert das nicht: der Pfad zu den Daten lautet eigentlich vollständig \\192.168.101.185\daten\Docs\BENUTZERNAME 
51.
    wn.MapNetworkDrive "U:", "\\192.168.101.185\daten\Docs\" & getUsername &"", False, getUsername, getPassword 
52.
 
53.
    ' Close and release the object 
54.
    objIE.Quit 
55.
    Set objIE = Nothing
Bitte warten ..
Mitglied: bastla
20.08.2010 um 14:07 Uhr
Hallo Nagus!

Ich weiß zwar nicht, weshalb Du unbedingt an die Variable "getUsername" vorne und hinten genau nix anfügen möchtest, aber zur Not ginge es auch mit
msgbox("" & getUsername &"")
Ich bin etwas sparsamer veranlagt und würde nur
msgbox getUsername
schreiben ...

Die zweite Zeile würde bei mir so aussehen:
strUsrDom = "DOM\" & getUsername
Grüße
bastla
Bitte warten ..
Mitglied: Nagus
20.08.2010 um 15:35 Uhr
Hi bastla,

was soll ich sagen: weil ich keine Ahnung habe und nur solche Lösungen gefunden habe ..

Ok, jetzt habe ich es aber begriffen. ist ja eigentlich ganz simpel

Jetzt habe ich nur ein merkwürdiges Problem: wenn das Netzlaufwerk verbunden wird, gibt es einen Fehler das PW wäre falsch. Verbinde ich das LW im Kontext vom Explorer klappt alles.

ich habe mir auch schon das PW per
 msgbox getpassword
angesehen und das ist richtig!

Muss ich die Variable anders wählen, weil ich z.B. ein # im PW habe?

Wenn\'s dann mal komplett läuft poste ich es am Stück für alle interessierten ...
Bitte warten ..
Mitglied: bastla
20.08.2010 um 17:23 Uhr
Hallo Nagus!

Variablenname und -inhalt haben nix miteinander zu tun - daher sollte
wn.MapNetworkDrive "U:", "\\192.168.101.185\daten\Docs\" & getUsername, False, strUsrDom, getPassword
funktionieren ...

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Windows 10
Surface 4 Pro Netzlaufwerk verbinden (4)

Frage von Yannosch zum Thema Windows 10 ...

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

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

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

Frage von Lars1992 zum Thema Windows Userverwaltung ...

Datenbanken
gelöst SQL-Abfrage - DISTINCT - letztes Datum (3)

Frage von emeriks zum Thema Datenbanken ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (18)

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

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...