Windows Vista Forums
Vista Forums Home Join Vista Forums Windows 7 Forum Vista Tutorials Tags
Welcome to Windows Vista Forums. Our forum is dedicated to helping you find solutions with any problems, errors or issues you are experiencing with Windows Vista. The Vista forum also covers news and updates and has an extensive Windows Vista tutorial section that covers a wide range of tips and tricks.

Go Back   Vista Forums > Vista Newsgroups > Vista security

Vista - VISTA and Power Users?

Reply
 
Old 07-09-2007   #11 (permalink)
Superfreak3


 
 

Re: VISTA and Power Users?

On Jul 6, 4:38 pm, Jimmy Brush <j...@mvps.org> wrote:
> Superfreak3wrote:
> > On Jul 5, 10:39 am,Superfreak3<Matt.Wal...@synergis.com> wrote:
> >> Earlier in our thread, you mentioned:

>
> >> "However, the Power Users group still exists in Vista, but like the
> >> document says, they are not ACL'ed access to system resources, so you
> >> have to run the special file first to grant them extra access."

>
> >> What 'special file' do you mean? I guess I need to know what exactly
> >> do I have to do to mimic the Power Users group of XP.
> >> I don't know if I mentioned this before, but I'm getting the no access
> >> to Program Files messages with UAC Disabled. If I install with my
> >> Power User with UAC enabled, I simply have to apply credentials
> >> currently.

>
> >> Any more info in setting up Power Users as in XP on VISTA would be
> >> GREATLY APPRECIATED!

>
> >> Thanks for the help/great information so far!!- Hide quoted text -

>
> >> - Show quoted text -

>
> > Also, if I write a service to launch our silent updates, what would I
> > have to set ALLUSERS to, I wonder?

>
> I would like to strongly discourage you from putting your users into the
> legacy role of power users to solve this problem.
>
> It is simply not necessary for this.
>
> If you have the kind of control over your users' computers to make them
> power users (admin privileges), then it would be much easier for you
> just to authorize your MSI to be installed.
>
> That being said, I had assumed from the technet document you referenced
> that there was a security template available somewhere that would set up
> power user permissions on Vista. However, I couldn't find it. This means
> you would have to roll your own security template to change the
> permissions that you need (i.e., allow power users access to the
> appropriate registry keys, files, and privileges).
>
> I found some more good sites that deal with MSI's and UAC that you might
> find useful:
>
> http://msdn2.microsoft.com/en-us/lib...n-msi-notes-an...
>
> As for allusers, launching the MSI from a service account has
> administrator privileges, so I believe it should work out as long as it
> isn't null.
>
> --
> -JB
> Microsoft MVP - Windows Shell/User
> Windows Vista Support FAQ -http://www.jimmah.com/vista/- Hide quoted text -
>
> - Show quoted text -


Quote: "If you have the kind of control over your users' computers to
make them
power users (admin privileges), then it would be much easier for you
just to authorize your MSI to be installed."

By saying this, do you mean elevate the installation by applying
credentials at runtime or in some other way authorizing the install
package, such as a digital signature or manifest it in some way? I'm
experiencing the problem with UAC disabled so applying credentials is
not the problem. You can't manifest an .msi, can you. I thought I
would have to wrap it in an .exe, but that won't work in our scenario
as it stands currently. Also, do manifests only really have effect
when UAC is enabled?

I'm starting to tread water in the vast Vista knowledge sea and I'm
getting tired, so I may not be making any sense or may be rambling at
this point.

When its all said and done, we may just have to require that the end
users have the ability or should have access to Admin credentials if
UAC is enabled or they must be an Admin if UAC disabled. From
reading, it seems that this is what installations are headed towards.

Thanks again for the help so far and anything additional you can/might
add is always GREATLY appreciated!!


My System SpecsSystem Spec
Old 07-09-2007   #12 (permalink)
Jimmy Brush


 
 

Re: VISTA and Power Users?

Superfreak3 wrote:
> On Jul 6, 4:38 pm, Jimmy Brush <j...@mvps.org> wrote:
>> Superfreak3wrote:
>>> On Jul 5, 10:39 am,Superfreak3<Matt.Wal...@synergis.com> wrote:
>>>> Earlier in our thread, you mentioned:
>>>> "However, the Power Users group still exists in Vista, but like the
>>>> document says, they are not ACL'ed access to system resources, so you
>>>> have to run the special file first to grant them extra access."
>>>> What 'special file' do you mean? I guess I need to know what exactly
>>>> do I have to do to mimic the Power Users group of XP.
>>>> I don't know if I mentioned this before, but I'm getting the no access
>>>> to Program Files messages with UAC Disabled. If I install with my
>>>> Power User with UAC enabled, I simply have to apply credentials
>>>> currently.
>>>> Any more info in setting up Power Users as in XP on VISTA would be
>>>> GREATLY APPRECIATED!
>>>> Thanks for the help/great information so far!!- Hide quoted text -
>>>> - Show quoted text -
>>> Also, if I write a service to launch our silent updates, what would I
>>> have to set ALLUSERS to, I wonder?

>> I would like to strongly discourage you from putting your users into the
>> legacy role of power users to solve this problem.
>>
>> It is simply not necessary for this.
>>
>> If you have the kind of control over your users' computers to make them
>> power users (admin privileges), then it would be much easier for you
>> just to authorize your MSI to be installed.
>>
>> That being said, I had assumed from the technet document you referenced
>> that there was a security template available somewhere that would set up
>> power user permissions on Vista. However, I couldn't find it. This means
>> you would have to roll your own security template to change the
>> permissions that you need (i.e., allow power users access to the
>> appropriate registry keys, files, and privileges).
>>
>> I found some more good sites that deal with MSI's and UAC that you might
>> find useful:
>>
>> http://msdn2.microsoft.com/en-us/lib...n-msi-notes-an...
>>
>> As for allusers, launching the MSI from a service account has
>> administrator privileges, so I believe it should work out as long as it
>> isn't null.
>>
>> --
>> -JB
>> Microsoft MVP - Windows Shell/User
>> Windows Vista Support FAQ -http://www.jimmah.com/vista/- Hide quoted text -
>>
>> - Show quoted text -

>
> Quote: "If you have the kind of control over your users' computers to
> make them
> power users (admin privileges), then it would be much easier for you
> just to authorize your MSI to be installed."
>
> By saying this, do you mean elevate the installation by applying
> credentials at runtime or in some other way authorizing the install
> package, such as a digital signature or manifest it in some way?
> I'm
> experiencing the problem with UAC disabled so applying credentials is
> not the problem. You can't manifest an .msi, can you. I thought I
> would have to wrap it in an .exe, but that won't work in our scenario
> as it stands currently. Also, do manifests only really have effect
> when UAC is enabled?


I think you are making this MUCH more complicated than it needs to be.

I probably haven't helped very much, but I've had a hard time trying to
understand your actual situation.

Forget about manifests, signatures, and UAC.

There is only ONE scenario you need your MSI to successfully work under:

* An administrator installs your application.

Just forget about everything else. Is all that other junk gone? OK. Log
in as an admin, and see if your program works when you install it while
logged in as an administrator. Try it with UAC on and off.

Does it work?

If so, you are DONE from a programming perspective for this MSI!
Congratulations! There are no other changes to be done to the MSI - no
manifests, no signatures - nothing! It works.

You've solved the problem "How do I make my MSI installable in a UAC
environment."

Now, you will need to take off your programmer's hat and put on your
administrator's hat.

Now you have to solve the problem "How do I install my MSI on my user's
computers?"

