Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Suche Batch mit unsichtbarer Kennworteingabe

Frage Entwicklung Batch & Shell

Mitglied: 7036

7036 (Level 1)

30.08.2006, aktualisiert 18.10.2012, 6231 Aufrufe, 16 Kommentare

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
Mitglied: geTuemII
30.08.2006, aktualisiert 18.10.2012
Hallo Siggi,

das hatten wir schon einmal. Es geht im Batch offenbar nicht so ohne weiteres:

http://www.administrator.de/forum/passwort-eingeben-aber-anzeigen-26601 ...

HTH geTuemII
Bitte warten ..
Mitglied: 7036
30.08.2006 um 21:03 Uhr
Ja hatte ich auch gefunden,

aber ich dachte da an etwas wie eine Eingabe per < einlesen.
Möchte nur keine Eingabe anzeigen lassen...

Danke
Bitte warten ..
Mitglied: maneich
31.08.2006 um 02:29 Uhr
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

Mit freundlichen Grüßen maneich
Bitte warten ..
Mitglied: 7036
05.09.2006 um 22:06 Uhr
Hi,

sorry mich jetzt erst zu melden, hatte aber viel zu tun....

werde es am Wochenende mal testen....

sieht aber schon mal super aus...

Danke


was soll denn in der Userin.bat stehen? Verstehe ich nicht ganz...wird diese Datei ausgelesen?

Gruß Siggi
Bitte warten ..
Mitglied: maneich
06.09.2006 um 01:36 Uhr
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.

Mit freundlichen Grüßen maneich
Bitte warten ..
Mitglied: 7036
06.09.2006 um 08:03 Uhr
Hi,

also bei mir rennt das Script einfach weiter und wartet nicht auf die Eingabe...

Bin etwas verwundert...

Gruß
Bitte warten ..
Mitglied: maneich
06.09.2006 um 09:31 Uhr
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
01.
<html><body><form>User Name:     
02.
       
03.
input type=text name=username tabindex=1>     
04.
       
05.
Password:    
06.
       
07.
input type=password name=password> 
08.
        br><input type=button  
09.
        language=vbscript name=submit  
10.
       value=OK onclick='submit.value="Done"'> 
11.
       </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.

Mit freundlichen Grüßen maneich
Bitte warten ..
Mitglied: 7036
06.09.2006 um 10:24 Uhr
Hi,

also ich bekomme auf der Shell folgende Fehlermeldung:

Der Befehl "C:\Temp\UserIn.bat" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.

Gruß
Bitte warten ..
Mitglied: maneich
06.09.2006 um 11:07 Uhr
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.

Mit freundlichen Grüßen maneich
Bitte warten ..
Mitglied: geTuemII
06.09.2006 um 13:52 Uhr
ich wußte nicht, daß Text und
Codes hier so schlecht formatiert werden, da
sollten Sich die Forenbetreiber mal darum
kümmern.

Hallo Maneich,

für Code gibt es hier eine Extra-Formatierung : http://www.administrator.de/index.php?mod=faq_detail&idx=format#toc ...

HTH geTuemII
Bitte warten ..
Mitglied: maneich
06.09.2006 um 14:33 Uhr
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
01.
 und 
mitgeschrieben.

Mache ich etwas falsch???

Mit freundlichen Grüßen maneich
Bitte warten ..
Mitglied: geTuemII
06.09.2006 um 14:44 Uhr
Hallo maneich,

sieht aus, als ob das Format eine eigene Zeile braucht:

1. eigene Zeile für Code-Formatierung

01.
@echo off 
02.
cls 
03.
echo Please enter your user name and password in the entry box... 
04.
:: See if I can find myself 
05.
If not exist %0 goto ERROR 
06.
:: Make the web page 
07.
type %0 | find " " | find /v " " | find /v "Not Me!" > %TEMP%\UserIn.htm 
08.
:: Make the VBS code 
09.
type %0 | find " " | find /v " " | find /v "Not Me!" > %TEMP%\UserIn.vbs
2. eigene Zeile für Code-Formatierungohne eigene Zeile

01.
@echo off 
02.
cls 
03.
echo Please enter your user name and password in the entry box... 
04.
:: See if I can find myself 
05.
If not exist %0 goto ERROR 
06.
:: Make the web page 
07.
type %0 | find " " | find /v " " | find /v "Not Me!" > %TEMP%\UserIn.htm 
08.
:: Make the VBS code 
09.
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
01.
 und geht bis return-
