dipps
Goto Top

Passworteingabe Nicht Anzeigen

Passworteingabe Nicht Anzeigen

Hallo ich wollte mal fragen ob einer eine Ahnung hat das wenn ich in der batch eine Eingabe mache deise durch Sterne verschlüsselt werden kann?

Bsp.

set /p pass="Passwort: "


jetz würde wärend der Eingabe in klar text Eingegeben werden aber das PW soll nicht angezeigt werden. wie kann ich das umsetzen?

Content-ID: 64541

Url: https://administrator.de/contentid/64541

Ausgedruckt am: 23.11.2024 um 11:11 Uhr

bastla
bastla 24.07.2007 um 12:23:52 Uhr
Goto Top
Hallo Dipps!

Du könntest es mit einer Kombination Batch/VBS versuchen (allerdings erst ab XP):
@echo off & setlocal
set "GetPW=%temp%\GetPW.vbs"  
echo WScript.Echo CreateObject("ScriptPW.Password").GetPassword()>"%GetPW%"  
echo Bitte Passwort eingeben: 
for /f "delims=" %%i in ('cscript //nologo "%GetPW%"') do set "Pass=%%i"  
del "%GetPW%"  
echo %Pass%

Grüße
bastla
Dipps
Dipps 24.07.2007 um 13:04:59 Uhr
Goto Top
Gib es da auch noch eine andere Lösung was bei älteren als XP geht?
Dipps
Dipps 24.07.2007 um 15:05:25 Uhr
Goto Top
Oder geht es wenigstens so das pro tasten schlag wenigstens ein stern gemalt wird? und wenn mölich soll Passwort: und die Eingabe auf eine zeile
Biber
Biber 24.07.2007 um 15:42:43 Uhr
Goto Top
Moin Dipps,

nein, da gibt es nichts (oder nichts Brauchbares).

Ohne Zusatz-Utility oder ein paar selbst zusammengebratenen VBSkript/C++-/Basic-Zeilen keine Möglichkeit an der TUI/am CMD-Prompt.

Grüße
Biber
Dipps
Dipps 24.07.2007 um 15:47:55 Uhr
Goto Top
aber ist es möglich halt das man sternchen pro zeichen machen kann?
Biber
Biber 24.07.2007 um 20:22:42 Uhr
Goto Top
Moin Dipps,

ach so, jetzt, wo Du die Frage zum dritten Mal stellst, jetzt verstehe ich es endlich... *sichvornKoppklatscht*

dann muss ich natürlich antworten:

nein, da gibt es nichts (oder nichts Brauchbares).

Ohne Zusatz-Utility oder ein paar selbst zusammengebratenen VBSkript/C++-/Basic-Zeilen keine Möglichkeit an der TUI/am CMD-Prompt.

Grüße
Biber
lustigerAstronaut
lustigerAstronaut 25.07.2007 um 10:17:54 Uhr
Goto Top
Sehr geehrter Herr Biber

Sie dürfen mit Herr Dipps nicht so streng sein.
Er wollte auch nur ganz sicher gehen...daher musste er die Frage dreimal stellen. Es hätte ja sein können, dass es Ihnen - sehr geehrter Herr Biber - gerade entfallen ist...oder dass sie es einfach nicht sagen wollen.

Daher hat Dipps wieder und wieder gefragt. Sie kenne bestimmt auch folgende Weisheit: "Stetes Tropfen höhlt den Stein"
Nun, da hat Herr Dipp Sie wohl falsch eingeschätzt aber es wird ihm bestimmt eine Lehre sein.

Mit freundlichen Grüssen
lustigerAstronaut
Biber
Biber 25.07.2007 um 12:18:44 Uhr
Goto Top
@lustigerAstronaut
<grinz>.Moderater als ein Moderator...

Na ja, "Drei Mal ist Bremer Recht", wie es bei uns heißt..
Von daher sollte ich vielleicht auch den Butenbremern gegenüber nachsichtig sein.

Grüße
Biber
P.S. Hieß das nicht "Steter Tropfen höhlt die Leber"??
zensbert
zensbert 12.07.2010 um 20:43:06 Uhr
Goto Top
Hallo Bastla..
Auch wenn das Thema drei Jahre alt ist, wird es für mich wieder aktuell..
Dein Quelltext funktioniert bei mir sehr gut.. unter XP, unter Seven 64Bit kommt leider:

 Bitte Passwort eingeben:
C:\Users\Username\AppData\Local\Temp\GetPW.vbs(1, 1) Laufzeitfehler in Microsoft
 VBScript: ActiveX-Komponenten kann kein Objekt erstellen: 'ScriptPW.Password'  


UAC komplett aus, Administratorrechte.

