Kann ich ein Programm erzwingen, für dessen Ausführung normalerweise Administratorrechte (über die Benutzerkontensteuerung) erforderlich sind? (dh: keine UAC-Eingabeaufforderung und kein systemweiter Zugriff .)
Hinzugefügt: Ohne die ausführbare Datei selbst zu verändern.
Trotz der Antwort von James habe ich ein paar Möglichkeiten gefunden, wie es fast getan werden kann:
- Durch Ändern der ausführbaren Datei kann ich den
trustInfo
Eintrag aus dem Manifest entfernen (oder das Manifest vollständig, damit ich einen externen verwenden kann), sodass das Programm ohne Benutzerkontensteuerung gestartet werden kann. Leider ändert dies die ausführbare Datei, so dass sie kurz darauf aufgrund eines internen Prüfsummentests beendet wird. - Mit Process Explorer kann ich es als eingeschränkter Benutzer starten. Dies scheint es jedoch deutlich mehr einzuschränken, als ich möchte (es läuft wie der Protected Mode IE und kann daher deutlich weniger zugreifen als mein normaler Benutzer ohne Berechtigungen).
windows
administrator
uac
Andrew Russell
quelle
quelle
Antworten:
Speichern Sie diesen Text in
<name_of_file>.reg
und fügen Sie ihn der Windows-Registrierung hinzu. (Ein Doppelklick darauf reicht aus.)Klicken Sie anschließend mit der rechten Maustaste auf die App, die Sie ohne Administratorrechte ausführen möchten, und wählen Sie "Ohne Erhöhung der Berechtigungen ausführen".
In einigen Fällen - fragen 0,1% der Programme zweimal nach der UAC-Eingabeaufforderung.
quelle
"
und biegen dann\"
in"
)./min
ist ein Fehler. Die Lösung funktioniert ohne sie genauso. Vom muss verwechseltcmd
undstart
getauscht haben. Anscheinendcmd.exe
beklagt sich das nicht über falsche Schalter. Versuchen Sie escmd /whatever
zum Beispiel.Speichern in
nonadmin.bat
:Jetzt können Sie Programme auf diese ziehen und ablegen, 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 nun auch mit Programmen funktionieren, deren Name Leerzeichen enthält.
quelle
Windows cannot find 'C:\Program'. Make sure you typed the name correctly, and then try again
. Ich habe diesen Befehl mehrmals mit leichten Abweichungen und ohne Glück manuell ausprobiert. Irgendwelche Ideen?Ich hoffe, dass ich nicht zu spät zur Party komme, aber ich habe nach einer ähnlichen Frage gesucht und ohne eine Antwort hier zu sehen, habe ich herausgefunden, dass der eingebaute Windows-
RunAs
Befehl, wenn er als Administrator ausgeführt wird, dies mit/trustlevel
switch tun kann .Das hat in meinem Fall funktioniert. Ironischerweise erfordert das Starten eines Programms explizit ohne Erhöhung eine Eingabeaufforderung mit erhöhten Rechten . Stelle dir das vor. :) Ich hoffe es hilft dir.
quelle
Wenn Sie eine bestimmte Anwendung haben, die Sie immer ohne Benutzerkontensteuerung ausführen möchten, können Sie sie mit der Registrierung als Ziel festlegen (fügen Sie den Text einer REG-Datei hinzu und importieren Sie ihn in die Registrierung):
Im Gegensatz zu dieser Antwort ist für diese Lösung kein alternatives Klicken oder Wechseln zur Benutzerinteraktion erforderlich.
Microsoft nennt diesen Prozess das Hinzufügen des
RunAsInvoker
"Compatibility Shim" .quelle
Ich habe dieses Problem heute mit dem MS Application Customization Toolkit gelöst.
Ich habe die Anweisungen in einem Artikel der Technischen Republik befolgt .
Grundsätzlich gilt:
1) Sie das Toolkit von MS bekommen hier .
2) Klicken Sie auf Fix
3) Wählen Sie die Option RunAsInvoker
4) Klicken Sie mit der rechten Maustaste auf das Update und wählen Sie Installieren
quelle
Wenn es sich um eine Setup- (Installations-)
exe
Datei handelt, für die Administratorrechte erforderlich sind, gibt es einen Trick, um sie ohne erhöhten Zugriff auszuführen:Wenn der Dateiname Wörter wie
setup
oderinstall
Windows enthält, wird er mit erhöhten Zugriffsrechten ausgeführt, auch wenn keine erhöhten Zugriffsrechte erforderlich sind:Wenn die EXE-Datei ein Manifest enthält, gelten diese Heuristiken für die Erhöhung nicht.
Dies ist in den UAC-Dokumenten (User Account Control) dokumentiert:
Lesen Sie den Modus hier: https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works
quelle
Während in seiner Frage Andrew erklärte, dass das Folgende nicht ganz funktioniert hat:
Ich konnte eine externe .manifest-Datei für die von mir verwendete und geänderte Software ändern
<ms_asmv2:requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
zu
<ms_asmv2:requestedExecutionLevel level="asInvoker" uiAccess="false" />
Es stellte sich heraus, dass für die von mir verwendete Software keine Administratorrechte erforderlich waren, sodass ich sie auf einem Standardbenutzerkonto ohne Benutzerkontensteuerung oder Administratorkennwörter ausführen konnte. Vielen Dank!
quelle
ms_asmv2:
möglicherweise auch weggelassen wird. Es ist auch möglich, dass das Ändern der Größe des eingebetteten XML-Blocks die Binärdatei beschädigt. Daher sollte "requireAdministrator" in "asInvoker" geändert werden, das mit Leerzeichen vor uiAccess auf die gleiche Länge aufgefüllt wird.Ich habe dieses Problem behoben, indem ich die Berechtigungen für den Ordner geändert habe, der das Programm enthielt.
Ich habe jeden Benutzer hinzugefügt, der dieses Programm ausführt, und ihm die Berechtigung "Vollzugriff" erteilt. Das hat das Problem behoben und ich habe die Option "Als Administrator ausführen" deaktiviert.
Ich habe keine Sicherheitsbedenken für die Benutzer, die das Programm ausführen werden.
quelle
Nein, wenn ein Programm eine Benutzerkontensteuerung benötigt, versucht es, auf etwas außerhalb seiner Sandbox zuzugreifen. Das Programm wird ohne den erhöhten Zugriff nicht korrekt ausgeführt.
Wenn Sie die Benachrichtigung nur entfernen möchten, können Sie die Benutzerkontensteuerung deaktivieren.
Deaktivieren Sie die Benutzerkontensteuerung unter Windows Vista: Starten Sie und geben Sie "user" ein. Klicken Sie auf "Benutzerkonten". Klicken Sie im folgenden Fenster auf "Einstellungen für die Benutzerkontensteuerung" und dann auf "UAC deaktivieren".
Deaktivieren Sie die Benutzerkontensteuerung unter Windows 7: Starten Sie und geben Sie "user" ein. Klicken Sie auf "Einstellungen zur Benutzerkontensteuerung". Ziehen Sie die Auswahlleiste ganz nach unten, um "Nie benachrichtigen" zu erhalten.
quelle