It is an *administrative* task to deploy your MSI to the computers you
want to put it on. An administrator causes this to happen. An actual
person (an administrator) flips a switch somewhere that does this.

The easiest way to deploy the MSI is to use group policy. Are your
computers joined to a domain? If so, it's easy-peasy-lemon-squeezy. (If
not, there are other EASY solutions)

If in a domain, read this little tutorial about group policy deployment:

http://www.windowsnetworking.com/art...lications.html

It so easy. You simply pick the computers you want to install your MSI
on. You choose whether you want to force the install to occur, or if you
want your users to choose whether to install the program or not (using
add/remove programs). Then, you stick your MSI on a network path
somewhere where all the computers can get to it. That's it! Deployment
done. Your program either gets installed as if by magic on your user's
computers, or they go to add/remove programs to install it if they need it.

The only other thing you have left to work on is your auto-updater. You
have some options:

1) seperate out your updater into another .exe, run it as a scheduled
task or service, and have it launch the new .msi when it finds one.
Since the .msi will be launched from a service or a scheduled task
running as system, it has admin power, and so can install without user
interaction. Be sure you run your setup in quiet mode for this, since it
won't be able to display anything to the user (since it is running
outside of any user account and inside of a system account).

2) Make an MSP for your updates. This will require that your initial
setup program as well as any additional MSP updates follow certain
conventions. I gave you a link that details exactly how this is
accomplished in a previous post. If you go this route, you don't have to
mess with services or scheduled tasks, your main program can launch the
MSP's and they will install fine from a standard user account.

3) Or, you could just forget about all the auto-update logic and just
deploy your updated MSI using group policy like you did for the main
app! It's up to you.

> I'm starting to tread water in the vast Vista knowledge sea and I'm
> getting tired, so I may not be making any sense or may be rambling at
> this point.
>
> When its all said and done, we may just have to require that the end
> users have the ability or should have access to Admin credentials if
> UAC is enabled or they must be an Admin if UAC disabled. From
> reading, it seems that this is what installations are headed towards.


That's simply not necessary.

You're just getting frustrated because you can't find an easy
programming-type solution to your problem where you flip a bit on your
installer and it just magically works. Because there isn't one.

The solution really is simple, but it's an administrative solution, not
a programming one.

> Thanks again for the help so far and anything additional you can/might
> add is always GREATLY appreciated!!
>


You're welcome.

--
-JB
Microsoft MVP - Windows Shell/User
Windows Vista Support FAQ - http://www.jimmah.com/vista/
My System SpecsSystem Spec
Old 07-10-2007   #13 (permalink)
Superfreak3


 
 

Re: VISTA and Power Users?

On Jul 9, 8:51 pm, Jimmy Brush <j...@mvps.org> wrote:
> Superfreak3wrote:
> > On Jul 6, 4:38 pm, Jimmy Brush <j...@mvps.org> wrote:
> >> Superfreak3wrote:
> >>> On Jul 5, 10:39 am,Superfreak3<Matt.Wal...@synergis.com> wrote:
> >>>> Earlier in our thread, you mentioned:
> >>>> "However, the Power Users group still exists in Vista, but like the
> >>>> document says, they are not ACL'ed access to system resources, so you
> >>>> have to run the special file first to grant them extra access."
> >>>> What 'special file' do you mean? I guess I need to know what exactly
> >>>> do I have to do to mimic the Power Users group of XP.
> >>>> I don't know if I mentioned this before, but I'm getting the no access
> >>>> to Program Files messages with UAC Disabled. If I install with my
> >>>> Power User with UAC enabled, I simply have to apply credentials
> >>>> currently.
> >>>> Any more info in setting up Power Users as in XP on VISTA would be
> >>>> GREATLY APPRECIATED!
> >>>> Thanks for the help/great information so far!!- Hide quoted text -
> >>>> - Show quoted text -
> >>> Also, if I write a service to launch our silent updates, what would I
> >>> have to set ALLUSERS to, I wonder?
> >> I would like to strongly discourage you from putting your users into the
> >> legacy role of power users to solve this problem.

>
> >> It is simply not necessary for this.

>
> >> If you have the kind of control over your users' computers to make them
> >> power users (admin privileges), then it would be much easier for you
> >> just to authorize your MSI to be installed.

>
> >> That being said, I had assumed from the technet document you referenced
> >> that there was a security template available somewhere that would set up
> >> power user permissions on Vista. However, I couldn't find it. This means
> >> you would have to roll your own security template to change the
> >> permissions that you need (i.e., allow power users access to the
> >> appropriate registry keys, files, and privileges).

>
> >> I found some more good sites that deal with MSI's and UAC that you might
> >> find useful:

>
> >>http://msdn2.microsoft.com/en-us/lib...ttp://blogs.ms......

>
> >> As for allusers, launching the MSI from a service account has
> >> administrator privileges, so I believe it should work out as long as it
> >> isn't null.

>
> >> --
> >> -JB
> >> Microsoft MVP - Windows Shell/User
> >> Windows Vista Support FAQ -http://www.jimmah.com/vista/-Hide quoted text -

>
> >> - Show quoted text -

>
> > Quote: "If you have the kind of control over your users' computers to
> > make them
> > power users (admin privileges), then it would be much easier for you
> > just to authorize your MSI to be installed."

>
> > By saying this, do you mean elevate the installation by applying
> > credentials at runtime or in some other way authorizing the install
> > package, such as a digital signature or manifest it in some way?
> > I'm
> > experiencing the problem with UAC disabled so applying credentials is
> > not the problem. You can't manifest an .msi, can you. I thought I
> > would have to wrap it in an .exe, but that won't work in our scenario
> > as it stands currently. Also, do manifests only really have effect
> > when UAC is enabled?

>
> I think you are making this MUCH more complicated than it needs to be.
>
> I probably haven't helped very much, but I've had a hard time trying to
> understand your actual situation.
>
> Forget about manifests, signatures, and UAC.
>
> There is only ONE scenario you need your MSI to successfully work under:
>
> * An administrator installs your application.
>
> Just forget about everything else. Is all that other junk gone? OK. Log
> in as an admin, and see if your program works when you install it while
> logged in as an administrator. Try it with UAC on and off.
>
> Does it work?
>
> If so, you are DONE from a programming perspective for this MSI!
> Congratulations! There are no other changes to be done to the MSI - no
> manifests, no signatures - nothing! It works.
>
> You've solved the problem "How do I make my MSI installable in a UAC
> environment."
>
> Now, you will need to take off your programmer's hat and put on your
> administrator's hat.
>
> Now you have to solve the problem "How do I install my MSI on my user's
> computers?"
>
> It is an *administrative* task to deploy your MSI to the computers you
> want to put it on. An administrator causes this to happen. An actual
> person (an administrator) flips a switch somewhere that does this.
>
> The easiest way to deploy the MSI is to use group policy. Are your
> computers joined to a domain? If so, it's easy-peasy-lemon-squeezy. (If
> not, there are other EASY solutions)
>
> If in a domain, read this little tutorial about group policy deployment:
>
> http://www.windowsnetworking.com/art...up-Policy-Depl...
>
> It so easy. You simply pick the computers you want to install your MSI
> on. You choose whether you want to force the install to occur, or if you
> want your users to choose whether to install the program or not (using
> add/remove programs). Then, you stick your MSI on a network path
> somewhere where all the computers can get to it. That's it! Deployment
> done. Your program either gets installed as if by magic on your user's
> computers, or they go to add/remove programs to install it if they need it.
>
> The only other thing you have left to work on is your auto-updater. You
> have some options:
>
> 1) seperate out your updater into another .exe, run it as a scheduled
> task or service, and have it launch the new .msi when it finds one.
> Since the .msi will be launched from a service or a scheduled task
> running as system, it has admin power, and so can install without user
> interaction. Be sure you run your setup in quiet mode for this, since it
> won't be able to display anything to the user (since it is running
> outside of any user account and inside of a system account).
>
> 2) Make an MSP for your updates. This will require that your initial
> setup program as well as any additional MSP updates follow certain
> conventions. I gave you a link that details exactly how this is
> accomplished in a previous post. If you go this route, you don't have to
> mess with services or scheduled tasks, your main program can launch the
> MSP's and they will install fine from a standard user account.
>
> 3) Or, you could just forget about all the auto-update logic and just
> deploy your updated MSI using group policy like you did for the main
> app! It's up to you.
>
> > I'm starting to tread water in the vast Vista knowledge sea and I'm
> > getting tired, so I may not be making any sense or may be rambling at
> > this point.