-return.

HTH geTuemII
Bitte warten ..
Mitglied: maneich
06.09.2006 um 15:39 Uhr
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.

01.
@echo off 
02.
cls 
03.
echo Please enter your user name and password in the entry box... 
04.
:: See if I can find myself 
05.
If not exist %0 goto ERROR 
06.
:: Make the web page 
07.
type %0 | find "    " | find /v "     " | find /v "Not Me!"> %TEMP%\UserIn.htm 
08.
:: Make the VBS code 
09.
type %0 | find "     " | find /v "      " | find /v "Not Me!" > %TEMP%\UserIn.vbs 
10.
 
11.
:: Run the vbs code 
12.
start /w wscript.exe %TEMP%\UserIn.vbs 
13.
call %TEMP%\UserIn.bat 
14.
 
15.
:: Clean up 
16.
echo j|del %TEMP%\UserIn.* 
17.
:: so wie die beiden Zeilen hier stehen, werden USERNAME und PASSWORD  
18.
:: nur angezeigt. Willst Du damit etwas machen, mußt Du das ändern z.B. 
19.
:: if %USERNAME%=BLABLA tue dies z.B. goto ??? 
20.
:: mit PASSWORD das gleiche 
21.
echo Your user name is %USERNAME% 
22.
echo Your password is %PASSWORD% 
23.
pause 
24.
goto DONE 
25.
 
26.
:ERROR 
27.
cls 
28.
echo %0 is not the full path and file name 
29.
echo for the batch file. You MUST call this 
30.
echo batch file with a full path and file name. 
31.
goto DONE 
32.
 
33.
:HTML 
34.
    <html><body><form>User Name: 
35.
     
36.
<input type=text name=username tabindex=1> 
37.
     
38.
Password: 
39.
     
40.
<input type=password name=password> 
41.
     
42.
<input type=button  
43.
    language=vbscript name=submit  
44.
    value=OK onclick='submit.value="Done"'> 
45.
    </form></body></html> 
46.
 
47.
:VBS 
48.
     Set fs = CreateObject("Scripting.FileSystemObject") 
49.
     strFile = fs.GetAbsolutePathName(fs.BuildPath(fs.GetSpecialFolder(2), "UserIn.htm")) 
50.
     Set web = CreateObject("InternetExplorer.Application") 
51.
     web.Offline = True 
52.
     web.AddressBar = False 
53.
     web.Height = 200 
54.
     web.Width = 250 
55.
     web.MenuBar = False 
56.
     web.StatusBar = False 
57.
     web.Silent = True 
58.
     web.ToolBar = False 
59.
     web.Navigate strFile 
60.
     Do While web.Busy 
61.
     Loop 
62.
     On Error Resume Next 
63.
     Set doc = Nothing 
64.
     Do Until Not doc Is Nothing 
65.
     Set doc = web.Document 
66.
     Loop 
67.
     doc.Forms(0).elements("username").focus 
68.
     web.Visible = True 
69.
     Err.Clear 
70.
     Do Until doc.Forms(0).elements("submit").Value <> "OK" 
71.
     Wscript.Sleep 100 
72.
     If Err.Number <> 0 Then Exit Do 
73.
     Loop 
74.
     strFile = fs.GetAbsolutePathName(fs.BuildPath(fs.GetSpecialFolder(2), "UserIn.bat")) 
75.
     Set ts = fs.OpenTextFile(strFile, 2, True) 
76.
     ts.WriteLine "SET USERNAME=" & doc.Forms(0).elements("username").Value 
77.
     ts.WriteLine "SET PASSWORD=" & doc.Forms(0).elements("password").Value 
78.
     ts.Close 
79.
     web.Quit 
80.
 
81.
:DONE 
82.
cls
Bitte warten ..
Mitglied: 7036
06.09.2006 um 17:21 Uhr
Super...hat funktioniert....



Dankeschön
Bitte warten ..
Mitglied: Biber
06.09.2006 um 18:56 Uhr
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.
Bitte warten ..
Mitglied: 7036
06.09.2006 um 19:41 Uhr
Hi Biber,

danke für den Nachtrag...hatte meine Variablen wie ich sie halt brauche abgeändert.
Mit dem nichtspeichern des Usernamens finde ich eine klasse Idee...

Vielen Dank

Gruß Siggi
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...