UAC, Shield Icons, and setup programs

A

Anthony Wieser

How does Vista decide that a program is a setup program, and requires
elevation?

I have some installers that don't actually require elevation, yet they're
marked with the little shield icon. Is there a description anywhere of what
actually causes elevation? I can't find an explicit list, and have spent
days searching Google, msdn, and live.com, to no avail.

Does the OS look at the import table for a specific call, is there some
other signature algorithm at work here.

--
Anthony Wieser
Wieser Software Ltd
 

My Computer

D

DevilsPGD

In message <OENVv#[email protected]> "Anthony Wieser"
<[email protected]> wrote:

>How does Vista decide that a program is a setup program, and requires
>elevation?
>
>I have some installers that don't actually require elevation, yet they're
>marked with the little shield icon. Is there a description anywhere of what
>actually causes elevation? I can't find an explicit list, and have spent
>days searching Google, msdn, and live.com, to no avail.
>
>Does the OS look at the import table for a specific call, is there some
>other signature algorithm at work here.


If the file has a manifest that specifies it's requirements, Vista
honours that. Otherwise, any EXE with "setup" or "update" or a few
other keywords will be elevated, as will an MSI.
--
Insert something clever here.
 

My Computer

D

Dave R.

"DevilsPGD" <[email protected]> wrote in message
news:[email protected]
> In message <OENVv#[email protected]> "Anthony Wieser"
> <[email protected]> wrote:
>
>>How does Vista decide that a program is a setup program, and requires
>>elevation?
>>
>>I have some installers that don't actually require elevation, yet
>>they're
>>marked with the little shield icon. Is there a description anywhere
>>of what
>>actually causes elevation? I can't find an explicit list, and have
>>spent
>>days searching Google, msdn, and live.com, to no avail.
>>
>>Does the OS look at the import table for a specific call, is there
>>some
>>other signature algorithm at work here.

>
> If the file has a manifest that specifies it's requirements, Vista
> honours that. Otherwise, any EXE with "setup" or "update" or a few
> other keywords will be elevated, as will an MSI.


Does anyone know what the full list of keywords is? It would be nice to
know so I can tell our developers to avoid them.

Regards,

Dave
 

My Computer

D

DevilsPGD

In message <[email protected]>
"Dave R." <dwragle at drbsystems dot com> wrote:

>Does anyone know what the full list of keywords is? It would be nice to
>know so I can tell our developers to avoid them.


I could swear one of our devels email me the list, but I can't find it
at the moment -- Take a stab at MSDN though...
--
Insert something clever here.
 

My Computer

A

Anthony Wieser

"DevilsPGD" <[email protected]> wrote in message
news:[email protected]
> In message <OENVv#[email protected]> "Anthony Wieser"
> <[email protected]> wrote:
>
>>How does Vista decide that a program is a setup program, and requires
>>elevation?
>>
>>I have some installers that don't actually require elevation, yet they're
>>marked with the little shield icon.


> If the file has a manifest that specifies it's requirements, Vista
> honours that.


So can I put a manifest in the same folder as a program to state that it
doesn't require elevation? Otherwise, I assume that I need to use the
manifest tool mt to embed the manifest in the exe?

I found some information here:
http://msdn2.microsoft.com/en-us/library/aa905330.aspx
and here:
http://msdn2.microsoft.com/en-us/library/aa480150.aspx

that might be useful to someone else.

> Otherwise, any EXE with "setup" or "update" or a few
> other keywords will be elevated, as will an MSI.

--
Anthony Wieser
Wieser Software Ltd
 

My Computer

D

Dave R.

"DevilsPGD" <[email protected]> wrote in message
news:[email protected]
> In message <[email protected]>
> "Dave R." <dwragle at drbsystems dot com> wrote:
>
>>Does anyone know what the full list of keywords is? It would be nice
>>to
>>know so I can tell our developers to avoid them.

>
> I could swear one of our devels email me the list, but I can't find it
> at the moment -- Take a stab at MSDN though...


The only good resource I could find in MSDN was in the MS paper "Windows
Vista Application Development Requirements for User Account Control
Compatibility" which says:

> Installer Detection only applies to:
> 1. 32-bit executables
> 2. Applications without a requestedExecutionLevel
> 3. Interactive processes running as a standard user with UAC enabled
>
> Before a 32-bit process is created, the following attributes are
> checked to determine whether it is an installer:
> . Filename includes keywords like "install," "setup," "update," etc.
> . Keywords in the following Versioning Resource fields: Vendor,
> Company Name, Product Name, File Description, Original Filename,
> Internal Name, and Export Name.
> . Keywords in the side-by-side application manifest embedded in the
> executable.
> . Keywords in specific StringTable entries linked in the executable.
> . Key attributes in the resource file data linked in the executable.
> . Targeted sequences of bytes within the executable.
>
> Note
> The keywords and sequences of bytes were derived from common
> characteristics observed from various installer technologies.


Now, a couple of questions come to mind. First, is the list an English
language only list, or does the list contain entries from various
languages. Second, what about the "etc."? I still don't have anything
I can take to our development meetings. <sigh>

I'd really like someone from MS to step up here and clear this up, but I
won't hold my breath.

Regards,

Dave
 

My Computer

A

Antoine Leca

Dave R. wrote:
> "Windows Vista Application Development Requirements for User Account
> Control Compatibility" which says:
>> Before a 32-bit process is created, the following attributes are
>> checked to determine whether it is an installer:
>> . Filename includes keywords like "install," "setup," "update," etc.

>
> Now, a couple of questions come to mind. First, is the list an
> English language only list, or does the list contain entries from
> various languages.


IANAMD (... MS developper), so this is just a guess.

Given that the trend is toward MUI technology (one-binary-fits-all, and the
localized content is separated into .mui files which are distributed
separately), I guess the list embedded should include the name for any
language. It makes sense as well, since nothing should prevent say a German
to install a program in her mothertongue on an English-speaking computer.

I notice also that with "instal", you're covering a good number of Romance
language, French Installer, Spanish Instalar, Catalan Instal·lació, etc.

(And yes I am hoping "install", with 2 l's, is a typo or more precisely a
defect introduced into the Word document by the cute AutoCorrect
technology...)


Antoine
 

My Computer

Top