>
> > When its all said and done, we may just have to require that the end
> > users have the ability or should have access to Admin credentials if
> > UAC is enabled or they must be an Admin if UAC disabled. From
> > reading, it seems that this is what installations are headed towards.

>
> That's simply not necessary.
>
> You're just getting frustrated because you can't find an easy
> programming-type solution to your problem where you flip a bit on your
> installer and it just magically works. Because there isn't one.
>
> The solution really is simple, but it's an administrative solution, not
> a programming one.
>
> > Thanks again for the help so far and anything additional you can/might
> > add is always GREATLY appreciated!!

>
> You're welcome.
>
> --
> -JB
> Microsoft MVP - Windows Shell/User
> Windows Vista Support FAQ -http://www.jimmah.com/vista/- Hide quoted text -
>
> - Show quoted text -


My concerns/efforts are basically centered around:

> "Now you have to solve the problem "How do I install my MSI on my user's
> computers?""


I'm not really worried about our Server install as this will not be
installed on VISTA machines at present and I know its difficult for
you to determine 'good' answers for me as you have no idea what we're
doing.

Basically, the client .msi is in a network share and I believe, for
the initial install, users browse to that location and execute
the .msi. It is for this initial install I say they would probably
need to be an Admin or supply credentials with UAC.

After the initial install, the updates to these clients are silently
run if a new file is detected. This is where I might possibly use a
service.

My System SpecsSystem Spec
Old 07-10-2007   #14 (permalink)
Jimmy Brush


 
 

Re: VISTA and Power Users?

> Basically, the client .msi is in a network share and I believe, for
> the initial install, users browse to that location and execute
> the .msi. It is for this initial install I say they would probably
> need to be an Admin or supply credentials with UAC.
>


Why aren't you using group policy for deployment?

If it's because you don't have a domain, I can recommend another process.

I honestly am flabberghasted that you would be able to make all your
users administrators, effectively wiping out the security of your
enviornment, but would not be able to minutely change this procedure.

Instead of double-clicking the msi, your users would go to add/remove
programs.

Seriously, if you are prevented from changing this procedure for a
non-technical reason, but allowed to make your users admins, something
is VERY WRONG in your company.

However, for the sake of completeness, I do have a solution that would
allow your standard users to install your MSI without making them
administrators. This would require a registry edit on all the vista
machines.

Unfortunately, this would also allow them to install *ANY* program. They
could still elevate their privilege to admin, but it would be harder for
them to do than - well, making them a power user or an admin.

This is security thru obscurity, and if you rely on this, it will bite
you in the butt 100% of the time.

So I strongly recommend that you change your distribution policy to a
secure solution where an admin controls who can install what, and not
leave it up to your non-admin users.

But, you are the one in charge, not me, so if you want the bad solution,
I will give it to you.


- JB
My System SpecsSystem Spec
Old 07-11-2007   #15 (permalink)
Superfreak3


 
 

Re: VISTA and Power Users?

On Jul 10, 3:50 pm, Jimmy Brush <j...@mvps.org> wrote:
> > Basically, the client .msi is in a network share and I believe, for
> > the initial install, users browse to that location and execute
> > the .msi. It is for this initial install I say they would probably
> > need to be an Admin or supply credentials with UAC.

>
> Why aren't you using group policy for deployment?
>
> If it's because you don't have a domain, I can recommend another process.
>
> I honestly am flabberghasted that you would be able to make all your
> users administrators, effectively wiping out the security of your
> enviornment, but would not be able to minutely change this procedure.
>
> Instead of double-clicking the msi, your users would go to add/remove
> programs.
>
> Seriously, if you are prevented from changing this procedure for a
> non-technical reason, but allowed to make your users admins, something
> is VERY WRONG in your company.
>
> However, for the sake of completeness, I do have a solution that would
> allow your standard users to install your MSI without making them
> administrators. This would require a registry edit on all the vista
> machines.
>
> Unfortunately, this would also allow them to install *ANY* program. They
> could still elevate their privilege to admin, but it would be harder for
> them to do than - well, making them a power user or an admin.
>
> This is security thru obscurity, and if you rely on this, it will bite
> you in the butt 100% of the time.
>
> So I strongly recommend that you change your distribution policy to a
> secure solution where an admin controls who can install what, and not
> leave it up to your non-admin users.
>
> But, you are the one in charge, not me, so if you want the bad solution,
> I will give it to you.
>
> - JB


We are creating software that is installed/deployed in the field. We
really have no idea how a larger end user group will deploy or may
want to deploy our software, which is why I have to come up with
something that will work in most cases. I guess you could say they
created their own monster here in placing the client install in a
network and devising their own update detection/deployment mechanism.

I've inherited the installs since starting here last December and this
it just how it was designed when I got here. I know it probably needs
some rework, but that is for a later time (I hope as the company is
planning bigger changes for the app. due out in November). I was just
hoping to get the current mechanism functioning in VISTA to some
extent. The powers that be would like our next release to be Vista
ready by the end of July. Time is ticking and I'm getting
nervous! ; )

I guess I'm a little confused by the use of Group Policy or an
Administrator 'blessing' the installation in some way as opposed to
the actual installation of the software. If an Administrator blesses
the installation, do the actual installation processes run with
elevated privileges when the workstation User attempts to install?
Like I said, if I double click the .msi on a workstation, I need Admin
rights (or Power User in XP world) due to restricted install locations
and stuff written to the registry. Currently, if a non-Admin accesses
our application for the first time, Windows Installer will add the
necessary user information. Is that how it would work with Group
Policy?

In other words, if a workstation User goes to Add/Remove programs to
install the package as you say, after it has been blessed, how is it
known on that workstation that the install should run with elevate
privileges even if someone at the User level initiates it?

Also for the update piece of my puzzle, it is silent so is that where
the Service concept comes in?

