benripley
Goto Top

SCRIPT: Mappen von Laufwerken, mit verdeckter Passworteingabe

Hallo zusammen,


ich habe folgendes Skript:

@Echo off

net use * /d /y >nul
net use /PERSISTENT:NO >nul

set /p user=Benutzername:
set /p pass=Passwort:
cls
 
net use W: \\eine IP\Freigabe /user:domain\%user% %pass% >nul
net use X: \\nicht die selbe IP\Freigabe /user:domain\%user% %pass% >nul

ECHO Laufwerke erfolgreich verbunden!
ping -n 6 localhost >nul

Macht erstmal alles was es soll und ist auch idiotensicher, aber jetzt zu meiner Frage: Wie kann ich bei der Eingabe des Passwortes nur Sternchen erscheinen lassen?
Ich weiss die Frage gab es schon ein paar mal und ich hab die Threads zigmal gelesen - ohne Erfolg. Also bitte - ich nehme jede Hilfe.


EDIT: Hab das ganze jetzt ohne Eingabe gelöst - einen neuen User mit allen Rechten ausgestattet und mit Passwort in die Batch geschrieben - danach aber eine EXE draus gemacht.

Content-Key: 258142

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

Printed on: April 25, 2024 at 21:04 o'clock

Member: DerWoWusste
DerWoWusste Dec 19, 2014 updated at 17:38:55 (UTC)
Goto Top
Hi.

die net.exe akzeptiert ja unsichtbare Eingabe, wenn man ein Sternchen an Stelle des Kennwortes ins Skript packt.
Beispiel:
net use x: \\server\share /user:domain\%user% *
Dann müssten Deine Nutzer es jedoch zweimal eingeben.

set.exe kennt keine Sternchen, leider.
Hier müsstest Du auf Powershell ausweichen (ist das eine Option?) oder gleich die ACLs auf der Freigabe ändern, so dass diese Eingaben überflüssig werden.
Member: colinardo
colinardo Dec 19, 2014 updated at 21:06:04 (UTC)
Goto Top
Hallo BenRippley,
mit ein bißchen Powershell-Würze innerhalb der Batch kannst du das mit dem Standard-Authentifizierungs Dialog abfackeln:

b7795b4c43c1549516d5eb29d50df4f1

Beispiel:
@echo off
net use * /d /y >nul
set "server=\\Server\Freigabe"  
set "drive=Z:"  
powershell -ExecutionPolicy ByPass -WindowStyle Hidden -NoLogo -command "& {$map = {$cred = Get-Credential -Message 'Ihre Anmeldedaten auf: %server%';if ($cred -eq $null){return $true};Try{(New-Object -Com WScript.Network).MapNetworkDrive('%drive%','%server%',$false,$cred.UserName,$cred.GetNetworkCredential().Password);return $true}catch{return $false}};do{$result = &$map}until($result)}"  
Als schöner Nebeneffekt wird gleichzeitig auch das Batch-Fenster ausgeblendet face-wink Bei fehlerhaften Credentials wird der Dialog erneut angezeigt.

Grüße Uwe