Thursday, October 19, 2006

Designing Application Installations for User Account Control with Windows Installer 4.0 in Windows Vista

Previously, DevInstall had posted an Event relating to Webcast from MSDN: Designing Application Installations for User Account Control with Windows Installer 4.0 in Windows Vista. If you missed the live Webcast which was on October 18, MSDN has now made that available on-demand.

What does the Webcast talk about? Some highlights?

  1. User Account Control (UAC) in Vista and Windows Installer 4.0 Integration
  2. Signing Your Package - some new dialogs
  3. Credential Prompt-Free Patching
  4. Adding the "Shield" to your User Interface
  5. When does elevation happen?
  6. Precautions when using AdminUser
  7. A word about Custom Actions (CAs)
  8. ALLUSERS Property Under UAC
  9. Creating a True "Per-User" Package
  10. Using a Setup.exe Bootstrapper
  11. Testing your Package

In addition, the on-going Q/A session during the presentation was highly informational. Some highlights from the session:


Question: We don't want to make the customer go through the UI and then abort in the Execute sequence if Privileged is False. What can we check in the UI sequence to abort?

Answer: The UAC credential prompt is a one way door. There is no way to tell in advance whether the user will approve the credential prompt. Once the credential prompt is approved you are running as administrator. This is a constraint of UAC.


Question: On Vista, is there a way to run an elevated install silentley? i.e: When using /qb Vista do shows the elevation dailog request - but also shows the progress bar. When using /qn - nothing happens ... Is'nt a way of metigation between the two switches ??

Answer: The UAC functionality does not allow elevate silently. The recommendation from the UAC team is to 1) run from a managability tool such as SMS, Altiris, Tivoli, etc 2) run from an elevated command line 3) (for automated testing in development only) write a service that elevates a command line when passed.


Question: There's some confusion about whether the "no impersonate" bit can be used in the UI sequence. Docs imply it only applies to deferred custom actions.

Answer: NoImpersonate can not be used in the UI Sequence or in the InstallExecuteSequence outside of the script. To have a custom action run inside the script, one needs to mark their custom action deferred.


Question: So where does ALLUSERS=2 bounce to?
Answer: ALLUSERS==1.


And many more?This is a strong recommendation to Application Developers, Installation Developers and also for Application Packagers.

Presenter: Tyler Robinson, Lead Program Manager, Microsoft Corporation
Session Q/A: Robert Flaming, Program Manager, Microsoft Corporation

Watch this on-demand Webcast ||| Read the Full Session Chat Transcript

Windows Installer Team has also scheduled next similar webcast for October 30, 2006 Designing Software Installations for Windows Vista Using Windows Installer 4.0.

Additional Resources:
If you are more interested to learn about UAC in Vista and Windows Installer 4.0, Robert Flaming published a series of articles earlier: Understanding UAC in Vista and Windows Installer. Uday Shivaswamy's earlier webcast about Modifying Your Applications to Run on Windows Vista is an additional support to understand in the sequence. There is also an upcoming event about 10 More Commandments for Software Packaging: Focus on Vista Migration, you may find it more helpful in the context.

No comments:

Post a Comment