To also clear up some confusion in my head, can I eliminate the
concepts of Advertisement and Administrative Install from this
discussion in my own head (that doesn't even sound healthy)?
Advertisement only places access points for later install and Admin
Install really only places a copy of the installation media somewhere
on a network to be hit by installing users, correct? These really
have nothing to do with security/privileges in that when the install
would actually occur, I would see similar prompts and/or behavior
based on what User type is actually installing. They are not
'blessed' in any way?

To sum it all up, I guess it would be up to the end user to employ
Group Policy for deployment or maybe we would have to recommend that
if that is the route on which we base our development.

I'm a bit confused in that you say you are shocked that we would be
able to make all users Administrators, but then you said earlier that:

"There is only ONE scenario you need your MSI to successfully work
under: * An administrator installs your application."

So within the environments to which our software is deployed in the
field, there is probably an Administrator that installs our Server
install (which, again, places the client install in a network share)
and then there are the workstation Users. Those users are exposed to
the client install. You are saying that Group Policy could be used to
install to the workstations, but if Group Policy is not used, then
they would have to be administrators, correct? I would then guess
that this is true for the initial install on a workstation, but then a
Service could be used to update the application?

I definitely want this thing turned in the right direction once and
for all so believe me when I say I am looking for a GOOD solution. I
know I'm rambling but bear with me! Thanks for the help so far. The
information provided is great!

My System SpecsSystem Spec
Old 07-11-2007   #16 (permalink)
Jimmy Brush


 
 

Re: VISTA and Power Users?

> We are creating software that is installed/deployed in the field. We
> really have no idea how a larger end user group will deploy or may
> want to deploy our software, which is why I have to come up with
> something that will work in most cases. I guess you could say they
> created their own monster here in placing the client install in a
> network and devising their own update detection/deployment mechanism.
>
> I've inherited the installs since starting here last December and this
> it just how it was designed when I got here. I know it probably needs
> some rework, but that is for a later time (I hope as the company is
> planning bigger changes for the app. due out in November). I was just
> hoping to get the current mechanism functioning in VISTA to some
> extent. The powers that be would like our next release to be Vista
> ready by the end of July. Time is ticking and I'm getting
> nervous! ; )


Ahhh OK so you are distributing this to customers to install. I got the
impression that this was an "internal" software app that you were
releasing inside of your company.

> I guess I'm a little confused by the use of Group Policy or an
> Administrator 'blessing' the installation in some way as opposed to
> the actual installation of the software. If an Administrator blesses
> the installation, do the actual installation processes run with
> elevated privileges when the workstation User attempts to install?


Yes.

> Like I said, if I double click the .msi on a workstation, I need Admin
> rights (or Power User in XP world) due to restricted install locations
> and stuff written to the registry. Currently, if a non-Admin accesses
> our application for the first time, Windows Installer will add the
> necessary user information. Is that how it would work with Group
> Policy?


I'm not sure what you mean by "if a non-Admin accesses our application
for the first time, Windows Installer will add the necessary user
information".

> In other words, if a workstation User goes to Add/Remove programs to
> install the package as you say, after it has been blessed, how is it
> known on that workstation that the install should run with elevate
> privileges even if someone at the User level initiates it?


It is known via registry settings and whatnot that come from active
directory in a domain environment.

This is a built-in feature of Windows. When the admin at your customer's
site marks your MSI (located on some network share) as "blessed" using
active directory management tools, this gets propagated down to all the
selected client computers in the domain via active directory.

Instead of the "users" directly starting the install by double-clicking
on the MSI, the computer will either 1) automatically start the install
the next time the user logs on, or 2) will start the install when the
user selects it from add/remove programs.

The install will then run "elevated", because it has been blessed.

It is important to realize that this is something that your MSI has no
control over. This is something that your customers must do, but that
you can give instructions/guidance on.

>
> Also for the update piece of my puzzle, it is silent so is that where
> the Service concept comes in?
>


Yes. The update service or scheduled task will run in a system account.
You will need to make a seperate .exe for this - that checks to see if
there is an update, downloads it, and then launches it. Because this is
running as a service/task in a system account, it is elevated (running
with admin power, and so the launched MSI will act exactly as if an
administrator had double-clicked on it). But, it cannot show UI, because
it is not running inside of any particular user account (it will run
even if there is no user logged on).

> To also clear up some confusion in my head, can I eliminate the
> concepts of Advertisement and Administrative Install from this
> discussion in my own head (that doesn't even sound healthy)?
> Advertisement only places access points for later install and Admin
> Install really only places a copy of the installation media somewhere
> on a network to be hit by installing users, correct? These really
> have nothing to do with security/privileges in that when the install
> would actually occur, I would see similar prompts and/or behavior
> based on what User type is actually installing. They are not
> 'blessed' in any way?
>
> To sum it all up, I guess it would be up to the end user to employ
> Group Policy for deployment or maybe we would have to recommend that
> if that is the route on which we base our development.


From a development perspective, yes, you can ignore this as it has
nothing to do with how you make the MSI.

Group policy is how your customers would deploy this app to their
desktops. They would use "administrative install" to force install your
app on their computers without giving the users of those computers the
option to install it. They would use "advertisement" to allow the users
to install your app on demand.

Standard users would NOT be prompted for permission once an admin has
blessed the install - it would just work for them. The install would run
elevated (as if an administrator double-clicked on it) even though a
standard user is logged in. Windows Installer and the group
policy/blessed install stuff handles all of this magic for you - you
have nothing special to do progrmmatically to support this - it just works.

That's why I said:

> I'm a bit confused in that you say you are shocked that we would be
> able to make all users Administrators, but then you said earlier that:
>
> "There is only ONE scenario you need your MSI to successfully work
> under: * An administrator installs your application."


Right, from a programmatic perspective, your MSI only has to work when
an administrator installs the program.

There are administrative ways (like using group policy) that will allow
your MSI to be installed by standard users, with an administrator's
blessing. From your MSI's perspective, it is elevated and has admin
power... even though the user who is asking for it to be installed may
not. The admin blessing the install is what allows this, and Windows
takes care of making this work.

> So within the environments to which our software is deployed in the
> field, there is probably an Administrator that installs our Server
> install (which, again, places the client install in a network share)
> and then there are the workstation Users. Those users are exposed to
> the client install. You are saying that Group Policy could be used to
> install to the workstations, but if Group Policy is not used, then
> they would have to be administrators, correct? I would then guess
> that this is true for the initial install on a workstation, but then a
> Service could be used to update the application?
>


If group policy is not used (which it would not be available to your
customers who do not have domains), their users would either have to be
administrators, or they would need to use some other way of automating
software installs to their computers. There are third party solutions
for this, and there are some "do it yourself" solutions as well.

For example, if the customer is not using a domain, but there is an
administrator account on every computer that has the same password,
they can automate installs by making a script that connects to each of
their computers and creates a scheduled task that runs inside of a
system account that launches the setup program.

In any case, it is up to the customer to figure out how automate the
installation of your program on their computers, considering your
program requires admin power to install.

The only other solution would be to make your setup program NOT require
admin power to install (i.e. not install to program files, but a
per-user location; not write any settings to HKLM; your auto-updater
would also not be able to run as a service/scheduled task in this
instance, since non-admins cannot register services; etc).


> I definitely want this thing turned in the right direction once and
> for all so believe me when I say I am looking for a GOOD solution. I
> know I'm rambling but bear with me! Thanks for the help so far. The
> information provided is great!
>


Good to hear

Basically, there is nothing you can do programmatically to cause your
setup program to be installable by non-admins, if it has to do admin stuff.

If you think about this, it makes sense. That would totally break the
security in Vista.

It is up to your customers to have some method of automated software
installs to get this to work for them.

If they have a Windows domain, this is super simple for them - Windows
in a domain environment comes with all the tools they need to make this
happen.

If not, they will need to either have a third-party tool that allows
managed software installations, or will have to "roll their own" solution.

If your program does not require admin power and you change your setup
program to not require admin power, then it can be installed by
non-admins without your customers having to do anything special.

In this case, you would have to handle two cases in your MSI: 1) an
admin installs the program and 2) a non-admin installs the program.

However, in a corporate environment, it is sometimes better to leave
your setup program as requiring admin power, because allowing non-admin
installs can increase complexity for both you and your customers.

