2010-08-04 13:49:40 +0000 2010-08-04 13:49:40 +0000
128
128

Kann ich ein Programm zwingen, *ohne* Administratorrechte oder UAC auszuführen?

Gibt es eine Möglichkeit, ein Programm, das normalerweise Administratorrechte (über UAC) benötigt, dazu zu zwingen, ohne diese zu laufen? (d.h.: keine UAC-Eingabeaufforderung und kein systemweiter Zugriff.)

Hinzugefügt: Ohne die ausführbare Datei selbst zu modifizieren.


Trotz James’ Antwort habe ich ein paar Wege gefunden, wie es fast möglich ist:

  1. Durch Modifizieren der ausführbaren Datei kann ich den Eintrag trustInfo aus dem Manifest entfernen (oder das Manifest vollständig, so daß ich einen externen Eintrag verwenden kann), so daß das Programm ohne UAC gestartet werden kann. Leider wird dadurch die ausführbare Datei modifiziert, so dass sie aufgrund eines internen Prüfsummentests kurz danach beendet wird.
  2. Durch die Verwendung von Process Explorer kann ich es als Limited User starten. Dies scheint ihn jedoch wesentlich mehr einzuschränken, als mir lieb ist (er läuft wie der Protected Mode IE und kann daher auf wesentlich weniger zugreifen als mein nicht erweiterter Standardbenutzer).

Antworten (9)

76
76
76
2012-07-18 15:20:44 +0000

&

57
57
57
2015-10-02 11:27:02 +0000

Speichern Sie in nonadmin.bat:

cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %1"

Jetzt können Sie Programme per Drag & Drop in diesen Bereich ziehen, um sie ohne Administrator auszuführen.

Dies erfordert keine Administratorrechte wie das Ändern dieses Registrierungsschlüssels. Auch das Kontextmenü wird nicht überladen.

Basierend auf Vom’s Antwort


Update: Sollte jetzt auch mit Programmen funktionieren, die Leerzeichen im Namen haben.

35
35
35
2012-01-05 08:15:03 +0000

Ich hoffe, ich komme nicht zu spät zur Party, aber ich suchte nach einer ähnlichen Frage und ohne hier eine Antwort zu sehen, fand ich heraus, dass der in Windows eingebaute Befehl RunAs, wenn er als Administrator ausgeführt wird, dies mit dem Schalter /trustlevel tun kann.

RUNAS /trustlevel:<TrustLevel> program

/showtrustlevels displays the trust levels that can be used
                  as arguments to /trustlevel.
/trustlevel <Level> should be one of levels enumerated
                  in /showtrustlevels.

Dies funktionierte in meinem Fall. Ironischerweise erfordert das explizite Starten eines Programms ohne Elevation eine erhöhte Eingabeaufforderung. Abbildung :) Ich hoffe, es hilft Ihnen.

19
19
19
2016-09-09 20:16:13 +0000

Wenn Sie eine bestimmte Anwendung haben, die immer ohne UAC ausgeführt werden soll, können Sie diese mit der Registry anvisieren (fügen Sie den Text zu einer REG-Datei hinzu und importieren Sie ihn in die Registry):

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\example\application.exe"="RunAsInvoker"

Im Gegensatz zu dieser Antwort erfordert diese Lösung keinen alternativen Klick oder Wechsel zur Benutzerinteraktion.

Microsoft nennt diesen Vorgang das Hinzufügen der Datei RunAsInvoker “Compatibility Shim” .

4
4
4
2019-01-25 11:54:23 +0000

Wenn es sich um eine Setup- (Installations-) exe-Datei handelt, die Administratorrechte erfordert, gibt es einen Trick, um sie ohne erhöhten Zugriff auszuführen:

Wenn der Dateiname Wörter wie setup oder install enthält, führt Windows die Datei zwangsweise mit erhöhtem Zugriff aus, selbst wenn sie keinen erhöhten Zugriff benötigt:

Wenn die . Exe-Datei ein Manifest enthält, gelten diese Heuristiken für die Zugriffserhöhung nicht.

