Jump to content
Sign in to follow this  
TeaRex

Netzlaufwerk verbinden via Batchdatei (Abfrage von Benutzername und Passwort)

Recommended Posts

Hallo zusammen,

Folgende Situation; ich habe einen Computer welchen ich bewusst nicht in die Domäne eingebunden habe. Nun möchte ich via einer Batch Datei vorgängig den Benutzernamen und Passwort abfragen. Im nächsten Schritt soll das Script das entsprechende Netzlaufwerk verbinden. Wie lässt sich dies realisieren? Kann mir jemand helfen!!??

Schön wäre natürlich, wenn das Ganze auch visuell ordentlich daher käme. Ich stelle mir vor, dass beim Aufruf des Scripts eine Art PopUp erscheinen würde, welches den Benutzernamen und das Passwort abfragt und erst bei richtiger Eingabe das Laufwerk verbinden würde. (Vielleicht sogar bei einem Fehler >>falsches Passwort od. falschen Benutzername ausgeben würde)

 

 

 

Vielen Dank für eure Hilfe!!!

 

 

Gruss Tea

Share this post


Link to post

Der Rechner muß nicht in der Domäne sein, damit Du ihn per UNC-Pfad erreichen kannst. Einfach \\COMPUTER\Freigabe in Dein Anmeldeskript schreiben, dann kannst Du in der Shell nach Benutzernamen und Kennwort fragen. Um ungültige Daten kümmert sich Windows mit einer passenden Fehlermeldung. Grafischer Login per Popup fertig zum Download irgendwo ist mir nix bekannt, kann man aber sicher mit VBS, KiXtart und Co. basteln.

Share this post


Link to post

Hi TeaRex,

 

soll das Netzlaufwerk dauerhaft vorhanden sein? Beim Verbinden von Netzlaufwerken über die GUI kannst du doch Anmeldeinformationen mitgeben, speichern und einstellen, dass das Netzlaufwerk automatisch beim Start verbunden wird?

 

Ansonsten fällt mir noch ein, die Batch mit "Ausführen als..." zu starten

 

Gruss

Share this post


Link to post

Hallo zusammen,

vielen Dank erstmals für die Antwort. Da die PC's von diversen unterschiedlichen Personen benützt werden, darf das Laufwerk eines Benutzers nicht andauernd verbunden bleiben. Viel mehr soll sich der User sein persönliches Laufwerk verbinden können, wann er will und dieses solltes folglich nach dem Abmelden auch nicht mehr verbunden werden.

 

Ich stelle mir das ganze in der Art vor. Batchdatei ausführen - Benutzername u. Passwort eingeben - OK drücken das war's schon.

 

Thx Tea

Share this post


Link to post

Hi,

 

wie wäre es denn wenn du anhand des Benutzernames ein Laufwerk verbindest ?

 

net use h: \\Server\Home\%username% /persistent:no

 

Verbindet dem Hans.Meier bei der Anmeldung das Laufwerk h: mit \\Server\Home\Hans.Meier

und trennt dieses wieder bei dem Abmelden. Den Ordner Hans.Meier hast du als Admin vorher

erstellt und nur dem Benutzer Zugriff darauf gegeben.

 

Eleganter kannst du das auch wenn ein ADS vorhanden ist mit dem Benutzerprofil regeln.

Share this post


Link to post

Halt, vielleicht wurde etwas falsch verstanden oder ich habe mich unklar ausgedrückt. Die Benutzer loggen sich zu keinem Zeitpunkt ein! Vielmehr arbeiten alle auf derselben Oberfläche/Desktop. Ich möchte aber trotzdem, dass jeder Benutzer auf sein persönliches Laufwerk zugreifen kann.

 

Folgendes Script habe ich gefunden, es entspricht genau meinen Vorstellungen! Leider liefert dieses immer in Zeile 81 einen Fehler!

Kann jemand mal sich diesem widmen:confused::confused:

 

Set fs = CreateObject("Scripting.filesystemobject")

Set net = CreateObject("WScript.Network")

 

strUserName = GetUserName( "Please enter your User:" )

Function GetUserName( myPrompt )

 

 

Dim objIE

Set objIE = CreateObject( "InternetExplorer.Application" )

objIE.Navigate "about:blank"

objIE.Document.Title = "Password"

objIE.ToolBar = False

objIE.Resizable = False

objIE.StatusBar = False

objIE.Width = 320

objIE.Height = 180

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""><P>" & myPrompt _

& "</P>" & vbCrLf _

& "<P><INPUT TYPE=""password"" SIZE=""20"" " _

& "ID=""Password""></P>" & vbCrLf _

& "<P><INPUT TYPE=""hidden"" ID=""OK"" " _

& "NAME=""OK"" VALUE=""0"">" _

& "<INPUT TYPE=""submit"" VALUE="" OK "" " _

& "OnClick=""VBScript:OK.Value=1""></P></DIV>"

objIE.Visible = True

Do While objIE.Document.All.OK.Value = 0

WScript.Sleep 200

Loop

GetUserName = objIE.Document.All.Password.Value

' Close and release the object

objIE.Quit

Set objIE = Nothing

 

end function

 

strPw = GetPassword( "Please enter your password:" )

Function GetPassword( myPrompt )

 

Dim objIE1

Set objIE1 = CreateObject( "InternetExplorer.Application" )

objIE1.Navigate "about:blank"

objIE1.Document.Title = "Password"

objIE1.ToolBar = False

objIE1.Resizable = False

objIE1.StatusBar = False

objIE1.Width = 320

objIE1.Height = 180

With objIE1.Document.ParentWindow.Screen

