Installationskontext
Windows Installer kan installera ett paket på en dator i två installationskontexter: per dator och per användare. En installation per dator av paketet krävs för att alla användare av datorn ska kunna komma åt och använda programmet. Eftersom en installation per dator gör ändringar i systemet som påverkar alla användare kan standardanvändare med begränsad behörighet hindras från att installera ett paket i kontexten per dator utan att först få behörighet.
Du kan ange installationskontext genom att redigera paketet för installation per användare eller per dator och med hjälp av ALLUSERS och MSIINSTALLPERUSER egenskaper. Baserat på dessa egenskaper omdirigerar Windows Installer automatiskt värdena för mappegenskaper och registreringar till platser för kontexten per användare eller per dator.
Not
Egenskapen MSIINSTALLPERUSER, som är tillgänglig från och med Windows Installer 5.0 och Windows Server 2008 R2 och Windows 7, kan underlätta utvecklingen av ett enda paket som kan installeras i kontexten per dator eller per användare. Information om hur du utvecklar ett paket med dubbla syften som ger användaren möjlighet att välja installationskontext vid installationen finns i Redigering av enkla paket. Windows Installer ignorerar egenskapen MSIINSTALLPERUSER om värdet för ALLUSERS inte är 2. Windows Installer återställer alltid värdet för ALLUSERS till 1 när det installeras i kontexten per dator och återställer värdet för ALLUSERS till en tom sträng ("") när den installeras i kontexten per användare.
Omdirigering av genväg
I följande tabell jämförs platserna för genvägar för installationskontexter per dator och per användare.
Per-Machine installationskontext (ALLUSERS=1) | Per-User installationskontext (ALLUSERS="") |
---|---|
Program visas under Lägg till/ta bort program på Kontrollpanelen för alla användare av datorn. |
Program visas endast under Lägg till/ta bort program på Kontrollpanelen för användare som har installerat programmen. |
Genvägar installeras i profilen Alla användare. |
Genvägar installeras endast i användarens profil. |
Ikoner och transformeringar lagras i %WINDOWS%\Installer\{ProductCode}. |
Ikoner och transformeringar lagras i %USERPROFILE%\Application Data\Microsoft\Installer\{ProductCode GUID} |
Omdirigering av register
I följande tabell jämförs platserna för registerposter för installationskontexterna per dator och per användare.
Per-Machine installationskontext (ALLUSERS=1) | Per-User installationskontext (ALLUSERS="") |
---|---|
Windows Installer skriver eller tar bort registervärden som anges i tabellen Registry och RemoveRegistry tabell med värdet -1 i rotkolumnen under HKEY_LOCAL_MACHINE. |
Windows Installer skriver eller tar bort registervärden som anges i tabellen Registry och RemoveRegistry tabell med värdet -1 i rotkolumnen under HKEY_CURRENT_USER. |
Windows Installer skriver eller tar bort registervärden som anges i tabellen Registry och RemoveRegistry-tabellen med värdet msidbRegistryRootClassesRoot (0) i rotkolumnen under HKLM\Software\Classes. |
Windows Installer skriver eller tar bort registervärden som anges i tabellen Registry och RemoveRegistry tabell med värdet msidbRegistryRootClassesRoot (0) i kolumnen Root under HKCU\Software\Classes. |
COM-registrering skrivs till HKLM\Software\Classes. |
COM-registrering skrivs till HKCU\Software\Classes. |
Mappomdirigering
Windows Installer anger värdena för mappegenskaperna till den fullständiga sökvägen för respektive mapp för installationskontexten.
Not
Mappar identifieras av deras KNOWNFOLDERID- och CSIDL- konstanter. Från och med Windows Vista bör program använda funktionen SHGetKnownFolderPath och KNOWNFOLDERID- för att fastställa den fullständiga sökvägen till specialmapparna. Befintliga program som använder funktionen SHGetFolderPath och konstanta specialobjekt-ID:er (CSIDL) fortsätter att fungera.
I följande tabell jämförs platserna för mappar som används när Windows Installer installerar paketet i installationskontexterna per dator eller per användare.
Per-Machine installationskontext (ALLUSERS=1) | Per-User installationskontext (ALLUSERS="") |
---|---|
DesktopFolderDen fullständiga sökvägen till skrivbordsmappen för alla användare. FOLDERID_PublicDesktop (CSIDL_COMMON_DESKTOPDIRECTORY) |
DesktopFolderDen fullständiga sökvägen till skrivbordsmappen för den aktuella användaren. FOLDERID_Desktop (CSIDL_DESKTOP, CSIDL_DESKTOPDIRECTORY) |
ProgramMenuFolderDen fullständiga sökvägen till mappen Programmeny för alla användare. FOLDERID_CommonPrograms (CSIDL_COMMON_PROGRAMS) |
ProgramMenuFolderDen fullständiga sökvägen till mappen Programmeny för den aktuella användaren. FOLDERID_Programs (CSIDL_PROGRAMS) |
StartMenuFolderDen fullständiga sökvägen till mappen Start-menyn för alla användare. FOLDERID_CommonStartMenu (CSIDL_COMMON_STARTMENU) |
StartMenuFolderDen fullständiga sökvägen till mappen Start-menyn för den aktuella användaren. FOLDERID_StartMenu (CSIDL_STARTMENU) |
StartUpFolderDen fullständiga sökvägen till startmappen för alla användare. FOLDERID_CommonStartup (CSIDL_COMMON_STARTUP) |
StartUpFolderDen fullständiga sökvägen för den aktuella användarens startmapp. FOLDERID_Startup (CSIDL_STARTUP) |
TemplateFolderDen fullständiga sökvägen till mappen Mallar för alla användare. FOLDERID_CommonTemplates (CSIDL_COMMON_TEMPLATES) |
TemplateFolderDen fullständiga sökvägen till mappen Mallar för den aktuella användaren. FOLDERID_Templates (CSIDL_TEMPLATES) |
AdminToolsFolderDen fullständiga sökvägen till mappen Admin Tools för alla användare. FOLDERID_CommonAdminTools (CSIDL_COMMON_ADMINTOOLS) |
AdminToolsFolderDen fullständiga sökvägen till mappen Admin Tools för den aktuella användaren. FOLDERID_AdminTools (CSIDL_ADMINTOOLS) |
AppDataFolderDen fullständiga sökvägen till mappen Programmeny. Windows Vista och senare: Den fullständiga sökvägen till mappen Roaming. FOLDERID_RoamingAppData (CSIDL_APPDATA) |
AppDataFolderDen fullständiga sökvägen till mappen Programmeny. Windows Vista och senare: Den fullständiga sökvägen till mappen Roaming. FOLDERID_RoamingAppData (CSIDL_APPDATA) |
CommonAppDataFolderDen fullständiga sökvägen till mappen som innehåller programdata för alla användare. FOLDERID_ProgramData (CSIDL_COMMON_APPDATA) |
CommonAppDataFolderDen fullständiga sökvägen till mappen som innehåller programdata för alla användare. FOLDERID_ProgramData (CSIDL_COMMON_APPDATA) |
FavoritesFolderDen fullständiga sökvägen till mappen Favoriter för den aktuella användaren. FOLDERID_Favorites (CSIDL_FAVORITES) |
FavoritesFolderDen fullständiga sökvägen till mappen Favoriter för den aktuella användaren. FOLDERID_Favorites (CSIDL_FAVORITES) |
PersonalFolderDen fullständiga sökvägen till mappen Mina dokument eller den personliga mappen för den aktuella användaren. Windows Vista och senare: Den fullständiga sökvägen till mappen Dokument för den aktuella användaren. FOLDERID_Documents (CSIDL_PERSONAL) |
PersonalFolderDen fullständiga sökvägen till mappen Mina dokument eller den personliga mappen för den aktuella användaren. Windows Vista och senare: Den fullständiga sökvägen till mappen Dokument för den aktuella användaren. FOLDERID_Documents (CSIDL_PERSONAL) |
SendToFolderDen fullständiga sökvägen till mappen SendTo. FOLDERID_SendTo (CSIDL_SENDTO) |
SendToFolderDen fullständiga sökvägen till mappen SendTo. FOLDERID_SendTo (CSIDL_SENDTO) |
FontsFolderDen fullständiga sökvägen till mappen SystemTeckensnitt. FOLDERID_Fonts (CSIDL_FONTS) |
FontsFolderDen fullständiga sökvägen till mappen SystemTeckensnitt. FOLDERID_Fonts (CSIDL_FONTS) |
ProgramFilesFolder32-bitarsversion av Windows: Egenskapsvärdet är den fullständiga sökvägen till mappen Programfiler för alla användare (till exempel %ProgramFiles%.) Identifieraren för den här mappen är FOLDERID_ProgramFiles (CSIDL_PROGRAM_FILES.) Identifierarna FOLDERID_ProgramFiles och FOLDERID_ProgramFilesX86 representerar samma mapp. Filer i den här mappen kan nås av alla användare. 64-bitarsversion av Windows: Egenskapsvärdet är den fullständiga sökvägen till mappen Programfiler (x86) för alla användare (till exempel %ProgramFiles(x86)%.) Identifieraren för den här mappen är FOLDERID_ProgramFilesX86 (CSIDL_PROGRAM_FILESX86.) Filer i den här mappen kan nås av alla användare. |
ProgramFilesFolderWindows Server 2008 R2 och Windows 7: Egenskapsvärdet är den fullständiga sökvägen till mappen Program för den aktuella användaren (till exempel %LocalAppData%\Programs.) Identifieraren för den här mappen är FOLDERID_UserProgramFiles på 32- och 64-bitarssystem. Det finns ingen motsvarande CSIDL-identifierare för FOLDERID_UserProgramFiles. Filer i den här mappen kan endast nås av användaren som installerade den här mappen. Windows Server 2008 och tidigare, och Windows Vista och tidigare: Ingen mapp per användare är tillgänglig. Sökvägen är densamma som för kontexten per dator (till exempel %ProgramFiles% eller %ProgramFiles(x86)%.) Filer i den här mappen kan nås av alla användare. |
CommonFilesFolder32-bitarsversion av Windows: Egenskapsvärdet är den fullständiga sökvägen till mappen Common Files för alla användare (till exempel %ProgramFiles%\Common Files.) Identifieraren för den här mappen är FOLDERID_ProgramFilesCommon (CSIDL_PROGRAM_FILES_COMMON.) Identifierarna FOLDERID_ProgramFilesCommon och FOLDERID_ProgramFilesCommonX86 representerar samma mapp. Filer i den här mappen kan nås av alla användare. 64-bitarsversion av Windows: Egenskapsvärdet är den fullständiga sökvägen till mappen Common Files för alla användare (till exempel %ProgramFiles(x86)%\Common Files.) Identifieraren för den här mappen är FOLDERID_ProgramFilesCommonX86 (CSIDL_PROGRAM_FILES_COMMONX86.) Filer i den här mappen kan nås av alla användare. |
CommonFilesFolderWindows Server 2008 R2 och Windows 7: Egenskapsvärdet är den fullständiga sökvägen till mappen Common för den aktuella användaren (till exempel %LocalAppData%\Programs\Common.) Identifieraren för den här mappen är FOLDERID_UserProgramFilesCommon på 32-bitars- och 64-bitarssystem. Det finns ingen motsvarande CSIDL-identifierare för FOLDERID_UserProgramFilesCommon. Filer i den här mappen kan endast nås av användaren som installerade den här mappen. Windows Server 2008 och tidigare, och Windows Vista och tidigare: Ingen mapp per användare är tillgänglig. Sökvägen är densamma som i kontexten per dator (till exempel %ProgramFiles%\Common Files eller %ProgramFiles(x86)%\Common Files.) Filer i den här mappen kan nås av alla användare. |
ProgramFiles64FolderEgenskapsvärdet är den fullständiga sökvägen till mappen Programfiler för alla användare (till exempel %ProgramFiles%.) Identifieraren för den här mappen är FOLDERID_ProgramFilesX64. Det finns ingen motsvarande CSIDL-identifierare för FOLDERID_ProgramFilesX64. Det här är den fördefinierade mappen för 64-bitarskomponenter och gäller för 64-bitarssystem. Filer i den här mappen kan nås av alla användare. |
ProgramFiles64FolderWindows Server 2008 R2 och Windows 7: Egenskapsvärdet är den fullständiga sökvägen till mappen Program för den aktuella användaren (till exempel %LocalAppData%\Programs.) Identifieraren för den här mappen är FOLDERID_UserProgramFiles. Det finns ingen motsvarande CSIDL-identifierare för FOLDERID_UserProgramFiles. Filer i den här mappen kan endast nås av användaren som installerade den här mappen. Windows Server 2008 och tidigare, och Windows Vista och tidigare: Ingen mapp per användare är tillgänglig. Sökvägen är samma som för kontexten per dator (till exempel %ProgramFiles%.) Filer i den här mappen kan nås av alla användare. |
CommonFiles64FolderEgenskapsvärdet är den fullständiga sökvägen till mappen Common Files för alla användare (till exempel %ProgramFiles%\Common Files.) Det här är den fördefinierade mappen för 64-bitarskomponenter och gäller för 64-bitarssystem. Identifieraren för den här mappen är FOLDERID_ProgramFilesCommonX64. Det finns ingen motsvarande CSIDL-identifierare för FOLDERID_ProgramFilesCommonX64. Filer i den här mappen kan nås av alla användare. |
CommonFiles64FolderWindows Server 2008 R2 och Windows 7: Egenskapsvärdet är den fullständiga sökvägen till mappen Common för den aktuella användaren (till exempel %LocalAppData%\Programs\Common.) Identifieraren för den här mappen är FOLDERID_UserProgramFilesCommon. Det finns ingen motsvarande CSIDL-identifierare för FOLDERID_UserProgramFilesCommon. Filer i den här mappen kan endast nås av användaren som installerade den här mappen. Windows Server 2008 och tidigare, och Windows Vista och tidigare: Ingen mapp per användare är tillgänglig. Sökvägen är samma som för kontexten per dator (till exempel %ProgramFiles%\Common Files.) Filer i den här mappen kan nås av alla användare. |
WindowsFolderDen fullständiga sökvägen till Windows-mappen. FOLDERID_Windows (CSIDL_WINDOWS) |
WindowsFolderDen fullständiga sökvägen till Windows-mappen. FOLDERID_Windows (CSIDL_WINDOWS) |
SystemFolderDen fullständiga sökvägen till systemmappen. FOLDERID_SystemX86 (CSIDL_SYSTEMX86) |
SystemFolderDen fullständiga sökvägen till systemmappen. FOLDERID_SystemX86 (CSIDL_SYSTEMX86) |
LocalAppDataFolderDen fullständiga sökvägen till mappen som innehåller lokala program (ejroaming). FOLDERID_LocalAppData (CSIDL_LOCAL_APPDATA) |
LocalAppDataFolderDen fullständiga sökvägen till mappen som innehåller lokala program (ejroaming). FOLDERID_LocalAppData (CSIDL_LOCAL_APPDATA) |
MyPicturesFolderDen fullständiga sökvägen till mappen Bilder eller Mina bilder. FOLDERID_Pictures (CSIDL_MYPICTURES) |
MyPicturesFolderDen fullständiga sökvägen till mappen Bilder eller Mina bilder. FOLDERID_Pictures (CSIDL_MYPICTURES) |
PrintHoodFolderDen fullständiga sökvägen till mappen PrintHood. FOLDERID_PrintHood (CSIDL_PRINTHOOD) |
PrintHoodFolderDen fullständiga sökvägen till mappen PrintHood. FOLDERID_PrintHood (CSIDL_PRINTHOOD) |
NetHoodFolderDen fullständiga sökvägen till NetHood-mappen. FOLDERID_NetHood (CSIDL_NETHOOD) |
NetHoodFolderDen fullständiga sökvägen till NetHood-mappen. FOLDERID_NetHood (CSIDL_NETHOOD) |
RecentFolderDen fullständiga sökvägen till mappen Senaste. FOLDERID_Recent (CSIDL_RECENT) |
RecentFolderDen fullständiga sökvägen till mappen Senaste. FOLDERID_Recent (CSIDL_RECENT) |
Not
Ett program kan anropa funktionerna MsiEnumProducts eller MsiEnumProductsEx för att räkna upp alla produkter som är installerade i systemet. Programmet kan sedan hämta information om installationskontexten för dessa produkter genom att anropa funktionerna MsiGetProductInfoEx eller MsiGetProductInfo. Mer information finns i Determining Installation Context.