Exe-Aufruf - Vista bevormundet mich einmal mehr!!!

20/12/2007 - 17:45 von Andy Dorwald | Report spam
Ich habe ein kleines Projekt, in dem ich eine Exe unter Vista per
ShellexecuteEx starte.

Dabei verwende ich das Verb "open". Diese unter dem "normalen" Benutzerkonto
gestartete Exe startet sich selbst dann noch einmal mit dem Verb "runas", um
Dateien zu kopieren. Dabei wartet es, bis es beendet ist und erledigt
anschließend Weiteres unterm dem Benutzerkonto...

...das sollte "EIGENTLICH" gut funktionieren - *** und tat es auch *** - bis
jetzt!!!

Denn plötzlich ist Vista der Meinung, meine Exe solle ein "Schild tragen"
(Icon mit Schild - und somit Start als Admin-benötigte Anwendung!). Dadurch
passiert nun Folgendes: Meine Hauptanwendung startet diese Exe mit dem Verb
"open", dennoch meldet Vista nun, dass der Start dieser Anwendung eine
Authorisierung benötigt - und startet es dann im Admin-Benutzerkontext!!!

Meine Frage: WIE starte ich diese Exe zunàchst mit den "normalen"
Benutzerrechten und "darin" dann erst erneut mit dem verb "runas" ???

P.S. das ganze bezieht sich auf einen Forenbeitrag vom 22.11.07 und
15.12.207 mit Thorsten Doerfler

VG
Andy
 

Lesen sie die antworten

#1 Jens Müller
20/12/2007 - 19:12 | Warnen spam
Hallo,

Andy Dorwald wrote:
Denn plötzlich ist Vista der Meinung, meine Exe solle ein "Schild
tragen" (Icon mit Schild - und somit Start als Admin-benötigte
Anwendung!). Dadurch passiert nun Folgendes: Meine Hauptanwendung
startet diese Exe mit dem Verb "open", dennoch meldet Vista nun, dass
der Start dieser Anwendung eine Authorisierung benötigt - und
startet es dann im Admin-Benutzerkontext!!!



Ich nehme an, du wirst kein Manifest (als Ressource oder Datei in dem
gleichen Verzeichnis) haben?
Ansonsten hat Vista eine Heuristik die Installationsprogramme erkennen
soll und diese dann mit erhöhten Rechten ausführt. Dabei wird, soweit
ich weiß, der Name (setup.exe?) und sogar setup-typische Bilder in der
Software berücksichtigt.

Lösung für Dich ist, es ein Manifest als Ressource (24).
Ohne gewàhr könnte folgendes helfen (ich bin mir unsicher bei der
Mischung der Manifest Versionen XP/Vista und ich weiß dass es da
Probleme gab mit XP welches bei Vista-Manifesten abstürtzt).
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity
version="2.0.0.2"
processorArchitecture="*"
name="name des programms"
type="win32" />
<description>Programmbeschreibung</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency><v3:trustInfo
xmlns:v3="urn:schemas-microsoft-com:asm.v3"><v3:security><v3:requestedPrivileges><v3:requestedExecutionLevel
level="asInvoker"
/></v3:requestedPrivileges></v3:security></v3:trustInfo></assembly>

Interessant ist hier das "asInvoker".

Grüße,
Jens

Ähnliche fragen