Vermeiden Sie es, den Explorer zu starten, um ein Programm über die Benutzerkontensteuerung aus der Shell zu erheben


1

Ich bin Mitglied der Administratorengruppe unter Windows 7. Ich muss foo.exevon einem Cmd oder Powershell aus ausgeführt werden. Für die Exe-Datei ist eine Erhöhung erforderlich, die jedoch nicht im Manifest angegeben ist.

Normalerweise muss ich tun start ., um den Explorer zu öffnen, mit der rechten Maustaste auf die Exe zu klicken und Als Administrator ausführen auszuwählen.

Gibt es einen einfacheren Weg? Ich werde die Benutzerkontensteuerung nicht ausschalten, ich möchte nicht, dass sich das Kennwort an Kennwörter erinnert oder dass die Eingabeaufforderung vermieden wird. Ich möchte nur vermeiden, dass das Explorer-Fenster gestartet werden muss.

Ich bin Mitglied der Administratorengruppe. Ich möchte nicht als ein anderer Benutzer ausgeführt werden. Ich möchte nur die passwortlose UAC-Eingabeaufforderung sehen, die ich selbst sehe, wenn ich mit der rechten Maustaste in den Explorer klicke, aber ohne den Explorer zu öffnen, Tools von Drittanbietern auszuführen, die UAC zu deaktivieren und dazu in der Lage zu sein Das Gleiche gilt für Skripte oder das Speichern von Anmeldeinformationen.

Ich möchte nur die übliche UAC-Eingabeaufforderung ohne Zwischenschritt aufrufen.

Zur Verdeutlichung möchte ich folgende Reihenfolge:

  1. Windows 7, UAC an, ich bin in der Administratorgruppe, die UAC-Eingabeaufforderung ist auf Ja / Nein eingestellt.

  2. Öffnen Sie eine Eingabeaufforderung mit nicht erhöhten Rechten, navigieren Sie zu einem tiefen Ordner und führen Sie andere Aufgaben aus.

  3. Ich führe 'elevate-command-sequence foo.exe' aus und eine UAC-Eingabeaufforderung wird genauso geöffnet wie beim Klicken mit der rechten Maustaste im Explorer. Das aktuelle Verzeichnis für foo.exe ist auf den tiefen Ordner eingestellt, in dem ich mich befinde.

Ich frage mich, ob solche elevate-command-sequencein cmd oder Powershell aus der Box existiert.


1
Hierfür können Sie den runasund einen AdministratorAccount und das Passwort bereitstellen . Ein Beispiel für den Befehl wärerunas /user:"Administrator"
Ramhound

Das wurde millionenfach beantwortet und ist nicht das, was ich will. Ich bin Mitglied der Administratorengruppe. Ich möchte nicht als ein anderer Benutzer ausgeführt werden. Ich möchte nur die passwortlose UAC-Eingabeaufforderung sehen, die ich selbst sehe, wenn ich mit der rechten Maustaste in den Explorer klicke, aber ohne den Explorer zu öffnen, Tools von Drittanbietern auszuführen, die UAC zu deaktivieren und dazu in der Lage zu sein Das Gleiche gilt für Skripte oder das Speichern von Anmeldeinformationen. Ich möchte nur die übliche UAC-Eingabeaufforderung ohne Zwischenschritt aufrufen.
nponeccop

1
Wenn es nicht das ist, was Sie wollen, klären Sie Ihre Frage. Ich schlage vor, Sie ändern die Manifestdatei. Ich vermute sehr, wenn Sie runasdasselbe Profil verwenden, erhalten Sie keine Kennworteingabe. Da Sie mir gegenüber unhöflich waren, habe ich nicht vor, auf diese Frage zurückzukommen.
Ramhound

Ich wollte nur die lange Liste von anderen Szenarien erwähnen, über die ich gelesen habe, um dem Publikum zu gewährleisten, dass ich nach vorhandenen Antworten gesucht habe. Es tut mir leid, dass ich so unhöflich klang. Beleidigung war nicht meine Absicht.
Nponeccop

Antworten:


2

Die Eingabeaufforderung kann keine Anwendungen mit erhöhten Rechten nativ starten, wenn sie nicht in einem erhöhten Zustand gestartet wurde. Es ist zum Kotzen, aber es ist nur ein Teil des Windows-Verhaltens.

Wenn Sie das Problem umgehen möchten, müssen Sie ein Tool eines Drittanbieters verwenden, mit dem das erhöhte Programm für Sie gestartet wird. Nach einigem schnellen googeln habe ich ELE gefunden , mit dem Sie ein Programm in einem erhöhten Zustand an einer nicht erhöhten Eingabeaufforderung ausführen können (nach einem UAC-Popup natürlich).

c:\>ele foo.exe  

Ich bin mir sicher, dass es noch eine Million weiterer Programme gibt, die dies tun, zum Teufel, ich könnte hier in dieser Antwort eines in C # schreiben.

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();
        }
    }
}

Dieser Code ist sehr zerbrechlich und kann derzeit keine Elemente wie Leerzeichen in Argumenten verarbeiten, aber es wäre nicht schwierig, ihn hinzuzufügen.


1

Möglicherweise hilft Ihnen diese Änderung der Gruppenrichtlinieneinstellung:

  1. Start -> run->gpedit.msc

  2. Navigiere zu Computer Configuration --> Policies-->Windows Settings-->Security Settings -->Local Policies-->Security Options

Bildbeschreibung hier eingeben

3.Ändern Sie die behavior of elevation prompt for administrator(Sie können ableiten, wie Sie möchten)

Starten Sie den Computer neu, damit die Änderungen wirksam werden


Ich würde dies als "UAC deaktivieren" qualifizieren. Es ist nicht was ich will. Ich möchte, dass die Aufforderung an Ort und Stelle bleibt.
Nponeccop

1
@nponeccop - Du kannst nicht alles im Leben haben. Die Benutzerkontensteuerung wurde in einer bestimmten Phase des Prozesses entwickelt. Jeder Benutzer außer dem derzeit protokollierten Benutzer benötigt ein Kennwort, wenn das Konto selbst über ein Kennwort verfügt.
Ramhound

Es ist genau das, was ich will. Ich bin der Benutzer, der sich angemeldet hat, und ich bin in der Administratorgruppe. Wenn ich nach meinem Pass in der Benutzerkontensteuerung gefragt werde oder Ja / Nein gefragt wird, ist dies kein Problem.
Nponeccop

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.