Zum Inhalt wechseln


Foto

Netzlaufwerk verbinden via Batchdatei (Abfrage von Benutzername und Passwort)


  • Bitte melde dich an um zu Antworten
19 Antworten in diesem Thema

#1 TeaRex

TeaRex

    Junior Member

  • 99 Beiträge

 

Geschrieben 06. Oktober 2010 - 15:02

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

#2 Bodenklappe

Bodenklappe

    Newbie

  • 21 Beiträge

 

Geschrieben 08. Oktober 2010 - 16:54

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.

#3 gradma

gradma

    Junior Member

  • 90 Beiträge

 

Geschrieben 08. Oktober 2010 - 17:54

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
MCITP - Enterprise Support Technician

Passed: 70-680 - 70-642 - 70-685
Open: 70-640 - 70-643 - 70-647 - 70-686

#4 TeaRex

TeaRex

    Junior Member

  • 99 Beiträge

 

Geschrieben 08. Oktober 2010 - 18:55

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

#5 XP-Fan

XP-Fan

    Moderator

  • 11.250 Beiträge

 

Geschrieben 08. Oktober 2010 - 20:22

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.

Gruß und viel Erfolg !

www.ServerHowTo.de - Das MCSEboard.de HowTo Projekt ist online!


#6 TeaRex

TeaRex

    Junior Member

  • 99 Beiträge

 

Geschrieben 08. Oktober 2010 - 20:46

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

#7 Sunny61

Sunny61

    Expert Member

  • 22.249 Beiträge

 

Geschrieben 10. Oktober 2010 - 21:42

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.
Gruppenrichtlinien: http://www.gruppenrichtlinien.de/

#8 TeaRex

TeaRex

    Junior Member

  • 99 Beiträge

 

Geschrieben 11. Oktober 2010 - 18:51

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

#9 Sunny61

Sunny61

    Expert Member

  • 22.249 Beiträge

 

Geschrieben 11. Oktober 2010 - 19:06

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.
Gruppenrichtlinien: http://www.gruppenrichtlinien.de/

#10 TeaRex

TeaRex

    Junior Member

  • 99 Beiträge

 

Geschrieben 11. Oktober 2010 - 19:12

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.

#11 blub

blub

    Moderator

  • 7.605 Beiträge

 

Geschrieben 11. Oktober 2010 - 19:21

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

Ein Kluger bemerkt alles, Ein Dummer macht über alles eine Bemerkung. (Heinrich Heine)


#12 TeaRex

TeaRex

    Junior Member

  • 99 Beiträge

 

Geschrieben 11. Oktober 2010 - 19:58

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

#13 blub

blub

    Moderator

  • 7.605 Beiträge

 

Geschrieben 11. Oktober 2010 - 20:06

ahja, und was gibt die Zeile aus? ;)

Ein Kluger bemerkt alles, Ein Dummer macht über alles eine Bemerkung. (Heinrich Heine)


#14 TeaRex

TeaRex

    Junior Member

  • 99 Beiträge

 

Geschrieben 11. Oktober 2010 - 20:23

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

#15 TeaRex

TeaRex

    Junior Member

  • 99 Beiträge

 

Geschrieben 11. Oktober 2010 - 20:30

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?