Hatte das bis jetzt so gelöst
 > C:\usermessage.vbs ECHO WScript.Echo InputBox( "Wie lautet das Passwort für den lokalen Modus?", "Sicherheits-Abfrage", "" )  
FOR /F "tokens=*" %%A IN ('CSCRIPT.EXE //NoLogo C:\usermessage.vbs') DO SET usbpw=%%A  


Jedoch stört es mich dass der Kunde der hinter mir steht das Passwort sieht, kann man da irgendwie einen Weg finden? Betriebssysteme für die Batch gehen von XP über Vista bis Seven. Und ein schönes Sternchen pro Buchstabe wäre super face-wink

Dankeschön..
Thomas
bastla
bastla 18.07.2010, aktualisiert am 18.10.2012 um 18:42:53 Uhr
Goto Top
Hallo zensbert!

Leider kann ich das unter W7 nachvollziehen, habe aber keine Lösung anzubieten face-sad ...

Falls Du diesen Thread noch nicht gefunden haben solltest: pacobay hat dort einiges zum Thema zusammengetragen ...

Und: zB hier findest Du eine Erklärung / weitere Ansätze ...

Grüße
bastla

P.S.:
Und ein schönes Sternchen pro Buchstabe wäre super face-wink
Ob ich jetzt wohl auf Bibers Ausführungen weiter oben verweisen sollte? face-wink Oder doch eher auf die in meinem letzten Link angesprochene Möglichkeit mit Bill Stewarts EditVar ...
zensbert
zensbert 21.07.2010 um 22:20:42 Uhr
Goto Top
Danke für die Antwort..
ich habe noch eine andere möglichkeit gefunden für alle die vor dem selben problem stehen.. und zwar "winput" von Horst Schaeffer..

http://home.mnet-online.de/horst.muc/w32diald.htm#winput

winput "set pw=$input" "Bitte PW eingeben" /pass  
echo Passwort ist %pw%

gruß und danke nochmal
Biber
Biber 22.07.2010 um 11:28:24 Uhr
Goto Top
Moin zensbert, bastla und alle MitleserInnen,

die Hinweise auf Bill Stewarts EditVar.exe und Horst Schaeffers winput.exe werte ich mal als weitere Bestätigung dafür, dass
  • eine verdeckte Passworteingabe/Passworteingabe mit Sternchen auch für die Konsole durchaus implementierbar ist
  • es aber nun wirklich nicht sinnvoll ohne Zusatz-One-Trick-Tools geht.

Und Letzteres war ja ursprünglich die eigentliche Frage.

Von Herrn Dipps, dem Beitragsersteller, erwarte ich kein Lebenszeichen mehr in diesem Beitrag.

Deshalb setze ich mal diesen Beitrag auf "Beantwortet" und "Geschlossen".

Falls noch jemand neue Aspekte hier einbringen möchte -> PN an mich, dann öffne ich wieder.

Grüße
Biber
106009
106009 30.04.2012 um 21:08:12 Uhr
Goto Top
Moin,

Zitat von @Biber:
Deshalb setze ich mal diesen Beitrag auf "Beantwortet" und "Geschlossen".
Falls noch jemand neue Aspekte hier einbringen möchte -> PN an mich, dann öffne ich wieder.

Na denn, wenn er denn wirklich closed wäre, isser aber nich. face-smile

Seit Vista gibt es eine Möglichkeit mit Mitteln des OS.

@echo off
:: Die nächsten beiden Zeilen dienen nur zur Überprüfung, ob die OS-Version mindestens 6 ist, denn unter W2K/XP läuft das Script nicht.
FOR /F "tokens=2 delims=[" in ('ver') do set "osv=%%a"  
if [%osv:~8,1%] LSS [6] @echo Falsche OS-Version & pause & goto :eof


setlocal enabledelayedexpansion
set pwchars=12

::Gültige Auswahlzeichen für CHOICE und das Passwort: a-z, A-Z, 0-9 und ASCII-Werte zwischen 128 und 254,
:: wobei für die Zeichen 128-254 die verwendete Codepage in der Konsole relevant ist.

set "arr=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"  
:pwschleife
choice /c %arr% /n /cs /m "Passwort: %stern%"  
cls
set /a ind=%errorlevel%-1
set char=!arr:~%ind%,1!
set /a pwchars=%pwchars%-1
set stern=%stern%*
set pw=%pw%%char%
if not %pwchars% equ 0 goto pwschleife
cls

@echo fertig. Passwort ist %pw%
pause

Die Idee zu dieser Version stammt nicht von mir, sondern aus diesem Thread:
Batch: Passwort verdeckt eingeben

Gruß

Edit: Nachfolgenden Code ersetzt durch die "ver"-Version (oben Zeilen 03. und 04. )