For example, non-admin installs are usually placed in a per-user
location. This means that every user has their own copy of the program.
If each computer has a lot of users, this is a lot of rendundant data,
and makes upgrading more time-consuming and wasteful, as every user will
need to download and install their own copy of an update.

Also, if your install requires admin power, then the very fact that
standard users CANNOT install your program without an admin's blessing
can help your customers out if they have a lot of users, as this makes
sure that the software only goes to the computers that the admin's want.

For example, if they are rolling out your software in stages or they
don't want some users to have your software installed, they won't have
to worry about users that they don't want to install the software from
doing so.

--
-JB
Microsoft MVP - Windows Shell/User
Windows Vista Support FAQ - http://www.jimmah.com/vista/
My System SpecsSystem Spec
Old 07-12-2007   #17 (permalink)
Superfreak3


 
 

Re: VISTA and Power Users?

On Jul 11, 10:34 pm, Jimmy Brush <j...@mvps.org> wrote:
> > We are creating software that is installed/deployed in the field. We
> > really have no idea how a larger end user group will deploy or may
> > want to deploy our software, which is why I have to come up with
> > something that will work in most cases. I guess you could say they
> > created their own monster here in placing the client install in a
> > network and devising their own update detection/deployment mechanism.

>
> > I've inherited the installs since starting here last December and this
> > it just how it was designed when I got here. I know it probably needs
> > some rework, but that is for a later time (I hope as the company is
> > planning bigger changes for the app. due out in November). I was just
> > hoping to get the current mechanism functioning in VISTA to some
> > extent. The powers that be would like our next release to be Vista
> > ready by the end of July. Time is ticking and I'm getting
> > nervous! ; )

>
> Ahhh OK so you are distributing this to customers to install. I got the
> impression that this was an "internal" software app that you were
> releasing inside of your company.
>
> > I guess I'm a little confused by the use of Group Policy or an
> > Administrator 'blessing' the installation in some way as opposed to
> > the actual installation of the software. If an Administrator blesses
> > the installation, do the actual installation processes run with
> > elevated privileges when the workstation User attempts to install?

>
> Yes.
>
> > Like I said, if I double click the .msi on a workstation, I need Admin
> > rights (or Power User in XP world) due to restricted install locations
> > and stuff written to the registry. Currently, if a non-Admin accesses
> > our application for the first time, Windows Installer will add the
> > necessary user information. Is that how it would work with Group
> > Policy?

>
> I'm not sure what you mean by "if a non-Admin accesses our application
> for the first time, Windows Installer will add the necessary user
> information".
>
> > In other words, if a workstation User goes to Add/Remove programs to
> > install the package as you say, after it has been blessed, how is it
> > known on that workstation that the install should run with elevate
> > privileges even if someone at the User level initiates it?

>
> It is known via registry settings and whatnot that come from active
> directory in a domain environment.
>
> This is a built-in feature of Windows. When the admin at your customer's
> site marks your MSI (located on some network share) as "blessed" using
> active directory management tools, this gets propagated down to all the
> selected client computers in the domain via active directory.
>
> Instead of the "users" directly starting the install by double-clicking
> on the MSI, the computer will either 1) automatically start the install
> the next time the user logs on, or 2) will start the install when the
> user selects it from add/remove programs.
>
> The install will then run "elevated", because it has been blessed.
>
> It is important to realize that this is something that your MSI has no
> control over. This is something that your customers must do, but that
> you can give instructions/guidance on.
>
>
>
> > Also for the update piece of my puzzle, it is silent so is that where
> > the Service concept comes in?

>
> Yes. The update service or scheduled task will run in a system account.
> You will need to make a seperate .exe for this - that checks to see if
> there is an update, downloads it, and then launches it. Because this is
> running as a service/task in a system account, it is elevated (running
> with admin power, and so the launched MSI will act exactly as if an
> administrator had double-clicked on it). But, it cannot show UI, because
> it is not running inside of any particular user account (it will run
> even if there is no user logged on).
>
> > To also clear up some confusion in my head, can I eliminate the
> > concepts of Advertisement and Administrative Install from this
> > discussion in my own head (that doesn't even sound healthy)?
> > Advertisement only places access points for later install and Admin
> > Install really only places a copy of the installation media somewhere
> > on a network to be hit by installing users, correct? These really
> > have nothing to do with security/privileges in that when the install
> > would actually occur, I would see similar prompts and/or behavior
> > based on what User type is actually installing. They are not
> > 'blessed' in any way?

>
> > To sum it all up, I guess it would be up to the end user to employ
> > Group Policy for deployment or maybe we would have to recommend that
> > if that is the route on which we base our development.

>
> From a development perspective, yes, you can ignore this as it has
> nothing to do with how you make the MSI.
>
> Group policy is how your customers would deploy this app to their
> desktops. They would use "administrative install" to force install your
> app on their computers without giving the users of those computers the
> option to install it. They would use "advertisement" to allow the users
> to install your app on demand.
>
> Standard users would NOT be prompted for permission once an admin has
> blessed the install - it would just work for them. The install would run
> elevated (as if an administrator double-clicked on it) even though a
> standard user is logged in. Windows Installer and the group
> policy/blessed install stuff handles all of this magic for you - you
> have nothing special to do progrmmatically to support this - it just works.
>
> That's why I said:
>
> > I'm a bit confused in that you say you are shocked that we would be
> > able to make all users Administrators, but then you said earlier that:

>
> > "There is only ONE scenario you need your MSI to successfully work
> > under: * An administrator installs your application."

>
> Right, from a programmatic perspective, your MSI only has to work when
> an administrator installs the program.
>
> There are administrative ways (like using group policy) that will allow
> your MSI to be installed by standard users, with an administrator's
> blessing. From your MSI's perspective, it is elevated and has admin
> power... even though the user who is asking for it to be installed may
> not. The admin blessing the install is what allows this, and Windows
> takes care of making this work.
>
> > So within the environments to which our software is deployed in the
> > field, there is probably an Administrator that installs our Server
> > install (which, again, places the client install in a network share)
> > and then there are the workstation Users. Those users are exposed to
> > the client install. You are saying that Group Policy could be used to
> > install to the workstations, but if Group Policy is not used, then
> > they would have to be administrators, correct? I would then guess
> > that this is true for the initial install on a workstation, but then a
> > Service could be used to update the application?

>
> If group policy is not used (which it would not be available to your
> customers who do not have domains), their users would either have to be
> administrators, or they would need to use some other way of automating
> software installs to their computers. There are third party solutions
> for this, and there are some "do it yourself" solutions as well.
>
> For example, if the customer is not using a domain, but there is an
> administrator account on every computer that has the same password,
> they can automate installs by making a script that connects to each of
> their computers and creates a scheduled task that runs inside of a
> system account that launches the setup program.
>
> In any case, it is up to the customer to figure out how automate the
> installation of your program on their computers, considering your
> program requires admin power to install.
>
> The only other solution would be to make your setup program NOT require
> admin power to install (i.e. not install to program files, but a
> per-user location; not write any settings to HKLM; your auto-updater
> would also not be able to run as a service/scheduled task in this
> instance, since non-admins cannot register services; etc).
>
> > I definitely want this thing turned in the right direction once and
> > for all so believe me when I say I am looking for a GOOD solution. I
> > know I'm rambling but bear with me! Thanks for the help so far. The
> > information provided is great!

>
> Good to hear
>
> Basically, there is nothing you can do programmatically to cause your
> setup program to be installable by non-admins, if it has to do admin stuff.
>
> If you think about this, it makes sense. That would totally break the
> security in Vista.
>
> It is up to your customers to have some method of automated software
> installs to get this to work for them.
>
> If they have a Windows domain, this is super simple for them - Windows
> in a domain environment comes with all the tools they need to make this
> happen.
>
> If not, they will need to either have a third-party tool that allows
> managed software installations, or will have to "roll their own" solution.
>
> If your program does not require admin power and you change your setup
> program to not require admin power, then it can be installed by
> non-admins without your customers having to do anything special.
>
> In this case, you would have to handle two cases in your MSI: 1) an
> admin installs the program and 2) a non-admin installs the program.
>
> However, in a corporate environment, it is sometimes better to leave
> your setup program as requiring admin power, because allowing non-admin
> installs can increase complexity for both you and your customers.
>
> For example, non-admin installs are usually placed in a per-user
> location. This means that every user has their own copy of the program.
> If each computer has a lot of users, this is a lot of rendundant data,
> and makes upgrading more time-consuming and wasteful, as every user will
> need to download and install their own copy of an update.
>
> Also, if your install requires admin power, then the very fact that
> standard users CANNOT install your ...
>
> read more »


