Evitare di avviare explorer per UAC-elevare un programma dalla shell


1

Sono un membro del gruppo amministratori su Windows 7. Devo eseguire foo.exeda un Cmd o Powershell. Il file exe richiede l'elevazione per funzionare ma l'elevazione non è specificata nel suo manifest.

Di solito devo fare start .per aprire Explorer, fare clic con il tasto destro del mouse su exe e selezionare Esegui come amministratore.

C'è un modo più semplice? Non ho intenzione di disattivare l'UAC, non voglio che la password sia ricordata password o per evitare il prompt. Voglio solo evitare la necessità di avviare la finestra di Explorer.

Sono un membro del gruppo amministratori. Non voglio correre come un altro utente, voglio solo vedere il prompt UAC senza password che vedo quando faccio me stesso facendo clic con il tasto destro in Explorer, ma senza aprire Explorer, eseguire strumenti di terze parti, disabilitare UAC, capacità di fare lo stesso dagli script o dal ricordare le credenziali.

Voglio solo invocare il solito prompt UAC senza un passaggio intermedio.

Per chiarire, voglio la seguente sequenza:

  1. Windows 7, Controllo account utente attivo, Sono nel gruppo amministratori, il prompt Controllo account utente è impostato per rispondere sì / no.

  2. Aprire un prompt dei comandi non elevato e passare a una cartella profonda ed eseguire altre attività.

  3. Eseguo 'elevate-command-sequence foo.exe' e un prompt UAC si apre esattamente nello stesso modo in cui si apre quando faccio clic con il tasto destro in Explorer. La directory corrente per foo.exe è impostata sulla cartella principale in cui mi trovo.

Mi chiedo se questo elevate-command-sequenceesiste in cmd o PowerShell fuori dalla scatola.


1
È possibile utilizzare runase fornire un Administratoraccount e la password per farlo. Un esempio del comando èrunas /user:"Administrator"
Ramhound,

Mi hanno risposto miliardi di volte e non è quello che voglio. Sono un membro del gruppo amministratori. Non voglio correre come un altro utente, voglio solo vedere il prompt UAC senza password che vedo quando faccio me stesso facendo clic con il tasto destro in Explorer, ma senza aprire Explorer, eseguire strumenti di terze parti, disabilitare UAC, capacità di fare lo stesso dagli script o dal ricordare le credenziali. Voglio solo invocare il solito prompt UAC senza un passaggio intermedio.
nponeccop,

1
Se non è quello che vuoi, chiarisci la tua domanda. Ti suggerisco di modificare il file manifest. Sospetto vivamente che se si utilizza runaslo stesso profilo che si sta utilizzando non si riceverà una richiesta di password. Dato che eri un po 'scortese con me, non ho intenzione di tornare a questa domanda.
Ramhound,

Volevo solo menzionare il lungo elenco di altri scenari di cui ho letto per garantire al pubblico che ho cercato risposte esistenti. Mi dispiace di sembrare scortese, insultare non era il mio intento.
nponeccop,

Risposte:


2

Il prompt dei comandi non può avviare nativamente applicazioni elevate se non è stato avviato in uno stato elevato. Fa schifo, ma è solo una parte del comportamento di Windows.

Se vuoi aggirare il problema, devi utilizzare uno strumento di terze parti che avvierà il programma elevato per te. Da una rapida ricerca su Google che ho trovato ELE , questo ti permetterà di eseguire un programma in uno stato elevato da un prompt dei comandi non elevato (dopo un pop-up UAC ovviamente)

c:\>ele foo.exe  

Sono sicuro che ci sono un milione di programmi in più che lo fanno, diamine potrei scriverne uno in C # qui in questa risposta.

namespace Sandbox_Console
{
    public class Program
    {

        private static void Main(string[] args)
        {
            Process newProcess = new Process();
            newProcess.StartInfo.Verb = "runas";
            newProcess.StartInfo.WorkingDirectory = Environment.CurrentDirectory;
            newProcess.StartInfo.FileName = args[0];
            newProcess.StartInfo.Arguments = String.Join(" ", args, 1, args.Length - 1);
            newProcess.Start();
        }
    }
}

Ora quel codice è molto fragile e non può gestire cose come gli spazi negli argomenti in questo momento, ma non sarebbe difficile da aggiungere.


1

Forse questa modifica alle impostazioni di Criteri di gruppo può aiutarti:

  1. Avvia -> run->gpedit.msc

  2. Navigare verso Computer Configuration --> Policies-->Windows Settings-->Security Settings -->Local Policies-->Security Options

inserisci qui la descrizione dell'immagine

3.Cambia behavior of elevation prompt for administrator(puoi derivare come desideri)

Riavvia il computer per rendere effettive le modifiche


Lo definirei come "disabilitazione del controllo dell'account utente". Non è quello che voglio. Voglio che il prompt rimanga al suo posto.
nponeccop,

1
@nponeccop - Non puoi avere tutto nella vita. Controllo dell'account utente è progettato in modo specifico, elevazione del processo, qualsiasi utente tranne quello attualmente registrato richiederà una password se l'account stesso ha una password.
Ramhound,

È esattamente quello che voglio. Sono l'utente che ha effettuato l'accesso e sono nel gruppo admin. Se mi chiede il mio pass nel prompt UAC o richiede sì / no, non è un problema.
nponeccop,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.