andi303
Goto Top

Programm explizit nicht als Admin ausführen

Hallo zusammen,

ich habe hier ein Programm (exe) dass beim Öffnen automatisch nach Admin-Rechten fragt.
Über die Eigenschaften einer Datei kann man ja ganz leicht die Admin-Rechte hinzufügen, aber kann man Sie auch irgendwie entziehen?

Hintergrund ist der, dass dieses Programm u.a. zum Starten verschiedener Services unter dem System-Konto gedacht war. Nun werden die Services unter einem normalen Benutzerkonto gestartet, sodass die Admin-Rechte nicht mehr notwendig sind. Stellt sich also die Frage, ob die Notwendigkeit von Admin-Rechten bereits beim Kompilieren auf irgendeine Weise angegeben werden, oder ob man das nachträglich ändern kann.

Vielen Dank im Voraus!

Content-ID: 197454

Url: https://administrator.de/contentid/197454

Ausgedruckt am: 05.11.2024 um 15:11 Uhr

rubberman
rubberman 22.01.2013 um 18:18:00 Uhr
Goto Top
Hallo andi303.

Zitat von @andi303:
Stellt sich also die Frage, ob die Notwendigkeit von Admin-Rechten bereits beim Kompilieren auf irgendeine Weise angegeben werden ...

Vermutlich ja.
Du kannst folgendes versuchen (ohne Gewähr):
Erstelle ein Batchfile, in dem du die Umgebungsvariable __COMPAT_LAYER setzt und dein Programm in dieser Umgebung startest:
@echo off &setlocal
set "__COMPAT_LAYER=RunAsInvoker"  
start "" "c:\pfad\zu\programm.exe"  
Ob das Programm entsprechend reagiert, musst du testen.

Grüße
rubberman
andi303
andi303 22.01.2013 um 18:36:56 Uhr
Goto Top
Hm. Das funktioniert mittelprächtig.
Die Services muss ich immer noch von Hand starten, aber damit kann ich wohl leben. Besser als nichts...

Danke!
rubberman
rubberman 22.01.2013 um 19:02:49 Uhr
Goto Top
Hallo andi303.

Je nach Rechten des Benutzers kannst du im gleichen Batch
net start Servicename
oder auch
sc start Servicename
voran stellen um die Dienste zu starten. Probier mal.

Grüße
rubberman
andi303
andi303 22.01.2013 um 20:16:31 Uhr
Goto Top
Ja, das meinte ich eigentlich schon mit "von Hand starten".

Aber trotzdem Danke für Deine Hilfe!
Penny.Cilin
Penny.Cilin 23.01.2013 um 08:30:55 Uhr
Goto Top
Zitat von @rubberman:
Erstelle ein Batchfile, in dem du die Umgebungsvariable __COMPAT_LAYER setzt und dein Programm in dieser Umgebung startest:

Grüße
rubberman

@rubberman
Diese Systemvariable kenne ich jetzt nicht. Hat dies mit APP_V zu tun. Ich habe zwar via Google einiges gefunden, aber irgendwie verstehe ich es jetzt nicht. Welche Werte kann man damit setzen und wo finde ich eine Erklärung zu dieser Variable?


etwas ratlos im Moment
Penny
rubberman
rubberman 23.01.2013 um 19:42:18 Uhr
Goto Top
Hallo Penny.

Die Erklärung gibt es bei Microsoft:
Using the RunAsInvoker Fix
Wenn im Manifest des Programms das requireAdministrator Level festgelegt wurde, so wird dies außer Kraft gesetzt indem ein entsprechendes Flag für das in dieser Umgebung gestartete Programm gesetzt wird.

Grüße
rubberman