Thank you so much for that extended explanation and taking the time to
do so. It is MUCH APPRECIATED!

My System SpecsSystem Spec
Old 07-13-2007   #18 (permalink)
Superfreak3


 
 

Re: VISTA and Power Users?

On Jul 12, 10:01 am, Superfreak3 <Matt.Wal...@synergis.com> wrote:
> On Jul 11, 10:34 pm, Jimmy Brush <j...@mvps.org> wrote:
>
>
>
> > > We are creating software that is installed/deployed in the field. We
> > > really have no idea how a larger end user group will deploy or may
> > > want to deploy our software, which is why I have to come up with
> > > something that will work in most cases. I guess you could say they
> > > created their own monster here in placing the client install in a
> > > network and devising their own update detection/deployment mechanism.

>
> > > I've inherited the installs since starting here last December and this
> > > it just how it was designed when I got here. I know it probably needs
> > > some rework, but that is for a later time (I hope as the company is
> > > planning bigger changes for the app. due out in November). I was just
> > > hoping to get the current mechanism functioning in VISTA to some
> > > extent. The powers that be would like our next release to be Vista
> > > ready by the end of July. Time is ticking and I'm getting
> > > nervous! ; )

>
> > Ahhh OK so you are distributing this to customers to install. I got the
> > impression that this was an "internal" software app that you were
> > releasing inside of your company.

>
> > > I guess I'm a little confused by the use of Group Policy or an
> > > Administrator 'blessing' the installation in some way as opposed to
> > > the actual installation of the software. If an Administrator blesses
> > > the installation, do the actual installation processes run with
> > > elevated privileges when the workstation User attempts to install?

>
> > Yes.

>
> > > Like I said, if I double click the .msi on a workstation, I need Admin
> > > rights (or Power User in XP world) due to restricted install locations
> > > and stuff written to the registry. Currently, if a non-Admin accesses
> > > our application for the first time, Windows Installer will add the
> > > necessary user information. Is that how it would work with Group
> > > Policy?

>
> > I'm not sure what you mean by "if a non-Admin accesses our application
> > for the first time, Windows Installer will add the necessary user
> > information".

>
> > > In other words, if a workstation User goes to Add/Remove programs to
> > > install the package as you say, after it has been blessed, how is it
> > > known on that workstation that the install should run with elevate
> > > privileges even if someone at the User level initiates it?

>
> > It is known via registry settings and whatnot that come from active
> > directory in a domain environment.

>
> > This is a built-in feature of Windows. When the admin at your customer's
> > site marks your MSI (located on some network share) as "blessed" using
> > active directory management tools, this gets propagated down to all the
> > selected client computers in the domain via active directory.

>
> > Instead of the "users" directly starting the install by double-clicking
> > on the MSI, the computer will either 1) automatically start the install
> > the next time the user logs on, or 2) will start the install when the
> > user selects it from add/remove programs.

>
> > The install will then run "elevated", because it has been blessed.

>
> > It is important to realize that this is something that your MSI has no
> > control over. This is something that your customers must do, but that
> > you can give instructions/guidance on.

>
> > > Also for the update piece of my puzzle, it is silent so is that where
> > > the Service concept comes in?

>
> > Yes. The update service or scheduled task will run in a system account.
> > You will need to make a seperate .exe for this - that checks to see if
> > there is an update, downloads it, and then launches it. Because this is
> > running as a service/task in a system account, it is elevated (running
> > with admin power, and so the launched MSI will act exactly as if an
> > administrator had double-clicked on it). But, it cannot show UI, because
> > it is not running inside of any particular user account (it will run
> > even if there is no user logged on).

>
> > > To also clear up some confusion in my head, can I eliminate the
> > > concepts of Advertisement and Administrative Install from this
> > > discussion in my own head (that doesn't even sound healthy)?
> > > Advertisement only places access points for later install and Admin
> > > Install really only places a copy of the installation media somewhere
> > > on a network to be hit by installing users, correct? These really
> > > have nothing to do with security/privileges in that when the install
> > > would actually occur, I would see similar prompts and/or behavior
> > > based on what User type is actually installing. They are not
> > > 'blessed' in any way?

>
> > > To sum it all up, I guess it would be up to the end user to employ
> > > Group Policy for deployment or maybe we would have to recommend that
> > > if that is the route on which we base our development.

>
> > From a development perspective, yes, you can ignore this as it has
> > nothing to do with how you make the MSI.

>
> > Group policy is how your customers would deploy this app to their
> > desktops. They would use "administrative install" to force install your
> > app on their computers without giving the users of those computers the
> > option to install it. They would use "advertisement" to allow the users
> > to install your app on demand.

>
> > Standard users would NOT be prompted for permission once an admin has
> > blessed the install - it would just work for them. The install would run
> > elevated (as if an administrator double-clicked on it) even though a
> > standard user is logged in. Windows Installer and the group
> > policy/blessed install stuff handles all of this magic for you - you
> > have nothing special to do progrmmatically to support this - it just works.

>
> > That's why I said:

>
> > > I'm a bit confused in that you say you are shocked that we would be
> > > able to make all users Administrators, but then you said earlier that:

>
> > > "There is only ONE scenario you need your MSI to successfully work
> > > under: * An administrator installs your application."

>
> > Right, from a programmatic perspective, your MSI only has to work when
> > an administrator installs the program.

>
> > There are administrative ways (like using group policy) that will allow
> > your MSI to be installed by standard users, with an administrator's
> > blessing. From your MSI's perspective, it is elevated and has admin
> > power... even though the user who is asking for it to be installed may
> > not. The admin blessing the install is what allows this, and Windows
> > takes care of making this work.

>
> > > So within the environments to which our software is deployed in the
> > > field, there is probably an Administrator that installs our Server
> > > install (which, again, places the client install in a network share)
> > > and then there are the workstation Users. Those users are exposed to
> > > the client install. You are saying that Group Policy could be used to
> > > install to the workstations, but if Group Policy is not used, then
> > > they would have to be administrators, correct? I would then guess
> > > that this is true for the initial install on a workstation, but then a
> > > Service could be used to update the application?

>
> > If group policy is not used (which it would not be available to your
> > customers who do not have domains), their users would either have to be
> > administrators, or they would need to use some other way of automating
> > software installs to their computers. There are third party solutions
> > for this, and there are some "do it yourself" solutions as well.

>
> > For example, if the customer is not using a domain, but there is an
> > administrator account on every computer that has the same password,
> > they can automate installs by making a script that connects to each of
> > their computers and creates a scheduled task that runs inside of a
> > system account that launches the setup program.

>
> > In any case, it is up to the customer to figure out how automate the
> > installation of your program on their computers, considering your
> > program requires admin power to install.

>
> > The only other solution would be to make your setup program NOT require
> > admin power to install (i.e. not install to program files, but a
> > per-user location; not write any settings to HKLM; your auto-updater
> > would also not be able to run as a service/scheduled task in this
> > instance, since non-admins cannot register services; etc).

>
> > > I definitely want this thing turned in the right direction once and
> > > for all so believe me when I say I am looking for a GOOD solution. I
> > > know I'm rambling but bear with me! Thanks for the help so far. The
> > > information provided is great!

>
> > Good to hear

>
> > Basically, there is nothing you can do programmatically to cause your
> > setup program to be installable by non-admins, if it has to do admin stuff.

>
> > If you think about this, it makes sense. That would totally break the
> > security in Vista.

>
> > It is up to your customers to have some method of automated software
> > installs to get this to work for them.

>
> > If they have a Windows domain, this is super simple for them - Windows
> > in a domain environment comes with all the tools they need to make this
> > happen.

>
> > If not, they will need to either have a third-party tool that allows
> > managed software installations, or will have to "roll their own" solution.

>
> > If your program does not require admin power and you change your setup
> > program to not require admin power, then it can be installed by
> > non-admins without your customers having to do anything special.

>
> > In this case, you would have to handle two cases in your MSI: 1) an
> > admin installs the program and 2) a non-admin installs the program.

