Top-Themen

Aktuelle Themen (A bis Z)

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, 5721 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 ..
Ähnliche Inhalte
Windows Server
Netzlaufwerke verbinden sich nicht
Frage von MyBRis4ShotWindows Server6 Kommentare

Hallo, wie der Titel schon sagt, habe ich aktuell Probleme mit dem automatischen Verbinden von Netzlaufwerken. Der Kunde arbeitet ...

Datenbanken
2 SQL Abfragen verbinden
Frage von cuxminiDatenbanken

Hallo Leute, ich habe mal das Problem, dass ich 2 Abfragen benötige um zum Ergebniss zu kommen. Ich hätte ...

Windows Server
Active Directory Netzlaufwerke verbinden
gelöst Frage von Florian86Windows Server2 Kommentare

Hallo, beim Netzlaufwerke verbinden über die AD im 2012 Server bekomme ich beim Anmelden immer die Fehler ID:1055 Fehler ...

SAN, NAS, DAS
Netzlaufwerk verbinden - komisches Verhalten
Frage von duschgasSAN, NAS, DAS15 Kommentare

Guten Tag, ich habe einen root-Server bei einem Hoster und dort einen Ordner freigegeben. Mit meinem Laptop im WLAN ...

Neue Wissensbeiträge
Microsoft Office

Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei

Anleitung von SarekHL vor 1 StundeMicrosoft Office2 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Erkennung und -Abwehr

Sicherheitslücke Spectre und Meltdown: Status prüfen

Anleitung von Frank vor 7 StundenErkennung und -Abwehr2 Kommentare

Nach all den Updates der letzten Woche sollte man unbedingt auch den Status prüfen, ob die Sicherheitslücken Spectre, Meltdown ...

Microsoft Office

Office 2010 Starter erneut auf einer frischen Windows-Version installieren

Tipp von Lochkartenstanzer vor 1 TagMicrosoft Office9 Kommentare

Moin, vor ein paar Tagen schlug bei mir ein Kunde auf, der sein Widnows 7 geschrottet und es inklusive ...

Datenbanken

Upgrade MongoDB 3.4 auf 3.6

Erfahrungsbericht von Frank vor 1 TagDatenbanken

Seit kurzem gibt es das 3.6 Update für die MongoDB: Sicherheit, das Sortieren, Aggregation und auch die Performance wurde ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Drucker und Scanner
Gesucht DIN A3 Drucker
Frage von NebellichtDrucker und Scanner15 Kommentare

Hallo, ich möchte einen neuen DIN A3 Drucker kaufen. Um ab und zu, ca. 1 mal die Woche Farbausdrucke ...

iOS
Einladung vom iphone kalender
Frage von jensgebkeniOS15 Kommentare

Hallo Gemeinschaft, folgendes Problem - immer wenn ich von meinem Iphone einen Termin einztrage und diesem Termin Teilnehmer zuweise, ...

Batch & Shell
Dateien verschieben mit batch
gelöst Frage von michi-ffmBatch & Shell13 Kommentare

Hallo Zusammen hat jemand evtl eine Idee? Zunächst hier das Skript: Leider werden keine UNC-Pfade unterstüzt, kann mir jemand ...