From: rogero on
I've been moving a program suite to Windows 7 and had failures from
CreateProcess() returning error 740 (process requires elevation)

After a bit of poking around this simply seems to be related to the
*name* of the target executable.

For example "dispatch.exe", which I think fails because it
contains the string 'patch'.

Does anyone know whether there is a list of *which* file names
are affected like this?

Regards,
Roger.
From: Jochen Kalmbach [MVP] on
Hi rogero!

> I've been moving a program suite to Windows 7 and had failures from
> CreateProcess() returning error 740 (process requires elevation)
>
> After a bit of poking around this simply seems to be related to the
> *name* of the target executable.
>
> For example "dispatch.exe", which I think fails because it
> contains the string 'patch'.
>
> Does anyone know whether there is a list of *which* file names
> are affected like this?

No, there is no "offical" list.. or at least I am not aware of any...

But you can take a look into the shim-database via the
Application-Compatibility-Toolkit.

But it is a very huge list and it makes almost no sence to look into it...

I made a short list here:
http://blog.kalmbach-software.de/2009/06/09/custom-installer-without-warning-dialog-trustedinstallerexe/


Here is an exerpt of the "possible" match:

<EXE typ="LIST">
<NAME typ="STRINGREF">*patch*</NAME>
<WILDCARD_NAME typ="STRINGREF">*patch*</WILDCARD_NAME>
<APP_NAME typ="STRINGREF">Patch</APP_NAME>
<VENDOR typ="STRINGREF">UNKNOWN</VENDOR>
<EXE_ID typ="BINARY" len="0x10"
guid="F1BB3897-95C4-044A-A21750356014B307" />
<APP_ID typ="BINARY" len="0x10"
guid="77314417-F36B-D848-AB3B42FA07284C82" />
<MITIGATION_OS typ="NULL" />
<MATCH_MODE typ="WORD" />
<MATCHING_FILE typ="LIST">
<NAME typ="STRINGREF">*</NAME>
</MATCHING_FILE>
<FLAG_REF typ="LIST">
<NAME typ="STRINGREF">GenericInstaller</NAME>
<FLAG_TAGID typ="DWORD">0x2d7b8</FLAG_TAGID>
</FLAG_REF>
</EXE>



--
Greetings
Jochen

My blog about Win32 and .NET
http://blog.kalmbachnet.de/
From: Paul Baker [MVP, Windows Desktop Experience] on
If the process is written by you, you could include a manifest to control
the elevation requirement. This will override the guessing:
http://channel9.msdn.com/posts/jmazner/How-To-Tell-Vistas-UAC-What-Privelege-Level-Your-App-Requires/

I have seen it happen with applications called Setup.exe and an application
with "install" in the FileDescription in the VERSIONINFO resource, these are
already both mentioned in Jochen's blog.

Paul

"Jochen Kalmbach [MVP]" <nospam-news(a)kalmbach-software.de> wrote in message
news:eqrgs7gjKHA.2132(a)TK2MSFTNGP05.phx.gbl...
> Hi rogero!
>
>> I've been moving a program suite to Windows 7 and had failures from
>> CreateProcess() returning error 740 (process requires elevation)
>>
>> After a bit of poking around this simply seems to be related to the
>> *name* of the target executable.
>>
>> For example "dispatch.exe", which I think fails because it
>> contains the string 'patch'.
>>
>> Does anyone know whether there is a list of *which* file names
>> are affected like this?
>
> No, there is no "offical" list.. or at least I am not aware of any...
>
> But you can take a look into the shim-database via the
> Application-Compatibility-Toolkit.
>
> But it is a very huge list and it makes almost no sence to look into it...
>
> I made a short list here:
> http://blog.kalmbach-software.de/2009/06/09/custom-installer-without-warning-dialog-trustedinstallerexe/
>
>
> Here is an exerpt of the "possible" match:
>
> <EXE typ="LIST">
> <NAME typ="STRINGREF">*patch*</NAME>
> <WILDCARD_NAME typ="STRINGREF">*patch*</WILDCARD_NAME>
> <APP_NAME typ="STRINGREF">Patch</APP_NAME>
> <VENDOR typ="STRINGREF">UNKNOWN</VENDOR>
> <EXE_ID typ="BINARY" len="0x10"
> guid="F1BB3897-95C4-044A-A21750356014B307" />
> <APP_ID typ="BINARY" len="0x10"
> guid="77314417-F36B-D848-AB3B42FA07284C82" />
> <MITIGATION_OS typ="NULL" />
> <MATCH_MODE typ="WORD" />
> <MATCHING_FILE typ="LIST">
> <NAME typ="STRINGREF">*</NAME>
> </MATCHING_FILE>
> <FLAG_REF typ="LIST">
> <NAME typ="STRINGREF">GenericInstaller</NAME>
> <FLAG_TAGID typ="DWORD">0x2d7b8</FLAG_TAGID>
> </FLAG_REF>
> </EXE>
>
>
>
> --
> Greetings
> Jochen
>
> My blog about Win32 and .NET
> http://blog.kalmbachnet.de/


From: rogero on
On 5 Jan, 14:06, "Paul Baker [MVP, Windows Desktop Experience]"
<paulrichardba...(a)community.nospam> wrote:
> If the process is written by you, you could include a manifest to control
> the elevation requirement.

Thanks to you both for the rapid replies.
Looks like a manifest is the best solution in my case.

Regards,
Roger.
From: Remy Lebeau on

"rogero" <roger.orr(a)gmail.com> wrote in message news:3652c8bf-def1-4c4c-85e7-a0f986de3986(a)l30g2000yqb.googlegroups.com...

> After a bit of poking around this simply seems to be related to the
> *name* of the target executable.

It can. UAC performs some heuristic analysis, called "Installer Detection" to determine if an executable might be an installer/uninstaller or updater so it can be elevated. This typically only applies to older apps that have not been updated to be UAC-aware yet.

> Does anyone know whether there is a list of *which* file names
> are affected like this?

Not an official list, no, though a few keywords are mentioned here:

http://msdn.microsoft.com/en-us/library/bb756960.aspx

--
Remy Lebeau (TeamB)