Die Anwendung muss immer als anderer Benutzer ausgeführt werden

444
Kam

Ich suche nach einer Runas-Alternative.

Ist es möglich, eine bestimmte Anwendung für ALWAYS RUN unter einem anderen Konto einzurichten?

Dies unterscheidet sich sehr von der Definition einer Abkürzung, die einen Run-as ausführt (dies hat Nachteile, die ich zu verhindern versuche).

Ich möchte dem System mitteilen, dass es unter einem anderen Benutzer ausgeführt werden soll, wenn Sie Nitro ausführen.

Die Abkürzungsdefinitionsmethode funktioniert für mich nicht gut, da er dann die Abkürzung ausführen und dann zur Datei browsen muss. Er würde die Möglichkeit verlieren, einfach auf die PDF-Datei zu doppelklicken, und Nitro würde das automatisch öffnen pdf (Ich möchte weiterhin in der Lage sein, automatisch eine PDF-Datei zu öffnen, auf die der Benutzer doppelt geklickt hat, aber er sollte immer als ein anderer Benutzer in Nitor ausgeführt werden - das Standard-PDF-Programm).

Leute, stimmen Sie das nicht ab, nur weil die Antwort "Nein, das ist nicht möglich" ist. Ich denke, dass dies möglicherweise nicht möglich ist, aber ich war schon einmal überrascht (zu meiner Freude und trotzdem nach unten gestimmt, weil ich eine wertvolle Frage gestellt habe). Wenn es eine Antwort darauf gibt, wäre dies sehr wertvoll.

Ich verwende eigentlich Windows 7, aber wenn es unter 10 möglich ist, werde ich ein Upgrade in Betracht ziehen.

2

2 Antworten auf die Frage

0
harrymc

Ich denke, da kann dies durch Ersetzen der ausführbaren Datei der Anwendung durch ein Skript erfolgen, das einen RunAs-Befehl ausführt .

Dies kann ein beliebiges Skript oder ein Skript sein, das als ausführbare Datei kompiliert wurde und denselben Namen hat.

Wenn Sie die ausführbare Datei lieber nicht ersetzen möchten, können Sie ein zusätzliches Skript schreiben, z. B. .batoder .cmdund es in demselben Ordner wie das .exe. Sie werden hier auf das Problem aufmerksam gemacht, dass Windows es .exevor diesen Typen bevorzugt .

Sie können die Reihenfolge der Rangfolge ändern, indem Sie die PATHEXT-Umgebungsvariable ändern, deren Standardwert ist .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC, um die Priorität des von Ihnen ausgewählten Suffix vor dem von zu erhöhen .exe.

Informationen zu PATHEXT finden Sie in den Antworten von answer1 und answer2 .

nicht sicher ich folge Ich doppelklicke auf ein pdf. Ich möchte, dass Nitro ausgeführt und das PDF geöffnet wird, aber es als Benutzer xyz ausgeführt wird. Wollen Sie damit sagen, dass eine Batchdatei die Datei sein kann, die ausgeführt wird, wenn das PDF doppelt angeklickt wird, und dass die Batchdatei den Pfad des als Eingabeparameter angeklickten PDF akzeptiert? Wie funktioniert das in der Praxis? Ist das möglich? Können Sie einen kleinen Beispielcode angeben? Kam vor 5 Jahren 0
Dies bedeutet, dass Sie Nitro ersetzen müssen. Dies wirkt sich dann auf alle Ihre PDFs aus. Nicht sicher, dass du es so gemeint hast. harrymc vor 5 Jahren 0
0
Wes Sayeed

Es gibt eine Möglichkeit, dies zu tun, aber Sie müssen sich mit Registry-Hacking vertraut machen. Ich werde es Schritt für Schritt beschreiben:

  1. Starten Sie den Registrierungseditor (regedit.exe) und erweitern Sie HKEY_CLASSES_ROOT. In diesem Schlüssel zeichnet Windows alle Dateitypzuordnungen auf und weiß, welches Programm geöffnet werden soll, wenn Sie auf eine Datei doppelklicken.
  2. Suchen Sie den .pdf-Schlüssel und notieren Sie sich den Eintrag (Standard) auf der rechten Seite. Dies ist der Name der Anwendungs-ID, die PDF-Dateien in Ihrem System zugeordnet ist. Ich habe Acrobat auf meinem System installiert, daher heißt es in meinem Dokument AcroExch.Document.2017. Sie können etwas anderes sagen, wenn Nitro das Standardprogramm zum Öffnen von PDFs ist.

Screenshot showing the .PDF file association

  1. Blättern Sie nach unten, um die Taste mit dem oben angegebenen Namen zu finden. Beachten Sie, dass wir immer noch HKEY_CLASSES_ROOT betrachten. Beachten Sie auch, dass es wahrscheinlich viele Schlüssel mit sehr ähnlichen Namen geben wird. Sie müssen genau mit dem Namen übereinstimmen .
  2. Lassen Sie diese Taste herunter und gehen Sie zum Shell -> Open -> Befehl wie unten gezeigt. Der Wert (Standard) ist der Befehl, den Windows ausführt, wenn Sie die Datei öffnen (dh doppelklicken).

Screenshot showing the Open command line

  1. Sie können hier den gewünschten Befehl eingeben. Beachten Sie, dass der Befehl in meinem Beispiel den vollständigen Pfad zur EXE-Datei enthält, gefolgt von einem Argument (dem Namen der Datei):

    "C:\Program Files (x86)\Adobe\Acrobat Reader 2017\Reader\AcroRd32.exe" "%1" 

    Auf meinem System würde ich es ändern in:

    runas /user:<user> "\"C:\Program Files (x86)\Adobe\Acrobat Reader 2017\Reader\AcroRd32.exe\" \"%1\"" 

    Wo <user>wäre der Kontoname.

Das ist es. Sie können den Registrierungs-Editor schließen und fertig.

Beachten Sie das Kung-Fu, das ich in Schritt 5 mit den Anführungszeichen zu tun hatte. Dies ist wichtig, damit Sie dies richtig machen. Der Befehl zum Öffnen von PDFs auf meinem Computer nicht mehr AcroRd32.exe, es ist runas.exe. Runas.exeakzeptiert nur ein Argument - die vollständige Befehlszeile, die ausgeführt werden soll, als hätten Sie sie an einer Eingabeaufforderung eingegeben. Da diese Zeichenfolge Leerzeichen enthält, muss das Ganze in Anführungszeichen gesetzt werden. Und da der angezeigte String selbst auch Anführungszeichen enthält (da der Dateiname Leerzeichen enthalten kann), müssen diese Anführungszeichen als String-Literale mit Escapezeichen versehen werden.