>
> > However, in a corporate environment, it is sometimes better to leave
> > your setup program as requiring admin power, because allowing non-admin
> > installs can increase complexity for both you and your customers.

>
> > For example, non-admin installs are usually placed in a per-user
> > location. This means that every user has their own copy of

>
> ...
>
> read more »- Hide quoted text -
>
> - Show quoted text -


As one of the alternate deployment methods your provided...

"1) seperate out your updater into another .exe, run it as a
scheduled
task or service, and have it launch the new .msi when it finds one.
Since the .msi will be launched from a service or a scheduled task
running as system, it has admin power, and so can install without
user
interaction. Be sure you run your setup in quiet mode for this, since
it
won't be able to display anything to the user (since it is running
outside of any user account and inside of a system account)."

I tested the Task method in the following manner, I logged in as
Administrator and added the Task. I used a small test .msi and
ensured that it prompted for elevation as the logged on Admin. After
removing the small test app., I tried installing via my Scheduled
Task, which appeared to work. I tested a small update in this manner
in this way too and it worked. I installed the initial app. manually
as we will do, then updated with the task and all looked OK.

Now I tried the same thing with a Standard User (UAC enabled) and all
worked OK here too, but it appears the Task has to be built as an
Admin. I guess because of using the System account. When I tried to
import the task into my Standard User's Task Administration, I got a
no-no message. Can't import this type of action.

Another question that arises is will the Task, built while an Admin
was logged in, fire when trigger event arises if the Standard User is
the current login?

This looks promising. I would guess the service would function in a
similar manner.

THANKS FOR ALL THE HELP TO THIS POINT!

My System SpecsSystem Spec
Old 07-13-2007   #19 (permalink)
Superfreak3


 
 

Re: VISTA and Power Users?

On Jul 11, 10:34 pm, Jimmy Brush <j...@mvps.org> wrote:
> > We are creating software that is installed/deployed in the field. We
> > really have no idea how a larger end user group will deploy or may
> > want to deploy our software, which is why I have to come up with
> > something that will work in most cases. I guess you could say they
> > created their own monster here in placing the client install in a
> > network and devising their own update detection/deployment mechanism.

>
> > I've inherited the installs since starting here last December and this
> > it just how it was designed when I got here. I know it probably needs
> > some rework, but that is for a later time (I hope as the company is
> > planning bigger changes for the app. due out in November). I was just
> > hoping to get the current mechanism functioning in VISTA to some
> > extent. The powers that be would like our next release to be Vista
> > ready by the end of July. Time is ticking and I'm getting
> > nervous! ; )

>
> Ahhh OK so you are distributing this to customers to install. I got the
> impression that this was an "internal" software app that you were
> releasing inside of your company.
>
> > I guess I'm a little confused by the use of Group Policy or an
> > Administrator 'blessing' the installation in some way as opposed to
> > the actual installation of the software. If an Administrator blesses
> > the installation, do the actual installation processes run with
> > elevated privileges when the workstation User attempts to install?

>
> Yes.
>
> > Like I said, if I double click the .msi on a workstation, I need Admin
> > rights (or Power User in XP world) due to restricted install locations
> > and stuff written to the registry. Currently, if a non-Admin accesses
> > our application for the first time, Windows Installer will add the
> > necessary user information. Is that how it would work with Group
> > Policy?

>
> I'm not sure what you mean by "if a non-Admin accesses our application
> for the first time, Windows Installer will add the necessary user
> information".
>
> > In other words, if a workstation User goes to Add/Remove programs to
> > install the package as you say, after it has been blessed, how is it
> > known on that workstation that the install should run with elevate
> > privileges even if someone at the User level initiates it?

>
> It is known via registry settings and whatnot that come from active
> directory in a domain environment.
>
> This is a built-in feature of Windows. When the admin at your customer's
> site marks your MSI (located on some network share) as "blessed" using
> active directory management tools, this gets propagated down to all the
> selected client computers in the domain via active directory.
>
> Instead of the "users" directly starting the install by double-clicking
> on the MSI, the computer will either 1) automatically start the install
> the next time the user logs on, or 2) will start the install when the
> user selects it from add/remove programs.
>
> The install will then run "elevated", because it has been blessed.
>
> It is important to realize that this is something that your MSI has no
> control over. This is something that your customers must do, but that
> you can give instructions/guidance on.
>
>
>
> > Also for the update piece of my puzzle, it is silent so is that where
> > the Service concept comes in?

