Looking for documentation on the "right" way to install apps on Windows 7 -


i'm working legacy applications (10-15 years old), , trying find guidance on "right" way install , run them (and user application) on windows 7 without requiring full admin privileges.

in other words, executable/read-only should files go, user-data/read-write should files go, registry entries should go, avoid issues uac , windows 7 file/registry virtualization during both installation , @ run-time.

i seem remember, years ago, microsoft white paper on subject, unable find relevent information now. have found information on user side (how legacy applications run on windows 7 via compatibility tweaks), none on developer side (how create/install applications play nicely on windows 7 natively).

any pointers such information appreciated. thanks.

marc

you're thinking of windows logo requirements.

  1. install correct folders default

users should have consistent , secure experience default installation location of files, while maintaining option install application location choose. necessary store application data in correct location allow several people use same computer without corrupting or overwriting each other's data , settings.

windows provides specific locations in file system store programs , software components, shared application data, , application data specific user:

  • applications should installed program files[16] folder default. user data or application data must never stored in location because of security permissions configured folder

[16] %programfiles% native 32-bit , 64-bit applications, , %programfiles(x86)% 32-bit applications running on x64 respectively

  • all application data must shared among users on computer should stored within programdata

  • all application data exclusive specific user , not shared other users of computer must stored in users\\appdata

  • never write directly "windows" directory , or subdirectories. use correct methods installing files, such fonts or drivers

  • in “per-machine” installations, user data must written @ first run , not during installation. because there no correct user location store data @ time of installation. attempts application modify default association behaviors @ machine level after installation unsuccessful. instead, defaults must claimed on per-user level, prevents multiple users overwriting each other's defaults.

next fact should not writing location requires administrative permissions.

note: can test of on windows 2000 or windows xp (as windows 2000 logo requirements required) running standard user.

since applications ignored logo requirements, , fail when run standard user privileges, windows vista included ability keep these buggy applications limping along virtualizing writes protected locations - rather having them fail.

you can opt out of compatibly hack manifesting application runas invoker:

<?xml version="1.0" encoding="utf-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestversion="1.0">      ...     <!-- disable file , registry virtualization -->     <trustinfo xmlns="urn:schemas-microsoft-com:asm.v2">         <security>             <requestedprivileges>                 <requestedexecutionlevel level="asinvoker" uiaccess="false"/>             </requestedprivileges>         </security>     </trustinfo>     ... </assembly> 

the logo guidelines talk uac , virtualization of writes locations:

  1. follow user account control (uac) guidelines

some windows applications run in security context of administrator account, , many require excessive user rights , windows privileges. controlling access resources enables users in control of systems against unwanted 20 changes. important rule controlling access resources provide least amount of access “standard user context” required user perform or necessary tasks. following uac guidelines provides applications necessary permissions when needed, without leaving system exposed security risks.

most applications not require administrator privileges @ run time, , should fine running standard-user. windows applications must have manifest 21 (embedded or external 22 ) defines execution levels , tells os privileges application requires in order run.

  • for example,

  • the main process of application must run standard user (asinvoker). administrative features must moved separate process runs administrative privileges.

  • a waiver required applications run main process 23 elevated privileges (requireadministrator or highestavailable)

waivers considered following scenarios:

  • administrative or system tools execution level set highestavailable, , or requireadministrator

or

  • only accessibility or ui automation framework application setting uiaccess 24 flag true bypass user interface privilege isolation (uipi)

then there high-dpi. windows logo requirements decade has required applications respond appropriately high (i.e. non-96dpi) displays. since applications break horribly if user use "large fonts", microsoft gave and, virtualization of file system, virtualize dpi setting. unless application opts out of compatibility hack: windows lie , tell you 96dpi.

only once you've written app should add entry application's manifest disable high-dpi scaling:

<?xml version="1.0" encoding="utf-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestversion="1.0">      ...     <!-- high-dpi aware on windows vista -->     <asmv3:application xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">         <asmv3:windowssettings xmlns="http://schemas.microsoft.com/smi/2005/windowssettings">             <dpiaware>true</dpiaware>         </asmv3:windowssettings>     </asmv3:application>     ... </assembly> 

anyway, it's there, windows 7 client software logo program.


note: if writing windows application 15 years ago (1995) assume writing for:

  • windows 3.1, or
  • windows 95

rather than:

  • windows nt 3.1
  • windows nt 3.5
  • windows nt 4
  • windows 2000
  • windows xp

it's important note windows nt designed secure operating system. not allowed arbitrarily want. fundamental difference from:

  • windows 1
  • windows 2
  • windows 3
  • windows 3.1
  • windows 95
  • windows 98
  • windows me

which had no security.

writes windows , program files folder requires administrator permission. because administrators should install applications. regular users cannot modify, or damage, installed programs - or installation of windows itself, e.g.:


Comments

Popular posts from this blog

php - What is the difference between $_SERVER['PATH_INFO'] and $_SERVER['ORIG_PATH_INFO']? -

fortran - Function return type mismatch -

queue - mq_receive: message too long -