Wenn das Manifest beispielsweise angibt, dass die Exe-Datei keine Zugriffserhöhung benötigt, wird sie selbst dann nicht als erhöht ausgeführt, wenn eines dieser Wörter im Dateinamen enthalten ist.

Ein weiteres Schlüsselwort ist patch, wie von Mgamerz in den Kommentaren angegeben.

Dies ist in den UAC (User Account Control)-Dokumenten dokumentiert:

Die Installer-Erkennung erkennt Setup-Dateien, wodurch verhindert wird, dass Installationen ohne Wissen und Zustimmung des Benutzers ausgeführt werden.

Die Installer-Erkennung gilt nur für:

  • ausführbare 32-Bit-Dateien.

  • Anwendungen ohne ein Attribut der Ausführungsebene requested.

  • Interaktive Prozesse, die als Standardbenutzer mit aktivierter UAC laufen.

Bevor ein 32-Bit-Prozess erstellt wird, werden die folgenden Attribute überprüft, um festzustellen, ob es sich um ein Installationsprogramm handelt:

  • Der Dateiname enthält Schlüsselwörter wie “install”, “setup” oder “update”.

Lesemodus hier: https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works

3
3
3
2011-05-18 01:05:06 +0000

Ich habe dieses Problem heute mit dem Toolkit zur Anpassung von MS-Anwendungen gelöst

Ich habe die Anweisungen befolgt in einem Tech-Republic-Artikel

Im Wesentlichen:

1) Sie erhalten das Toolkit von MS hier .

2) Klicken Sie auf Fix

3) Wählen Sie die Option RunAsInvoker

4) Klicken Sie mit der rechten Maustaste auf das Fix und wählen Sie Installieren

2
2
2
2013-07-21 02:56:41 +0000

Während Andrew in seiner Frage angab, dass Folgendes nicht ganz funktionierte:

Durch Modifizieren der ausführbaren Datei kann ich den trustInfo-Eintrag aus dem Manifest entfernen (oder das Manifest vollständig, so dass ich einen externen Eintrag verwenden kann), wodurch das Programm ohne UAC gestartet werden kann. Leider wird dadurch die ausführbare Datei modifiziert, so dass sie aufgrund eines internen Prüfsummentests kurz danach beendet wird.

Ich konnte eine externe .manifest-Datei für die von mir verwendete Software modifizieren und

<ms_asmv2:requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

in

<ms_asmv2:requestedExecutionLevel level="asInvoker" uiAccess="false" />

ändern. Es stellte sich heraus, dass die von mir verwendete Software nicht wirklich Administratorrechte erforderte, so dass ich sie auf einem Standardbenutzerkonto ohne UAC oder Administratorkennwörter ausführen konnte. Danke!

-2
-2
-2
2012-04-20 04:28:43 +0000

Ich habe dieses Problem behoben, indem ich die Berechtigungen für den Ordner, der das Programm enthielt, geändert habe.

Ich fügte jeden Benutzer hinzu, der das Programm ausführen wird, und gab ihm “volle Kontrolle”-Privilegien. Damit war das Problem behoben, und ich ließ die Option “als Administrator ausführen” deaktiviert.

Ich habe keine Sicherheitsbedenken gegenüber den Benutzern, die das Programm ausführen werden.

-5
-5
-5
2010-08-04 14:09:46 +0000

Nein, wenn ein Programm UAC benötigt, dann versucht es, auf etwas außerhalb seiner Sandbox zuzugreifen. Das Programm wird ohne den erhöhten Zugriff nicht korrekt ausgeführt.

Wenn Sie nur die Benachrichtigung loswerden möchten, können Sie UAC deaktivieren.

UAC unter Windows Vista deaktivieren: Start, geben Sie “Benutzer” ein. Klicken Sie auf “Benutzerkonten”. Klicken Sie in dem sich öffnenden Fenster auf “Einstellungen der Benutzerkontensteuerung” und dann auf “UAC deaktivieren”.

UAC unter Windows 7 deaktivieren: Start, geben Sie “Benutzer” ein. Klicken Sie auf “Einstellungen der Benutzerkontensteuerung”. Ziehen Sie die Auswahlleiste ganz nach unten auf “Niemals benachrichtigen”.