Die Routine benötigt 1-3 Sekunden, kann aber auch entfallen, wenn man sicher das korrekte OS (also ab Vista) verwendet. 
for /f "tokens=2" %%a in ('systeminfo ^| findstr "version"') do set "osv=%%a"
if [%osv:~0,1%] LSS [6] @echo Falsche OS-Version & pause & goto :eof 
activedirectory
activedirectory 01.05.2012 um 01:59:51 Uhr
Goto Top
@106009: Danke für die Ausarbeitung meiner Grundidee. Die OS Überprüfung gibt dem Skript den letzten Schliff. Ich werds mal testen.
60730
60730 01.05.2012 um 22:33:35 Uhr
Goto Top
Salü,

Zitat von @activedirectory:
@106009: Danke für die Ausarbeitung meiner Grundidee. Die OS Überprüfung gibt dem Skript den letzten Schliff.
Ich werds mal testen.

;face-smile und wenn du am testen bist, nimm auch diese Variante in die teststube mit...
C:\>for /f "tokens=5 delims=] " %a in ('ver') do set osv=%a & if %osv% lss 6 echo goto shell


edit:
@bastla:
Ich hab doch jetzt nen Einreiher (da ist man eh zu overdressed bei der Forenleichen wiederbelebungs party) und kann keine zweizeiler mehr weil jedes % kostet extra face-wink
/edit
bastla
bastla 01.05.2012 um 22:40:51 Uhr
Goto Top
... aber teile das besser auf 2 Zeilen auf ...

Grüße
bastla

[Edit] @t-mo
... "delayedExpansion" macht's ja auch nicht wirklich billiger face-wink ...

BTW: Sparen müssen aber sowieso alle - ab Vista gibt's noch nicht mal mehr ein Token #5 (wodurch %osv% dann aber jedenfalls "lss 6" wird) ...
[/Edit]
106009
106009 02.05.2012 um 01:45:52 Uhr
Goto Top
Hi,
schmeißt doch nicht so mit den Tokens durch die Gegend, 2 reichen auch. face-wink

Man könnte auch OSMAJOR und OSMINOR zum Bleistift in die System-Umgebungsvariable der Clients schreiben, dann braucht man gar keine Tokens. :-P Ich frage mich sowieso, warum da seit Jahrenden nur OS=Windows_NT steht.

Gruß
Biber
Biber 04.05.2012 um 15:22:55 Uhr
Goto Top
[OT]
Moin ollidolli,

Zitat von @106009:
Ich frage mich sowieso, warum da seit Jahrenden nur OS=Windows_NT steht.

Diese Frage (wenn sie dich denn wirklich beschäftigt) kann ich halbwegs beantworten.

Dieses NT wird zwar gern übersetzt mit "New technology", wie es ja von den Redmondern Marketingstrategen später breitgetreten wurde. Dennoch entstand es eigentlich aus dem Codenamen N-Ten, der wiederum für den "neuen" 80860-Chip, einen in den 90er Jahren geplanten 64-Bit-Chip stand.
Dieser Chip sollte explizit keine Rücksicht auf Kompatibilität zu vorhandenen x86-Chips nehmen.

Und alle Betriebssysteme, die perspektivisch auf dieser Chip-Architektur aufsetzen bekamen den Stempel "Windows_NT" in der neuen Umgebungsvariable %OS%- alles ältere hatte eben keine %OS%-Variable.

Also spätestens ab Windows 2000, Windows XP, Vi$ta, ... Windows7.... und vermutlich wird auch Windows 12 noch dieses Aufkleberchen haben.

"Windows_NT" Ist also nur entfernt abgeleitet von oder verschwägert mit dem ähnlich klingenden Interimsbetriebssystem "Windows NT 4.0"..

Grüße und schönes Wochenende
Biber
[/OT]
106009
106009 04.05.2012 um 15:26:36 Uhr
Goto Top
Hi, Nagetier. face-smile

Die Erklärung klingt einleuchtend, das war mir nicht bekannt, danke für die Erläuterung.

Ebenfalls schönes Wochenende
ollidolli
ET0815
ET0815 03.07.2012 um 23:48:58 Uhr
Goto Top
Hallo alle zusammen!

Hab da mal was gebastelt. Allerdings ist die Frage, bekommt man es irgendwie hin, als Eingebe nicht "ß" sondern die Enter-Taste nutzen zu können?

@echo off
:start
echo.Bitte das Passwort eingeben und mit "á" best„tigen  
echo.
echo.Passwort: %stern%
choice /c:áabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 /n /cs >pw
set /p pw=<pw
del pw
if "á"=="%pw%" goto fertig  
set stern=%stern2%*
set stern2=%stern%
set pw=%pw2%%pw%
set pw2=%pw%
cls
goto start

:fertig
echo.
echo.%pw2%
pause

Gruß
ET085