7036
30.08.2006, aktualisiert am 18.10.2012
7887
16
0
Suche Batch mit unsichtbarer Kennworteingabe
Hi suche eine Möglichkeit in der Windowsshell die Kennwort-Eingabe des Anwenders einzulesen.
zur Zeit mache ich das mit:
@set /p "psw=%USERNAME% geben Sie bitte ihr Kennwort ein: "
Aber dabei wird die Eingabe im Klartext eingegeben...
kennt jemand eine andere Möglichkeit?
Danke
zur Zeit mache ich das mit:
@set /p "psw=%USERNAME% geben Sie bitte ihr Kennwort ein: "
Aber dabei wird die Eingabe im Klartext eingegeben...
kennt jemand eine andere Möglichkeit?
Danke
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 39068
Url: https://administrator.de/contentid/39068
Ausgedruckt am: 15.11.2024 um 11:11 Uhr
16 Kommentare
Neuester Kommentar
Hallo Siggi,
das hatten wir schon einmal. Es geht im Batch offenbar nicht so ohne weiteres:
Passwort eingeben aber ****** anzeigen
HTH geTuemII
das hatten wir schon einmal. Es geht im Batch offenbar nicht so ohne weiteres:
Passwort eingeben aber ****** anzeigen
HTH geTuemII
Hallo,
versuche es mal damit:
pw_abfrage.bat
@echo off
cls
echo Please enter your user name and password in the entry box...
:: See if I can find myself
If not exist %0 goto ERROR
:: Make the web page
type %0 | find " " | find /v " " | find /v "Not Me!" > %TEMP%\UserIn.htm
:: Make the VBS code
type %0 | find " " | find /v " " | find /v "Not Me!" > %TEMP%\UserIn.vbs
:: Run the vbs code
start /w wscript.exe %TEMP%\UserIn.vbs
call %TEMP%\UserIn.bat
:: Clean up
echo j|del %TEMP%\UserIn.*
:: so wie die beiden Zeilen hier stehen, werden USERNAME und PASSWORD
:: nur angezeigt. Willst Du damit etwas machen, mußt Du das ändern z.B.
:: if %USERNAME%==BLABLA tue dies z.B. goto ???
:: und/oder mit PASSWORD das gleiche
echo Your user name is %USERNAME%
echo Your password is %PASSWORD%
goto DONE
:ERROR
cls
echo %0 is not the full path and file name
echo for the batch file. You MUST call this
echo batch file with a full path and file name.
goto DONE
:HTML
<html><body><form>User Name:
<input type=text name=username tabindex=1>
Password:
<input type=password name=password>
<input type=button
language=vbscript name=submit
value=OK onclick='submit.value="Done"'>
</form></body></html>
:VBS
Set fs = CreateObject("Scripting.FileSystemObject")
strFile = fs.GetAbsolutePathName(fs.BuildPath(fs.GetSpecialFolder(2), "UserIn.htm"))
Set web = CreateObject("InternetExplorer.Application")
web.Offline = True
web.AddressBar = False
web.Height = 200
web.Width = 250
web.MenuBar = False
web.StatusBar = False
web.Silent = True
web.ToolBar = False
web.Navigate strFile
Do While web.Busy
Loop
On Error Resume Next
Set doc = Nothing
Do Until Not doc Is Nothing
Set doc = web.Document
Loop
doc.Forms(0).elements("username").focus
web.Visible = True
Err.Clear
Do Until doc.Forms(0).elements("submit").Value <> "OK"
Wscript.Sleep 100
If Err.Number <> 0 Then Exit Do
Loop
strFile = fs.GetAbsolutePathName(fs.BuildPath(fs.GetSpecialFolder(2), "UserIn.bat"))
Set ts = fs.OpenTextFile(strFile, 2, True)
ts.WriteLine "SET USERNAME=" & doc.Forms(0).elements("username").Value
ts.WriteLine "SET PASSWORD=" & doc.Forms(0).elements("password").Value
ts.Close
web.Quit
:DONE
cls
MfG maneich
versuche es mal damit:
pw_abfrage.bat
@echo off
cls
echo Please enter your user name and password in the entry box...
:: See if I can find myself
If not exist %0 goto ERROR
:: Make the web page
type %0 | find " " | find /v " " | find /v "Not Me!" > %TEMP%\UserIn.htm
:: Make the VBS code
type %0 | find " " | find /v " " | find /v "Not Me!" > %TEMP%\UserIn.vbs
:: Run the vbs code
start /w wscript.exe %TEMP%\UserIn.vbs
call %TEMP%\UserIn.bat
:: Clean up
echo j|del %TEMP%\UserIn.*
:: so wie die beiden Zeilen hier stehen, werden USERNAME und PASSWORD
:: nur angezeigt. Willst Du damit etwas machen, mußt Du das ändern z.B.
:: if %USERNAME%==BLABLA tue dies z.B. goto ???
:: und/oder mit PASSWORD das gleiche
echo Your user name is %USERNAME%
echo Your password is %PASSWORD%
goto DONE
:ERROR
cls
echo %0 is not the full path and file name
echo for the batch file. You MUST call this
echo batch file with a full path and file name.
goto DONE
:HTML
<html><body><form>User Name:
<input type=text name=username tabindex=1>
Password:
<input type=password name=password>
<input type=button
language=vbscript name=submit
value=OK onclick='submit.value="Done"'>
</form></body></html>
:VBS
Set fs = CreateObject("Scripting.FileSystemObject")
strFile = fs.GetAbsolutePathName(fs.BuildPath(fs.GetSpecialFolder(2), "UserIn.htm"))
Set web = CreateObject("InternetExplorer.Application")
web.Offline = True
web.AddressBar = False
web.Height = 200
web.Width = 250
web.MenuBar = False
web.StatusBar = False
web.Silent = True
web.ToolBar = False
web.Navigate strFile
Do While web.Busy
Loop
On Error Resume Next
Set doc = Nothing
Do Until Not doc Is Nothing
Set doc = web.Document
Loop
doc.Forms(0).elements("username").focus
web.Visible = True
Err.Clear
Do Until doc.Forms(0).elements("submit").Value <> "OK"
Wscript.Sleep 100
If Err.Number <> 0 Then Exit Do
Loop
strFile = fs.GetAbsolutePathName(fs.BuildPath(fs.GetSpecialFolder(2), "UserIn.bat"))
Set ts = fs.OpenTextFile(strFile, 2, True)
ts.WriteLine "SET USERNAME=" & doc.Forms(0).elements("username").Value
ts.WriteLine "SET PASSWORD=" & doc.Forms(0).elements("password").Value
ts.Close
web.Quit
:DONE
cls
MfG maneich
Hallo,
laß es laufen und dann siehst Du es.
Hier wird sowohl Username als auch Passwort abgefragt.
Da keine Abfrage erfolgt ob beide eingegeben wurden, kannst Du die Eingabe für Username ignorieren oder die Eingabe dafür aus dem Script entfernen.
In meinem Beispiel werden Dir die Eingaben nur über echo angezeigt. Zur Weiterverarbeitung mußt Du das dann entsprechend ändern.
MfG maneich
laß es laufen und dann siehst Du es.
Hier wird sowohl Username als auch Passwort abgefragt.
Da keine Abfrage erfolgt ob beide eingegeben wurden, kannst Du die Eingabe für Username ignorieren oder die Eingabe dafür aus dem Script entfernen.
In meinem Beispiel werden Dir die Eingaben nur über echo angezeigt. Zur Weiterverarbeitung mußt Du das dann entsprechend ändern.
MfG maneich
Hallo,
der Bereich HTML ist auch nicht richtig dargestellt.
Auch beim heutigen Versuch fehlgeschlagen.
Also bei :HTML muß in den Zeilen 2 - 5 am Zeilenanfang "<" "br" ">"
stehen. Natürlich ohne Hochkomma und direkt nebeneinander.
Versuche es jetzt nochmal
Hier nochmal:
'-----------------------------------------------------
@echo off
cls
echo Please enter your user name and password in the entry box...
:: See if I can find myself
If not exist %0 goto ERROR
:: Make the web page
type %0 | find " " | find /v " " | find /v "Not Me!" > %TEMP%\UserIn.htm
:: Make the VBS code
type %0 | find " " | find /v " " | find /v "Not Me!" > %TEMP%\UserIn.vbs
:: Run the vbs code
start /w wscript.exe %TEMP%\UserIn.vbs
call %TEMP%\UserIn.bat
:: Clean up
echo j|del %TEMP%\UserIn.*
:: so wie die beiden Zeilen hier stehen, werden USERNAME und PASSWORD
:: nur angezeigt. Willst Du damit etwas machen, mußt Du das ändern z.B.
:: if %USERNAME%=BLABLA tue dies z.B. goto ???
:: mit PASSWORD das gleiche
echo Your user name is %USERNAME%
echo Your password is %PASSWORD%
pause
goto DONE
:ERROR
cls
echo %0 is not the full path and file name
echo for the batch file. You MUST call this
echo batch file with a full path and file name.
goto DONE
:HTML
:VBS
Set fs = CreateObject("Scripting.FileSystemObject")
strFile = fs.GetAbsolutePathName(fs.BuildPath(fs.GetSpecialFolder(2), "UserIn.htm"))
Set web = CreateObject("InternetExplorer.Application")
web.Offline = True
web.AddressBar = False
web.Height = 200
web.Width = 250
web.MenuBar = False
web.StatusBar = False
web.Silent = True
web.ToolBar = False
web.Navigate strFile
Do While web.Busy
Loop
On Error Resume Next
Set doc = Nothing
Do Until Not doc Is Nothing
Set doc = web.Document
Loop
doc.Forms(0).elements("username").focus
web.Visible = True
Err.Clear
Do Until doc.Forms(0).elements("submit").Value <> "OK"
Wscript.Sleep 100
If Err.Number <> 0 Then Exit Do
Loop
strFile = fs.GetAbsolutePathName(fs.BuildPath(fs.GetSpecialFolder(2), "UserIn.bat"))
Set ts = fs.OpenTextFile(strFile, 2, True)
ts.WriteLine "SET USERNAME=" & doc.Forms(0).elements("username").Value
ts.WriteLine "SET PASSWORD=" & doc.Forms(0).elements("password").Value
ts.Close
web.Quit
:DONE
'---------------------------------------------------
läuft bei mir einwandfrei.
MfG maneich
der Bereich HTML ist auch nicht richtig dargestellt.
Auch beim heutigen Versuch fehlgeschlagen.
Also bei :HTML muß in den Zeilen 2 - 5 am Zeilenanfang "<" "br" ">"
stehen. Natürlich ohne Hochkomma und direkt nebeneinander.
Versuche es jetzt nochmal
Hier nochmal:
'-----------------------------------------------------
@echo off
cls
echo Please enter your user name and password in the entry box...
:: See if I can find myself
If not exist %0 goto ERROR
:: Make the web page
type %0 | find " " | find /v " " | find /v "Not Me!" > %TEMP%\UserIn.htm
:: Make the VBS code
type %0 | find " " | find /v " " | find /v "Not Me!" > %TEMP%\UserIn.vbs
:: Run the vbs code
start /w wscript.exe %TEMP%\UserIn.vbs
call %TEMP%\UserIn.bat
:: Clean up
echo j|del %TEMP%\UserIn.*
:: so wie die beiden Zeilen hier stehen, werden USERNAME und PASSWORD
:: nur angezeigt. Willst Du damit etwas machen, mußt Du das ändern z.B.
:: if %USERNAME%=BLABLA tue dies z.B. goto ???
:: mit PASSWORD das gleiche
echo Your user name is %USERNAME%
echo Your password is %PASSWORD%
pause
goto DONE
:ERROR
cls
echo %0 is not the full path and file name
echo for the batch file. You MUST call this
echo batch file with a full path and file name.
goto DONE
:HTML
<html><body><form>User Name:
input type=text name=username tabindex=1>
Password:
input type=password name=password>
br><input type=button
language=vbscript name=submit
value=OK onclick='submit.value="Done"'>
</form></body></html>
:VBS
Set fs = CreateObject("Scripting.FileSystemObject")
strFile = fs.GetAbsolutePathName(fs.BuildPath(fs.GetSpecialFolder(2), "UserIn.htm"))
Set web = CreateObject("InternetExplorer.Application")
web.Offline = True
web.AddressBar = False
web.Height = 200
web.Width = 250
web.MenuBar = False
web.StatusBar = False
web.Silent = True
web.ToolBar = False
web.Navigate strFile
Do While web.Busy
Loop
On Error Resume Next
Set doc = Nothing
Do Until Not doc Is Nothing
Set doc = web.Document
Loop
doc.Forms(0).elements("username").focus
web.Visible = True
Err.Clear
Do Until doc.Forms(0).elements("submit").Value <> "OK"
Wscript.Sleep 100
If Err.Number <> 0 Then Exit Do
Loop
strFile = fs.GetAbsolutePathName(fs.BuildPath(fs.GetSpecialFolder(2), "UserIn.bat"))
Set ts = fs.OpenTextFile(strFile, 2, True)
ts.WriteLine "SET USERNAME=" & doc.Forms(0).elements("username").Value
ts.WriteLine "SET PASSWORD=" & doc.Forms(0).elements("password").Value
ts.Close
web.Quit
:DONE
'---------------------------------------------------
läuft bei mir einwandfrei.
MfG maneich
Hallo,
ich wußte nicht, daß Text und Codes hier so schlecht formatiert werden, da sollten Sich die Forenbetreiber mal darum kümmern.
Also auch im oberen Bereich der Batch sind Formatisierungsfehler und zwar in den beiden Zeilen type %0.....
In der ersten type-Zeile müßen zwischen den Hochkommas beim ersten find 4 Leerstellen und beim 2. find 5 Leerstellen sein. Bei der zweiten type-Zeile beim ersten find 5 Leerstellen und beim 2. find 6 Leerstellen sein.
Kommst Du immer noch nicht klar damit, E-mail an mich und ich schick Dir das ganze dann richtig formatiert.
MfG maneich
ich wußte nicht, daß Text und Codes hier so schlecht formatiert werden, da sollten Sich die Forenbetreiber mal darum kümmern.
Also auch im oberen Bereich der Batch sind Formatisierungsfehler und zwar in den beiden Zeilen type %0.....
In der ersten type-Zeile müßen zwischen den Hochkommas beim ersten find 4 Leerstellen und beim 2. find 5 Leerstellen sein. Bei der zweiten type-Zeile beim ersten find 5 Leerstellen und beim 2. find 6 Leerstellen sein.
Kommst Du immer noch nicht klar damit, E-mail an mich und ich schick Dir das ganze dann richtig formatiert.
MfG maneich
Hallo geTuemII,
das habe ich probiert, zwar nicht beim ersten Code-Thread, aber beim Zweiten mit
und zwar einmal für den gesamten Batch-Code und als das nicht geklappt hat geändert nur für den html-Code in der Batch, der immer falsch dargestellt wird. Letzteren siehe 3 Thread weiter oben.
Das hat aber nicht geklappt. Hier werden am Anfang und Endenur noch mitgeschrieben.
Mache ich etwas falsch???
MfG maneich
das habe ich probiert, zwar nicht beim ersten Code-Thread, aber beim Zweiten mit
Das hat aber nicht geklappt. Hier werden am Anfang und Endenur noch
und
Mache ich etwas falsch???
MfG maneich
Hallo maneich,
sieht aus, als ob das Format eine eigene Zeile braucht:
1. eigene Zeile für Code-Formatierung
2. eigene Zeile für Code-Formatierungohne eigene Zeile
Anmerkung:
Ich konnte 1. und 2. übrigens nicht tauschen, dann war der gesamte Text Code formatiert. Offenbar sucht den Formatierung das erste-return.
HTH geTuemII
sieht aus, als ob das Format eine eigene Zeile braucht:
1. eigene Zeile für Code-Formatierung
@echo off
cls
echo Please enter your user name and password in the entry box...
:: See if I can find myself
If not exist %0 goto ERROR
:: Make the web page
type %0 | find " " | find /v " " | find /v "Not Me!" > %TEMP%\UserIn.htm
:: Make the VBS code
type %0 | find " " | find /v " " | find /v "Not Me!" > %TEMP%\UserIn.vbs
2. eigene Zeile für Code-Formatierungohne eigene Zeile
@echo off
cls
echo Please enter your user name and password in the entry box...
:: See if I can find myself
If not exist %0 goto ERROR
:: Make the web page
type %0 | find " " | find /v " " | find /v "Not Me!" > %TEMP%\UserIn.htm
:: Make the VBS code
type %0 | find " " | find /v " " | find /v "Not Me!" > %TEMP%\UserIn.vbs
Anmerkung:
Ich konnte 1. und 2. übrigens nicht tauschen, dann war der gesamte Text Code formatiert. Offenbar sucht den Formatierung das erste
und geht bis return-
HTH geTuemII
Hallo,
nun ja hier mal ein neuer Versuch ohne Tauschen:
Nun ja die Lerrzeichen zwischen den Hochkommas sind jetzt zwar richtig, aber auch hier wird der HTML-Code so fehlerhaft darstellt wie ohne Formatierung.
nun ja hier mal ein neuer Versuch ohne Tauschen:
Nun ja die Lerrzeichen zwischen den Hochkommas sind jetzt zwar richtig, aber auch hier wird der HTML-Code so fehlerhaft darstellt wie ohne Formatierung.
@echo off
cls
echo Please enter your user name and password in the entry box...
:: See if I can find myself
If not exist %0 goto ERROR
:: Make the web page
type %0 | find " " | find /v " " | find /v "Not Me!"> %TEMP%\UserIn.htm
:: Make the VBS code
type %0 | find " " | find /v " " | find /v "Not Me!" > %TEMP%\UserIn.vbs
:: Run the vbs code
start /w wscript.exe %TEMP%\UserIn.vbs
call %TEMP%\UserIn.bat
:: Clean up
echo j|del %TEMP%\UserIn.*
:: so wie die beiden Zeilen hier stehen, werden USERNAME und PASSWORD
:: nur angezeigt. Willst Du damit etwas machen, mußt Du das ändern z.B.
:: if %USERNAME%=BLABLA tue dies z.B. goto ???
:: mit PASSWORD das gleiche
echo Your user name is %USERNAME%
echo Your password is %PASSWORD%
pause
goto DONE
:ERROR
cls
echo %0 is not the full path and file name
echo for the batch file. You MUST call this
echo batch file with a full path and file name.
goto DONE
:HTML
<html><body><form>User Name:
<input type=text name=username tabindex=1>
Password:
<input type=password name=password>
<input type=button
language=vbscript name=submit
value=OK onclick='submit.value="Done"'>
</form></body></html>
:VBS
Set fs = CreateObject("Scripting.FileSystemObject")
strFile = fs.GetAbsolutePathName(fs.BuildPath(fs.GetSpecialFolder(2), "UserIn.htm"))
Set web = CreateObject("InternetExplorer.Application")
web.Offline = True
web.AddressBar = False
web.Height = 200
web.Width = 250
web.MenuBar = False
web.StatusBar = False
web.Silent = True
web.ToolBar = False
web.Navigate strFile
Do While web.Busy
Loop
On Error Resume Next
Set doc = Nothing
Do Until Not doc Is Nothing
Set doc = web.Document
Loop
doc.Forms(0).elements("username").focus
web.Visible = True
Err.Clear
Do Until doc.Forms(0).elements("submit").Value <> "OK"
Wscript.Sleep 100
If Err.Number <> 0 Then Exit Do
Loop
strFile = fs.GetAbsolutePathName(fs.BuildPath(fs.GetSpecialFolder(2), "UserIn.bat"))
Set ts = fs.OpenTextFile(strFile, 2, True)
ts.WriteLine "SET USERNAME=" & doc.Forms(0).elements("username").Value
ts.WriteLine "SET PASSWORD=" & doc.Forms(0).elements("password").Value
ts.Close
web.Quit
:DONE
cls
Moin alle,
eine letzte Fussnote zu dem Beispielcode.
Was ich auch beim nur einmaligen Testen des Schnipsels vorher machen würde:
Ändern des Variablennamens der abgefragten Variable </i>Username</i>
Meinetwegen in myUsername
Denn dieser Variablenname kollidiert natürlich mit den Windows-Anmeldenamen.
Wenn ich für diesen Anmelde-Namen ein Password abfragen will - auch okay.
Dann brauch ich aber den Usernamen nicht speichern.
Wenn ich einen Benutzernamen und ein Password für ein anderes System / eine andere Authentifizierung brauche, dann ... ->speichern in myUsername, myPassword.
Ansonsten setze ich mal diesen Beitrag auf "Gelöst".
Grüße
Biber
P.S Eventuell sollten wir bei fast-unformatierbaren Code-Schnipseln wie oben
neben der Kategorie "Gelöst" auch noch eine Kategorie "Mühevoll gelöst" einführen.
eine letzte Fussnote zu dem Beispielcode.
Was ich auch beim nur einmaligen Testen des Schnipsels vorher machen würde:
Ändern des Variablennamens der abgefragten Variable </i>Username</i>
Meinetwegen in myUsername
Denn dieser Variablenname kollidiert natürlich mit den Windows-Anmeldenamen.
Wenn ich für diesen Anmelde-Namen ein Password abfragen will - auch okay.
Dann brauch ich aber den Usernamen nicht speichern.
Wenn ich einen Benutzernamen und ein Password für ein anderes System / eine andere Authentifizierung brauche, dann ... ->speichern in myUsername, myPassword.
Ansonsten setze ich mal diesen Beitrag auf "Gelöst".
Grüße
Biber
P.S Eventuell sollten wir bei fast-unformatierbaren Code-Schnipseln wie oben
neben der Kategorie "Gelöst" auch noch eine Kategorie "Mühevoll gelöst" einführen.