2013-04-19 26 views
9

Questo Stack Overflow   domanda suggerisce un comando che sembra come se dovrebbe funzionare, ma non è così (che la risposta viene eliminato ora, però):Come per completare il comando RUNAS in una linea

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

Il comando sarebbe:

echo PaSsWoRd | runas /user:Administrator cmd 

Tuttavia si dice:

nome utente sconosciuto o password errata.

I dettagli sono sicuramente corretti. Per esempio, se ero a correre:

runas /user:Administrator 

... e nella riga successiva, se ho digitato PaSsWoRd, che avrebbe funzionato senza alcun problema.

+0

Cosa dire di 'runas/utente: amministratore" cmd "<" C: \ pass.txt "' – Todd

risposta

15

runas command does not allow a password on its command line. Questo è di progettazione (e anche il motivo per cui non è possibile reimpostare una password come input). Raymond Chen lo dice bene:

Il programma RunAs richiede di digitare la password manualmente. Perché non accetta una password sulla riga di comando?

Questa è stata una decisione consapevole. Se fosse possibile passare la password sulla riga di comando, le persone inizierebbero a incorporare le password in file batch e script di accesso, il che è ridicolmente insicuro.

In altre parole, manca la funzionalità per rimuovere la tentazione di utilizzare la funzione in modo non sicuro.

Bill

+1

Quale è completamente sconfiggente. È davvero fastidiosa che l'idea di "sicurezza" sia invocata dai progettisti di software che cercano di essere più intelligenti rispetto all'utente. Se l'utente desidera incorporare la password, questa è la sua prerogativa. Invece tutti noi che ci imbattiamo in questo link andremo a cercare altri modi per utilizzare l'equivalente SUDO in Windows attraverso altri mezzi sgradevoli, piegando le regole e sprecando i tempi. Invece di avere un file batch vulnerabile, sto andando a sendup riducendo la sicurezza generale sulla macchina per far funzionare "sudo". Il design non dovrebbe mai essere più intelligente dell'utente. Hai fallito! –

+0

1) Non ho preso questa decisione, quindi parlarne a malapena è inutile. 2) Microsoft ha sicuramente preso la decisione giusta. Incorporare le password in uno script è una pessima idea, per il motivo principale già indicato nella risposta. –

+0

si potrebbe psexec da microsoft sysinternals, ad es. psexec -user MyUser -p MyPassword "cmd" – user797717

0

Se lo ha fatto accettare l'input in filodiffusione, allora in questo caso il "password" avrebbe uno spazio finale.

Questo è qualcosa da tenere d'occhio.