objIE1.Left = (.AvailWidth - objIE1.Width ) \ 2

objIE1.Top = (.Availheight - objIE1.Height) \ 2

End With

Do While objIE1.Busy

WScript.Sleep 200

Loop

objIE1.Document.Body.InnerHTML = "<DIV align=""center""><P>" & myPrompt _

& "</P>" & vbCrLf _

& "<P><INPUT TYPE=""password"" SIZE=""20"" " _

& "ID=""Password""></P>" & vbCrLf _

& "<P><INPUT TYPE=""hidden"" ID=""OK"" " _

& "NAME=""OK"" VALUE=""0"">" _

& "<INPUT TYPE=""submit"" VALUE="" OK "" " _

& "OnClick=""VBScript:OK.Value=1""></P></DIV>"

objIE1.Visible = True

Do While objIE1.Document.All.OK.Value = 0

WScript.Sleep 200

Loop

GetPassword = objIE1.Document.All.Password.Value

' Close and release the object

objIE1.Quit

Set objIE1 = Nothing

 

 

 

net.MapNetworkDrive "G:", "\\Server\Gruppenlaufwerk\Gruppe\IT\", false, "AOxxxxTE\" & GetUserName , GetPassword

Share this post


Link to post
Halt, vielleicht wurde etwas falsch verstanden oder ich habe mich unklar ausgedrückt. Die Benutzer loggen sich zu keinem Zeitpunkt ein! Vielmehr arbeiten alle auf derselben Oberfläche/Desktop. Ich möchte aber trotzdem, dass jeder Benutzer auf sein persönliches Laufwerk zugreifen kann.

 

Pack in eine Batch folgenden Aufruf:

 

net use \\server\share "password" /user:Domain\DerBenutzer
net use h: \\server\share /persistent:no

 

Lässt Du "password" weg müssen die Benutzer das Passwort eingeben.

Share this post


Link to post

Hallo Sunny61,

In meinen Augen lösen deine beiden Zeilen mein Problem nicht. Da jeder User sein persönliches Laufwerk hat muss er zwangsläufig seinen Butzernamen und Passwort angeben.

 

Ich habe hier noch ein kleines Script gefunden, welches allemal ausreichen würde, jedoch wird irgendwie der Benutzername und/oder das Passwort nicht richtig übergeben. Ich kriege immer die Rückmeldung:

"Der angegebene Netzwerkpfad wurde von keinem Netzwerkdienstanbieter angenommen oder in der Art "Anmeldung fehlgeschlagen. Unbekannter Benutzername oder falsches Passwort"

 

Script:

Set objnet = CreateObject ("WScript.Network")

Set Network = WScript.CreateObject("WScript.Network")

Set objNetwork = CreateObject("WScript.Network")

 

Set fs = CreateObject("Scripting.filesystemobject")

UserName = InputBox("Benutzername eingeben","Benutzer") ' benutzername abfragen

If Username<>"" Then ' ohne benutzername ist weitermachen sinnlos

PWD = InputBox("Passwort eingeben","Passwort") ' Passwort abfragen

objnet.MapNetworkDrive "W:", "\\192.168.3x.xx\" & UserName ,, "domain\" & Username, "PWD"

end if

 

 

Thx Tea

Share this post


Link to post

In meinen Augen lösen deine beiden Zeilen mein Problem nicht. Da jeder User sein persönliches Laufwerk hat muss er zwangsläufig seinen Butzernamen und Passwort angeben.

 

Das was möchtest macht man so nicht. Jeder Benutzer sollte seinen eigenen Login und sein eigenes Profil haben. Dann kannst Du das alles sparen.

Share this post


Link to post

Ist mir eigentlich auch so klar, aber dies ist eine spezielle Situation und ich muss das Problem lösen, ich möchte jedoch die Computer definitiv nicht in die Domäne einbinden. Irgendwie muss man doch dieses Problem in den Griff kriegen, insofern das angehängte Script genau meinen Vorstellungen entspricht.

Share this post


Link to post

hallo,

ergänz mal eine Zeile:

 

PWD = InputBox("Passwort eingeben","Passwort") ' Passwort abfragen

wscript.echo "domain\" & Username, "PWD"

objnet.MapNetworkDrive "W:", "\\192.168.3x.xx\" & UserName ,, "domain\" & Username, "PWD"

 

so kann die Übergabe "domain- Username - PWD" ned ganz stimmen

 

cu

blub

Share this post


Link to post

Habe mal die Zeile hinzugefügt und erhalte bei der Rückgabe des Wertes wohl den richtigen Benutzername, dass Passwort wird hingegen scheinbar nicht richtig übernommen!:confused:

 

thx

Share this post


Link to post

Es kommt folgendes heraus: domain\Benutzername PWD

 

Ich habe nun die Anführungszeichen "PWD" weggelassen und siehe da, es wird das richtige Passwort zurückgegeben.

Nun kommt wieder die Fehlermeldung: Der angegebene Netzwerkpfad wurde von keinem Netzwerkdienstanbieter angenommen.

 

Habe gegoogelt und finde bei Microsoft folgenden Hinweis: LoopbackCheck deaktivieren.

 

Bin gerade am testen. Oder hast du noch einen Ratschlag?

 

Vielen Dank auf alle Fälle

Share this post


Link to post

Leider kommt auch nach dem deaktivieren des LoopbackChecks die Fehlermeldung.:(

Ich habe das Gefühl, dass bei der Übergabe des Benutzernamens und/oder des Passwortes was schief läuft.:confused:

 

Was meinst du blub?

Share this post


Link to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...