2013-04-19 14 views
9

Dieser Stapel   Überlauf Frage schlägt einen Befehl, als ob es aussieht sollte funktionieren, aber es funktioniert nicht (diese Antwort jetzt gelöscht wird, obwohl):Wie der RUNAS Befehl in einer Zeile vervollständigen

Single line command for Run as a different user on Window 7 that contains a password also

würde der Befehl:

echo PaSsWoRd | runas /user:Administrator cmd 

Allerdings heißt es:

unbekannter Benutzername oder falsches Passwort.

Die Details sind jedoch definitiv richtig. Zum Beispiel, wenn ich läuft:

runas /user:Administrator 

... und in der nächsten Zeile, wenn ich in PaSsWoRd getippt, wäre es kein Problem arbeiten.

+0

Wie wäre es mit 'runas/user: Administrator" cmd "<" C: \ pass.txt "' – Todd

Antwort

15

Die runas command does not allow a password on its command line. Dies ist von Entwurf (und auch der Grund, warum Sie kein Passwort als Eingabe an die Pipeline übergeben können). Raymond Chen sagt es nett:

Das RunAs-Programm erfordert, dass Sie das Kennwort manuell eingeben. Warum akzeptiert es kein Passwort in der Befehlszeile?

Dies war eine bewusste Entscheidung. Wenn es möglich wäre, das Passwort in der Befehlszeile zu übergeben, würden Benutzer damit beginnen, Kennwörter in Batchdateien und Anmeldeskripts einzubetten, was lächerlich unsicher ist.

Mit anderen Worten, das Feature fehlt, um die Versuchung zu entfernen, das Feature unsicher zu verwenden.

Bill

+1

Was ist komplett zu besiegen. Es ist wirklich ermüdend, dass die Vorstellung von "Sicherheit" von Softwaredesignern hervorgerufen wird, die versuchen, schlauer zu sein als der Benutzer. Wenn der Benutzer das Passwort einbetten möchte, ist dies sein Vorrecht. Stattdessen werden wir alle über diesen Link gehen und andere Wege suchen, um SUDO-Äquivalente in Fenstern durch andere unappetitliche Mittel zu nutzen, die Regeln zu verbiegen und Zeiten zu verschwenden. Anstatt eine Batchdatei angreifbar zu machen, werde ich sendup, um die Gesamtsicherheit auf dem Rechner zu reduzieren, damit "sudo" funktioniert. Design sollte niemals intelligenter sein als der Benutzer. Du scheiterst! –

+0

1) Ich habe diese Entscheidung nicht getroffen, deswegen ist es sinnlos, darüber zu reden. 2) Microsoft hat definitiv die richtige Entscheidung getroffen. Das Einbetten von Passwörtern in ein Skript ist eine ungeheuer schlechte Idee, aus dem Hauptgrund, der bereits in der Antwort angegeben ist. –

+0

könnten Sie psexec von Microsoft Sysinternals z. psexec -user MyUser -p MeinPasswort "cmd" – user797717

0

Wenn es verrohrt Eingabe in diesem Fall Ihr „Passwort“ würde ein Leerzeichen akzeptiert dann hat.

Darauf muss man achten.