>
> Yes. The update service or scheduled task will run in a system account.
> You will need to make a seperate .exe for this - that checks to see if
> there is an update, downloads it, and then launches it. Because this is
> running as a service/task in a system account, it is elevated (running
> with admin power, and so the launched MSI will act exactly as if an
> administrator had double-clicked on it). But, it cannot show UI, because
> it is not running inside of any particular user account (it will run
> even if there is no user logged on).
>
> > To also clear up some confusion in my head, can I eliminate the
> > concepts of Advertisement and Administrative Install from this
> > discussion in my own head (that doesn't even sound healthy)?
> > Advertisement only places access points for later install and Admin
> > Install really only places a copy of the installation media somewhere
> > on a network to be hit by installing users, correct? These really
> > have nothing to do with security/privileges in that when the install
> > would actually occur, I would see similar prompts and/or behavior
> > based on what User type is actually installing. They are not
> > 'blessed' in any way?

>
> > To sum it all up, I guess it would be up to the end user to employ
> > Group Policy for deployment or maybe we would have to recommend that
> > if that is the route on which we base our development.

>
> From a development perspective, yes, you can ignore this as it has
> nothing to do with how you make the MSI.
>
> Group policy is how your customers would deploy this app to their
> desktops. They would use "administrative install" to force install your
> app on their computers without giving the users of those computers the
> option to install it. They would use "advertisement" to allow the users
> to install your app on demand.
>
> Standard users would NOT be prompted for permission once an admin has
> blessed the install - it would just work for them. The install would run
> elevated (as if an administrator double-clicked on it) even though a
> standard user is logged in. Windows Installer and the group
> policy/blessed install stuff handles all of this magic for you - you
> have nothing special to do progrmmatically to support this - it just works.
>
> That's why I said:
>
> > I'm a bit confused in that you say you are shocked that we would be
> > able to make all users Administrators, but then you said earlier that:

>
> > "There is only ONE scenario you need your MSI to successfully work
> > under: * An administrator installs your application."

>
> Right, from a programmatic perspective, your MSI only has to work when
> an administrator installs the program.
>
> There are administrative ways (like using group policy) that will allow
> your MSI to be installed by standard users, with an administrator's
> blessing. From your MSI's perspective, it is elevated and has admin
> power... even though the user who is asking for it to be installed may
> not. The admin blessing the install is what allows this, and Windows
> takes care of making this work.
>
> > So within the environments to which our software is deployed in the
> > field, there is probably an Administrator that installs our Server
> > install (which, again, places the client install in a network share)
> > and then there are the workstation Users. Those users are exposed to
> > the client install. You are saying that Group Policy could be used to
> > install to the workstations, but if Group Policy is not used, then
> > they would have to be administrators, correct? I would then guess
> > that this is true for the initial install on a workstation, but then a
> > Service could be used to update the application?

>
> If group policy is not used (which it would not be available to your
> customers who do not have domains), their users would either have to be
> administrators, or they would need to use some other way of automating
> software installs to their computers. There are third party solutions
> for this, and there are some "do it yourself" solutions as well.
>
> For example, if the customer is not using a domain, but there is an
> administrator account on every computer that has the same password,
> they can automate installs by making a script that connects to each of
> their computers and creates a scheduled task that runs inside of a
> system account that launches the setup program.
>
> In any case, it is up to the customer to figure out how automate the
> installation of your program on their computers, considering your
> program requires admin power to install.
>
> The only other solution would be to make your setup program NOT require
> admin power to install (i.e. not install to program files, but a
> per-user location; not write any settings to HKLM; your auto-updater
> would also not be able to run as a service/scheduled task in this
> instance, since non-admins cannot register services; etc).
>
> > I definitely want this thing turned in the right direction once and
> > for all so believe me when I say I am looking for a GOOD solution. I
> > know I'm rambling but bear with me! Thanks for the help so far. The
> > information provided is great!

>
> Good to hear
>
> Basically, there is nothing you can do programmatically to cause your
> setup program to be installable by non-admins, if it has to do admin stuff.
>
> If you think about this, it makes sense. That would totally break the
> security in Vista.
>
> It is up to your customers to have some method of automated software
> installs to get this to work for them.
>
> If they have a Windows domain, this is super simple for them - Windows
> in a domain environment comes with all the tools they need to make this
> happen.
>
> If not, they will need to either have a third-party tool that allows
> managed software installations, or will have to "roll their own" solution.
>
> If your program does not require admin power and you change your setup
> program to not require admin power, then it can be installed by
> non-admins without your customers having to do anything special.
>
> In this case, you would have to handle two cases in your MSI: 1) an
> admin installs the program and 2) a non-admin installs the program.
>
> However, in a corporate environment, it is sometimes better to leave
> your setup program as requiring admin power, because allowing non-admin
> installs can increase complexity for both you and your customers.
>
> For example, non-admin installs are usually placed in a per-user
> location. This means that every user has their own copy of the program.
> If each computer has a lot of users, this is a lot of rendundant data,
> and makes upgrading more time-consuming and wasteful, as every user will
> need to download and install their own copy of an update.
>
> Also, if your install requires admin power, then the very fact that
> standard users CANNOT install your ...
>
> read more »


As one of the alternate deployment methods your provided...

"1) seperate out your updater into another .exe, run it as a
scheduled
task or service, and have it launch the new .msi when it finds one.
Since the .msi will be launched from a service or a scheduled task
running as system, it has admin power, and so can install without
user
interaction. Be sure you run your setup in quiet mode for this, since
it
won't be able to display anything to the user (since it is running
outside of any user account and inside of a system account)."

I tested the Task method in the following manner, I logged in as
Administrator and added the Task. I used a small test .msi and
ensured that it prompted for elevation as the logged on Admin. After
removing the small test app., I tried installing via my Scheduled
Task, which appeared to work. I tested a small update in this manner
in this way too and it worked. I installed the initial app. manually
as we will do, then updated with the task and all looked OK.

Now I tried the same thing with a Standard User (UAC enabled) and all
worked OK here too, but it appears the Task has to be built as an
Admin. I guess because of using the System account. When I tried to
import the task into my Standard User's Task Administration, I got a
no-no message. Can't import this type of action.

Another question that arises is will the Task, built while an Admin
was logged in, fire when trigger event arises if the Standard User is
the current login?

This looks promising. I would guess the service would function in a
similar manner.

THANKS FOR ALL THE HELP TO THIS POINT!

My System SpecsSystem Spec
Old 07-13-2007   #20 (permalink)
Jimmy Brush


 
 

Re: VISTA and Power Users?

>
> As one of the alternate deployment methods your provided...
>
> "1) seperate out your updater into another .exe, run it as a
> scheduled
> task or service, and have it launch the new .msi when it finds one.
> Since the .msi will be launched from a service or a scheduled task
> running as system, it has admin power, and so can install without
> user
> interaction. Be sure you run your setup in quiet mode for this, since
> it
> won't be able to display anything to the user (since it is running
> outside of any user account and inside of a system account)."
>
> I tested the Task method in the following manner, I logged in as
> Administrator and added the Task. I used a small test .msi and
> ensured that it prompted for elevation as the logged on Admin. After
> removing the small test app., I tried installing via my Scheduled
> Task, which appeared to work. I tested a small update in this manner
> in this way too and it worked. I installed the initial app. manually
> as we will do, then updated with the task and all looked OK.
>
> Now I tried the same thing with a Standard User (UAC enabled) and all
> worked OK here too, but it appears the Task has to be built as an
> Admin. I guess because of using the System account. When I tried to
> import the task into my Standard User's Task Administration, I got a
> no-no message. Can't import this type of action.


Standard users generally cannot create/modify/start tasks. You can
create tasks programmatically from your main install using the COM
interface to the task scheduler.

http://msdn2.microsoft.com/en-us/library/aa384006.aspx

> Another question that arises is will the Task, built while an Admin
> was logged in, fire when trigger event arises if the Standard User is
> the current login?


Yes, a task follows its triggers regardless of which user is logged on.
Note that a task running inside of a system account can run even if no
user is logged in (depending on your specific triggers, of course), and
will never be visible on the screen.

> This looks promising. I would guess the service would function in a
> similar manner.


Yes, services are similar for what you are doing, except they require
the .exe to be created differently than a normal program (different
entry point, and it must handle messages from the service control
manager, e.g. start, stop, etc).

Services can never be visible on the screen.

> THANKS FOR ALL THE HELP TO THIS POINT!
>


You're welcome.


--
-JB
Microsoft MVP - Windows Shell/User
Windows Vista Support FAQ - http://www.jimmah.com/vista/
My System SpecsSystem Spec
Reply

Thread Tools


Similar Threads
Thread Forum
power shell for add OU, sub'ous, and users to domain from file PowerShell
Grant power users installation privileges? System Security
Enable Power Users group in Vista? Vista account administration
unleashing Vista to standard/power users - best practices and advice? Vista account administration
Win Explorer VBE for Power-Users Vista General


Vista Forums is an independent web site and has not been authorized,
sponsored, or otherwise approved by Microsoft Corporation.
"Windows Vista", the Start Orb, and related materials are trademarks of Microsoft Corp.
© Designer Media Ltd

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46