VBS Variablen überprüfen, Netzlaufwerk anzeigen
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
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
function safeHTML($str) {
$approvedtags = array(
"p"=>2, // 2 means accept all qualifiers: <foo bar>
"b"=>1 // 1 means accept the tag only: <foo>
);
On Error Resume Next
call GetUserName("", strUserName, strPassword)
Set net = CreateObject("WScript.Network")
If fs.driveExists("W:\") Then net.MapNetworkDrive "J:",True,True
net.MapNetworkDrive "W:", "\\191.32.....4\g$", false, "AO....TE\"& strUserName, strPassword
If Eingabe = strUserName And strPassword = Eingabe Then
MsgBox "Sie haben sich erfolgreich mit der Aus.....elt verbunden!"
else
MsgBox "Bitte geben Sie Benutzername und Passwort ein!"
End If
Function GetUserName( myPrompt, strUsername, strPassword)
Dim objIE
Set objIE = CreateObject( "InternetExplorer.Application" )
objIE.Navigate "about:blank"
objIE.Document.Writeln "<body bgcolor=#0099FF>"
objIE.Document.Title = "Passworteingabe xxx08"
objIE.ToolBar = False
objIE.Resizable = False
objIE.StatusBar = False
objIE.Width = 400
objIE.Height = 285
With objIE.Document.ParentWindow.Screen
objIE.Left = (.AvailWidth - objIE.Width ) \ 2
objIE.Top = (.Availheight - objIE.Height) \ 2
End With
Do While objIE.Busy
WScript.Sleep 200
Loop
objIE.Document.Body.InnerHTML ="<DIV align=""center""4><P>" & myPrompt _
& "</P>" & vbCrLf _
& "<h1 style=color:#0000FF;font-size:125%>Benutzername</h1>" _
& "<INPUT TYPE=""Name"" SIZE=""25"" " _
& "ID=""Name"">" & vbCrLf _
& "<DIV align=""center"" ><P>" & myPrompt _
& "</P>" & vbCrLf _
& "<h1 style=color:#0000FF;font-size:125%>Passwort</h1>" _
& "<P><INPUT TYPE=""Password"" SIZE=""25"" " _
& "ID=""Password""></P>" & vbCrLf _
& "<P><INPUT TYPE=""hidden"" ID=""OK"" " _
& "Password=""OK"" VALUE=""0"">" _
& "<INPUT TYPE=""submit"" VALUE="" OK "" " _
& "OnClick=""VBScript:OK.Value=1"">" _
& "<h1 style=font-size:60%; align=left>© Sxxx8</h1></DIV>"
objIE.Visible = True
Do While objIE.Document.All.OK.Value = 0
WScript.Sleep 200
Loop
strUserName = objIE.Document.All.Name.Value
strPassword = objIE.Document.All.Password.Value
objIE.Quit
Set objIE = Nothing
objIE.Document.Writeln "</body>"
End Function
}
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 100419
Url: https://administrator.de/contentid/100419
Ausgedruckt am: 23.11.2024 um 02:11 Uhr
21 Kommentare
Neuester Kommentar
Moin Moin
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.
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 Via VBS Laufwerk verbinden inkl Passwort und Benutzer eingabeSo 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!
Das mit dem Prüfen ist mir nicht soganz klar.und strPasswort auf richtigkeit abgeprüft werden? Hier hab ich
schon mit Eingab = versucht klappt aber nicht ganz!
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.
Moin
Oder das ganze in einer Schleife laufen lassen bis beides eigegeben wurde:
Bzw. wenn Du es kennst warum läst du den Anwender es erst eingeben?
Gruß L.
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:Also das ist so gemeint, dass wenn ich z.b nur Username oder nur
passwirt eingebe, dass dann eine meldung kommt.
...
call GetUserName("", strUserName, strPassword)
if strUsername="" or Password="" Then
msgbox "Bitte geben Sie Benutzername UND Kennwort an."
end if
...
...
While strUserName="" or strPassword=""
call GetUserName("", strUserName, strPassword)
wend
...
... 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?ob beides eingebeben wurde und zwar richtig, ...
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:...
If fs.driveExists("W:\") Then
msgbox "Netzlaufwerk erfolgreich verbunden."
end if
...
Gruß L.
Moin
Du hast den Code um zu prüfen ob ein NetzLW existiert.
Und das Alphabet kennst Du. Was fehlt dir noch?
Gruß L.
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.Noch was, wie kann ich in den Quellcode einbauen, dass wenn
Laufwerksbuchstabe w schon verwendet wird, dass dann der nächste
freie genutzt wird?
Du hast den Code um zu prüfen ob ein NetzLW existiert.
Und das Alphabet kennst Du. Was fehlt dir noch?
Gruß L.
Moin Moin
Was fürn Fenster denn sonst. Ist alles explorer.
Falls die Baumansicht stört, lass einfach den Parameter /e weg:
Gruß L.
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...
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:
...
set shell = CreateObject("WScript.Shell")
shell.run "%windir%\explorer W:"
...
Gruß L.
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.
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.
Moin
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.
Gruß L.
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.
...
set shell = CreateObject("WScript.Shell")
shell.run "net use W: \\191.32.....4\g$", false, "AO....TE\"
...
Gruß L.
Ja. zum Nachlesen.
"Anmeldung fehlgeschlagen: unbekannter Benutzername oder falsches Kennwort"
und das donsolenfenster sofort geschlossen.
Mach mal folgendes:
Auf diese weise bekommst du die Net Use Befehlszeile als Message angezeigt und kannst diese auf Richtigkeit überprüfen/ausprobieren.
Gruß L.
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.auf in dem steht username oder pw falsch!
bitte geben sie das passwort
für xxx ein.
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:
...
set shell = CreateObject("WScript.Shell")
Test = "net use W: \\191.32.....4\g$," & strPassword & ", /USER:AO....TE\" & strUserName
msgbox Test
shell.run test
...
Auf diese weise bekommst du die Net Use Befehlszeile als Message angezeigt und kannst diese auf Richtigkeit überprüfen/ausprobieren.
Gruß L.
Moin
Liest Du eigentlich was ich so alles schreibe?
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.
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.