Installatiecontext
Windows Installer kan een pakket op een computer installeren in twee installatiecontexten: per machine en per gebruiker. Een installatie per computer van het pakket is vereist om alle gebruikers van de computer toegang te geven tot de toepassing en deze te kunnen gebruiken. Omdat een installatie per machine wijzigingen aanbrengt in het systeem dat van invloed is op alle gebruikers, kunnen standaardgebruikers met beperkte bevoegdheden voorkomen dat ze een pakket installeren in de context per machine zonder eerst machtigingen te verkrijgen.
U kunt de installatiecontext opgeven door het pakket te ontwerpen voor installatie per gebruiker of per computer en de eigenschappen ALLUSERS en MSIINSTALLPERUSER eigenschappen te gebruiken. Op basis van deze eigenschappen worden de waarden van mapeigenschappen en registraties automatisch omgeleid naar locaties voor de context per gebruiker of per machine.
Notitie
De eigenschap MSIINSTALLPERUSER, beschikbaar vanaf Windows Installer 5.0 en Windows Server 2008 R2 en Windows 7, kan de ontwikkeling vergemakkelijken van één pakket dat kan worden geïnstalleerd in de context per machine of per gebruiker. Zie single package authoringvoor informatie over het ontwikkelen van een pakket met twee doeleinden waarmee de gebruiker de installatiecontext tijdens de installatie kan kiezen. Windows Installer negeert de eigenschap MSIINSTALLPERUSER als de waarde van ALLUSERS- niet 2 is. Windows Installer stelt altijd de waarde van ALLUSERS in op 1 wanneer deze wordt geïnstalleerd in de context per machine en de waarde van ALLUSERS opnieuw instelt op een lege tekenreeks ("") wanneer deze wordt geïnstalleerd in de context per gebruiker.
Snelkoppeling omleiden
In de volgende tabel worden de locaties van snelkoppelingen voor installatiecontexten per machine en per gebruiker vergeleken.
Per-Machine-installatiecontext (ALLUSERS=1) | Per-User installatiecontext (ALLUSERS="") |
---|---|
Toepassingen worden weergegeven onder Programma's toevoegen/verwijderen in het Configuratiescherm voor alle gebruikers van de computer. |
Toepassingen worden alleen weergegeven onder Programma's toevoegen/verwijderen in het Configuratiescherm voor gebruikers die de toepassingen hebben geïnstalleerd. |
Snelkoppelingen worden geïnstalleerd in het profiel Alle gebruikers. |
Snelkoppelingen worden alleen geïnstalleerd in het profiel van die gebruiker. |
Pictogrammen en transformaties worden opgeslagen in %WINDOWS%\Installer\{ProductCode}. |
Pictogrammen en transformaties worden opgeslagen in %USERPROFILE%\Application Data\Microsoft\Installer\{ProductCode GUID} |
Registeromleiding
In de volgende tabel worden de locaties van registervermeldingen voor de installatiecontexten per machine en per gebruiker vergeleken.
Per-Machine-installatiecontext (ALLUSERS=1) | Per-User installatiecontext (ALLUSERS="") |
---|---|
Windows Installer schrijft of verwijdert registerwaarden die zijn ingevoerd in de tabel Register en tabel RemoveRegistry, met de waarde -1 in de kolom Hoofd, onder HKEY_LOCAL_MACHINE. |
Windows Installer schrijft of verwijdert registerwaarden die zijn ingevoerd in de register--tabel en tabel RemoveRegistry, met de waarde -1 in de kolom Hoofd, onder HKEY_CURRENT_USER. |
Windows Installer schrijft of verwijdert registerwaarden die zijn ingevoerd in de Register tabel en RemoveRegistry tabel, met de waarde msidbRegistryRootClassesRoot (0) in de hoofdkolom, onder HKLM\Software\Klassen. |
Windows Installer schrijft of verwijdert registerwaarden die zijn ingevoerd in de Register tabel en RemoveRegistry tabel, met de waarde msidbRegistryRootClassesRoot (0) in de hoofdkolom, onder HKCU\Software\Klassen. |
COM-registratie wordt geschreven naar HKLM\Software\Klassen. |
COM-registratie wordt geschreven naar HKCU\Software\Klassen. |
Mapomleiding
Windows Installer stelt de waarden van de mapeigenschappen in op het volledige pad van de respectieve map voor de installatiecontext.
Notitie
Mappen worden geïdentificeerd door hun KNOWNFOLDERID en CSIDL constanten. Vanaf Windows Vista moeten toepassingen de functie SHGetKnownFolderPath en de KNOWNFOLDERID gebruiken om het volledige pad naar de speciale mappen te bepalen. Bestaande toepassingen die gebruikmaken van de functie SHGetFolderPath en constante speciale item-id's (CSIDL) blijven werken.
De volgende tabel vergelijkt de locaties van mappen die worden gebruikt wanneer Windows Installer het pakket installeert in de installatiecontexten per computer of per gebruiker.
Per-Machine-installatiecontext (ALLUSERS=1) | Per-User installatiecontext (ALLUSERS="") |
---|---|
DesktopFolderHet volledige pad van de map Bureaublad voor alle gebruikers. FOLDERID_PublicDesktop (CSIDL_COMMON_DESKTOPDIRECTORY) |
DesktopFolderHet volledige pad van de map Bureaublad voor de huidige gebruiker. FOLDERID_Desktop (CSIDL_DESKTOP, CSIDL_DESKTOPDIRECTORY) |
ProgramMenuFolderHet volledige pad van de map Programmamenu voor alle gebruikers. FOLDERID_CommonPrograms (CSIDL_COMMON_PROGRAMS) |
ProgramMenuFolderHet volledige pad van de map Programmamenu voor de huidige gebruiker. FOLDERID_Programs (CSIDL_PROGRAMS) |
StartMenuFolderHet volledige pad van de map Startmenu voor alle gebruikers. FOLDERID_CommonStartMenu (CSIDL_COMMON_STARTMENU) |
StartMenuFolderHet volledige pad van de map Startmenu voor de huidige gebruiker. FOLDERID_StartMenu (CSIDL_STARTMENU) |
StartUpFolderhet volledige pad van de map Opstarten voor alle gebruikers. FOLDERID_CommonStartup (CSIDL_COMMON_STARTUP) |
StartUpFolderhet volledige pad van de map Opstarten voor de huidige gebruiker. FOLDERID_Startup (CSIDL_STARTUP) |
TemplateFolderHet volledige pad van de map Sjablonen voor alle gebruikers. FOLDERID_CommonTemplates (CSIDL_COMMON_TEMPLATES) |
TemplateFolderHet volledige pad van de map Sjablonen voor de huidige gebruiker. FOLDERID_Templates (CSIDL_TEMPLATES) |
AdminToolsFolderHet volledige pad van de map Beheerhulpprogramma's voor alle gebruikers. FOLDERID_CommonAdminTools (CSIDL_COMMON_ADMINTOOLS) |
AdminToolsFolderhet volledige pad van de map Hulpprogramma's voor de huidige gebruiker. FOLDERID_AdminTools (CSIDL_ADMINTOOLS) |
AppDataFolderhet volledige pad van de map Programmamenu. Windows Vista en hoger: het volledige pad van de map Roaming. FOLDERID_RoamingAppData (CSIDL_APPDATA) |
AppDataFolderhet volledige pad van de map Programmamenu. Windows Vista en hoger: het volledige pad van de map Roaming. FOLDERID_RoamingAppData (CSIDL_APPDATA) |
CommonAppDataFolderHet volledige pad van de map met toepassingsgegevens voor alle gebruikers. FOLDERID_ProgramData (CSIDL_COMMON_APPDATA) |
CommonAppDataFolderHet volledige pad van de map met toepassingsgegevens voor alle gebruikers. FOLDERID_ProgramData (CSIDL_COMMON_APPDATA) |
FavoritesFolderHet volledige pad van de map Favorieten voor de huidige gebruiker. FOLDERID_Favorites (CSIDL_FAVORITES) |
FavoritesFolderHet volledige pad van de map Favorieten voor de huidige gebruiker. FOLDERID_Favorites (CSIDL_FAVORITES) |
PersonalFolderHet volledige pad van de map Mijn documenten of de map Persoonlijk voor de huidige gebruiker. Windows Vista en hoger: het volledige pad van de map Documenten voor de huidige gebruiker. FOLDERID_Documents (CSIDL_PERSONAL) |
PersonalFolderHet volledige pad van de map Mijn documenten of de map Persoonlijk voor de huidige gebruiker. Windows Vista en hoger: het volledige pad van de map Documenten voor de huidige gebruiker. FOLDERID_Documents (CSIDL_PERSONAL) |
SendToFolderHet volledige pad van de map SendTo. FOLDERID_SendTo (CSIDL_SENDTO) |
SendToFolderHet volledige pad van de map SendTo. FOLDERID_SendTo (CSIDL_SENDTO) |
FontsFolderHet volledige pad van de map Systeemlettertypen. FOLDERID_Fonts (CSIDL_FONTS) |
FontsFolderHet volledige pad van de map Systeemlettertypen. FOLDERID_Fonts (CSIDL_FONTS) |
ProgramFilesFolder32-bits versie van Windows: De eigenschapswaarde is het volledige pad naar de map Program Files voor alle gebruikers (bijvoorbeeld %ProgramFiles%.) De id voor deze map is FOLDERID_ProgramFiles (CSIDL_PROGRAM_FILES.) De id's FOLDERID_ProgramFiles en FOLDERID_ProgramFilesX86 dezelfde map vertegenwoordigen. Bestanden in deze map zijn toegankelijk voor alle gebruikers. 64-bits versie van Windows: De waarde van de eigenschap is het volledige pad naar de map Program Files (x86) voor alle gebruikers (bijvoorbeeld %ProgramFiles(x86)%.) De id voor deze map is FOLDERID_ProgramFilesX86 (CSIDL_PROGRAM_FILESX86.) Bestanden in deze map zijn toegankelijk voor alle gebruikers. |
ProgramFilesFolderWindows Server 2008 R2 en Windows 7: De eigenschapswaarde is het volledige pad van de map Programma's voor de huidige gebruiker (bijvoorbeeld %LocalAppData%\Programs.) De id voor deze map is FOLDERID_UserProgramFiles op 32-bits en 64-bits systemen. Er is geen equivalente CSIDL-id voor FOLDERID_UserProgramFiles. Bestanden in deze map kunnen alleen worden geopend door de gebruiker die deze map heeft geïnstalleerd. Windows Server 2008 en eerder, en Windows Vista en eerder: Er is geen map beschikbaar die geschikt is voor gebruikers. Het pad is hetzelfde als voor de context per machine (bijvoorbeeld %ProgramFiles% of %ProgramFiles(x86)%.) Bestanden in deze map zijn toegankelijk voor alle gebruikers. |
CommonFilesFolder32-bits versie van Windows: De eigenschapswaarde is het volledige pad naar de map Common Files voor alle gebruikers (bijvoorbeeld %ProgramFiles%\Common Files.) De id voor deze map is FOLDERID_ProgramFilesCommon (CSIDL_PROGRAM_FILES_COMMON.) De id's FOLDERID_ProgramFilesCommon en FOLDERID_ProgramFilesCommonX86 dezelfde map vertegenwoordigen. Bestanden in deze map zijn toegankelijk voor alle gebruikers. 64-bits versie van Windows: De eigenschapswaarde is het volledige pad naar de map Common Files voor alle gebruikers (bijvoorbeeld %ProgramFiles(x86)%\Common Files.) De id voor deze map is FOLDERID_ProgramFilesCommonX86 (CSIDL_PROGRAM_FILES_COMMONX86.) Bestanden in deze map zijn toegankelijk voor alle gebruikers. |
CommonFilesFolderWindows Server 2008 R2 en Windows 7: De eigenschapswaarde is het volledige pad van de algemene map voor de huidige gebruiker (bijvoorbeeld %LocalAppData%\Programs\Common.) De id voor deze map is FOLDERID_UserProgramFilesCommon op 32-bits en 64-bits systemen. Er is geen equivalente CSIDL-id voor FOLDERID_UserProgramFilesCommon. Bestanden in deze map kunnen alleen worden geopend door de gebruiker die deze map heeft geïnstalleerd. Windows Server 2008 en eerder, en Windows Vista en eerder: Er is geen map beschikbaar die geschikt is voor gebruikers. Het pad is hetzelfde als in de context per computer (bijvoorbeeld %ProgramFiles%\Common Files of %ProgramFiles(x86)%\Common Files.) Bestanden in deze map zijn toegankelijk voor alle gebruikers. |
ProgramFiles64FolderDe eigenschapswaarde is het volledige pad naar de map Program Files voor alle gebruikers (bijvoorbeeld %ProgramFiles%.) De id voor deze map is FOLDERID_ProgramFilesX64. Er is geen equivalente CSIDL-id voor FOLDERID_ProgramFilesX64. Dit is de vooraf gedefinieerde map voor 64-bits onderdelen en is van toepassing op 64-bits systemen. Bestanden in deze map zijn toegankelijk voor alle gebruikers. |
ProgramFiles64FolderWindows Server 2008 R2 en Windows 7: De waarde van de eigenschap is het volledige pad van de map Programma's voor de huidige gebruiker (bijvoorbeeld %LocalAppData%\Programs.) De id voor deze map is FOLDERID_UserProgramFiles. Er is geen equivalente CSIDL-id voor FOLDERID_UserProgramFiles. Bestanden in deze map kunnen alleen worden geopend door de gebruiker die deze map heeft geïnstalleerd. Windows Server 2008 en eerder, en Windows Vista en eerder: Er is geen map beschikbaar die geschikt is voor gebruikers. Het pad is hetzelfde als voor de context per machine (bijvoorbeeld %ProgramFiles%.) Bestanden in deze map zijn toegankelijk voor alle gebruikers. |
CommonFiles64FolderDe eigenschapswaarde is het volledige pad naar de map Common Files voor alle gebruikers (bijvoorbeeld %ProgramFiles%\Common Files.) Dit is de vooraf gedefinieerde map voor 64-bits onderdelen en is van toepassing op 64-bits systemen. De id voor deze map is FOLDERID_ProgramFilesCommonX64. Er is geen equivalente CSIDL-id voor FOLDERID_ProgramFilesCommonX64. Bestanden in deze map zijn toegankelijk voor alle gebruikers. |
CommonFiles64FolderWindows Server 2008 R2 en Windows 7: De eigenschapswaarde is het volledige pad van de algemene map voor de huidige gebruiker (bijvoorbeeld %LocalAppData%\Programs\Common.) De id voor deze map is FOLDERID_UserProgramFilesCommon. Er is geen equivalente CSIDL-id voor FOLDERID_UserProgramFilesCommon. Bestanden in deze map kunnen alleen worden geopend door de gebruiker die deze map heeft geïnstalleerd. Windows Server 2008 en eerder, en Windows Vista en eerder: Er is geen map beschikbaar die geschikt is voor gebruikers. Het pad is hetzelfde als voor de context per computer (bijvoorbeeld %ProgramFiles%\Common Files.) Bestanden in deze map zijn toegankelijk voor alle gebruikers. |
WindowsFolderHet volledige pad van de Windows-map. FOLDERID_Windows (CSIDL_WINDOWS) |
WindowsFolderHet volledige pad van de Windows-map. FOLDERID_Windows (CSIDL_WINDOWS) |
SystemFolderHet volledige pad van de systeemmap. FOLDERID_SystemX86 (CSIDL_SYSTEMX86) |
SystemFolderHet volledige pad van de systeemmap. FOLDERID_SystemX86 (CSIDL_SYSTEMX86) |
LocalAppDataFolderHet volledige pad van de map die lokale (niet-roaming) toepassingen bevat. FOLDERID_LocalAppData (CSIDL_LOCAL_APPDATA) |
LocalAppDataFolderHet volledige pad van de map die lokale (niet-roaming) toepassingen bevat. FOLDERID_LocalAppData (CSIDL_LOCAL_APPDATA) |
MyPicturesFolderHet volledige pad van de map Afbeeldingen of Mijn afbeeldingen. FOLDERID_Pictures (CSIDL_MYPICTURES) |
MyPicturesFolderHet volledige pad van de map Afbeeldingen of Mijn afbeeldingen. FOLDERID_Pictures (CSIDL_MYPICTURES) |
PrintHoodFolderHet volledige pad van de map PrintHood. FOLDERID_PrintHood (CSIDL_PRINTHOOD) |
PrintHoodFolderHet volledige pad van de map PrintHood. FOLDERID_PrintHood (CSIDL_PRINTHOOD) |
NetHoodFolderHet volledige pad van de Map NetHood. FOLDERID_NetHood (CSIDL_NETHOOD) |
NetHoodFolderHet volledige pad van de Map NetHood. FOLDERID_NetHood (CSIDL_NETHOOD) |
RecentFolderhet volledige pad van de map Recent. FOLDERID_Recent (CSIDL_RECENT) |
RecentFolderhet volledige pad van de map Recent. FOLDERID_Recent (CSIDL_RECENT) |
Notitie
Een toepassing kan de functies MsiEnumProducts of MsiEnumProductsEx aanroepen om alle producten op te sommen die op het systeem zijn geïnstalleerd. De toepassing kan vervolgens informatie over de installatiecontext van deze producten ophalen door de functies MsiGetProductInfoEx of MsiGetProductInfo aan te roepen. Zie De installatiecontextbepalen voor meer informatie.