Standardbenutzer darf ein Programm ausführen, für das eine UAC-Erhöhung erforderlich ist

15146
Thom Wiggers

Ich brauche einen Standardbenutzer oder einen eingeschränkten Windows 7-Benutzer, um eine Anwendung (Fallout Mod Manager) ausführen zu können, für die eine Erhöhung der Benutzerkontensteuerung erforderlich ist. Ich habe das Application Compatibilty Toolkit ausprobiert, aber das hat nicht wie beabsichtigt funktioniert. Irgendwelche Vorschläge? Ich verwende Windows 7 Ultimate Local, so dass Richtlinien angewendet werden können.

Ich möchte im Grunde so etwas wie das Setuid-Flag von Unix.

4
Wann können Sie das Toolkit auswählen? Klicken Sie auf "Einstellungen für alle Benutzer ändern". Unfundednut vor 14 Jahren 0
Ich habe sdbinstall verwendet, um die Änderungen bereitzustellen, und ich habe die MSDN / Technet-Dokumente durchlaufen. asAdmin oder asHighest funktionieren nicht, weil sie das Promt auslösen, und asInvoker funktioniert nicht, weil es die Privilegien benötigt Thom Wiggers vor 14 Jahren 0
Haben Sie herausgefunden, warum die Anwendung eine Erhöhung benötigt? Wenn für bestimmte Ordner Lese- / Schreibzugriff erforderlich ist, können Sie dies möglicherweise durch Ändern der NTFS-Berechtigungen lösen. nhinkle vor 13 Jahren 0
@hinkle memory hook (beim Fallout-Prozess. (Fallout Script Extender)) Thom Wiggers vor 13 Jahren 0
Der Benutzer kann das Programm ausführen, muss jedoch die Anmeldeinformationen eines Administratorkontos eingeben, wenn die Benutzerkontensteuerung zur Erhöhung auffordert. Wenn das keine zufriedenstellende Lösung ist, weiß ich leider nicht genug, um weiterzuhelfen. :) Ben Richards vor 12 Jahren 0

1 Antwort auf die Frage

3
Ian Boyd

Es ist machbar, aber nicht leicht zu erklären.

Es gibt nur drei Gründe, warum eine Anwendung beim Start eine Erhöhung anfordert:

  • Die Registerkarte " Kompatibilität" enthält die Option "Dieses Programm als Administrator ausführen".
  • Die Anwendung hat ein angegebenes Manifest (entweder eingebettet oder extern) requireAdministrator
  • Es gibt ein Kompatibilitätsupdate von Microsoft, das es als erforderlichen Administrator markiert hat

Angenommen, Sie haben die Registerkarte "Kompatibilität" bereits überprüft und die Anwendung ist nicht auf Administrator festgelegt.

enter image description here

Der nächste Schritt besteht darin, nach einem eingebetteten Ressourcenmanifest zu suchen. Ich werde nicht darauf eingehen, wie man das herausfinden kann. Überspringen Sie jedoch, um ein Manifest für sich selbst zu erstellen.

Erstellen Sie eine Datei im selben Verzeichnis wie der Fallout Mod Manager (ich weiß nicht, wie das exeheißt, aber ich nenne es FalloutModManager.exe:

FalloutModManager.exe FalloutModManager.exe.manifest

Diese neue manifestDatei, die Sie erstellen, ist eine einfache Textdatei, die xml enthält, mit einem Manifesteintrag, der besagt, dass wir asInvoker starten möchten, und nicht RequiredAdministrator :

FalloutModManager.exe.manifest

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">  <assemblyIdentity  version="1.0.0.0" processorArchitecture="X86" name="client" type="win32" />   <description>Poorly written Fallout Mod Manager fails on XP as standard user</description>   <!-- Disable file and registry virtualization, and don't require elevation --> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> </assembly> 

Wenn sich diese Datei neben Ihrer ausführbaren Datei befindet, wird dies als " externes Manifest " bezeichnet. Es ist auch möglich, dass die ausführbare Datei über eine eingebettete Ressource verfügt, für die ein Tool wie Resource Hacker zum Anzeigen oder Ändern erforderlich ist.

Erstellen Sie kein Manifest, das besagt, dass ein Administrator nicht ausgeführt werden sollte, nur, wenn das Programm falsch manifestiert ist. Aber scheitern, wenn das Programm tatsächlich etwas tut, das eine Erhöhung erfordert? (Der Speicherhaken.) Dan Neely vor 12 Jahren 1
Wenn es ein inneres Manifest gibt, wird es Vorherrschaft über ein äußeres Manifest nehmen. In diesem Fall sollten Sie den internen Benutzer bearbeiten, um `asInvoker` anzugeben. Wenn das Programm etwas ausführt, für das ein Administratorzugriff erforderlich ist, schlägt das Programm fehl - es würde jedoch auch unter Windows XP mit einem Standardbenutzer fehlschlagen. Es gibt eine Reihe von Problemumgehungen, die Microsoft hinzugefügt hat, um zu versuchen, fehlerhafte Anwendungen zu reparieren, die als Standardbenutzer fehlschlagen. Die beste Wette ist jedoch: Wenn Sie möchten, dass alle Benutzer `HKLM` und` ProgramFiles` ändern können, erteilen Sie ** All Users ** die vollständige Berechtigung für `HKLM` und` ProgramFiles`. Ian Boyd vor 12 Jahren 0
Ich fürchte, @DanNeely hat recht und das funktioniert nicht. FOMM versucht, seine eigenen DLLs in einer anderen ausführbaren Datei (Fallout3.exe) einzufügen. Thom Wiggers vor 12 Jahren 0
Ich bin sicher, es gibt Dinge, die FOMM tun kann, die keinen administrativen Zugriff erfordern. Durch das Markieren der ausführbaren Datei "asInvoker" müssen Sie das Programm nicht länger erhöhen. Sie können möglicherweise nicht alles erreichen, was Sie möchten - aber Sie können die ausführbare Datei jetzt zumindest als normaler Benutzer ausführen. Ian Boyd vor 12 Jahren 0
Was wäre, wenn Sie Fallout3.exe in einen Ordner außerhalb von% Program Files% kopiert haben, FOMM die Kopie ändern und dann Fallout mit diesem Exe anstelle des Ordners in% Program Files% starten würde? Dan Henderson vor 8 Jahren 0