Installationskontext
Der Windows Installer kann ein Paket auf einem Computer in zwei Installationskontexten installieren: computerspezifisch und benutzerspezifisch. Eine computerspezifische Installation des Pakets ist erforderlich, damit alle Benutzer*innen des Computers auf die Anwendung zugreifen und diese verwenden können. Da eine computerspezifische Installation Änderungen am System vornimmt, die sich auf alle Benutzer*innen auswirken, müssen Standardbenutzer*innen mit eingeschränkten Berechtigungen möglicherweise erst eine Berechtigung anfordern, um ein Paket im computerspezifischen Kontext zu installieren.
Sie können den Installationskontext angeben, indem Sie das Paket für die benutzer- oder computerspezifische Installation erstellen und die Eigenschaften ALLUSERS und MSIINSTALLPERUSER verwenden. Basierend auf diesen Eigenschaften leitet der Windows Installer die Werte der Ordnereigenschaften und Registrierungen automatisch an Speicherorte für den benutzer- oder computerspezifischen Kontext um.
Hinweis
Die MSIINSTALLPERUSER-Eigenschaft, die ab Windows Installer 5.0 und Windows Server 2008 R2 und Windows 7 verfügbar ist, kann die Entwicklung eines einzelnen Pakets erleichtern, das entweder im computer- oder im benutzerspezifischen Kontext installiert werden kann. Informationen zum Entwickeln eines Pakets mit Doppelfunktion, das Benutzer*innen die Möglichkeit gibt, den Installationskontext zur Installationszeit auszuwählen, finden Sie unter Erstellen einzelner Pakete. Der Windows Installer ignoriert die MSIINSTALLPERUSER-Eigenschaft, wenn der Wert von ALLUSERS nicht 2 ist. Bei einer Installation im computerspezifischen Kontext setzt der Windows Installer den Wert von ALLUSERS immer auf 1 zurück. Bei einer Installation im benutzerspezifischen Kontext wird der Wert von ALLUSERS auf eine leere Zeichenfolge ("") zurückgesetzt.
In der folgenden Tabelle werden die Speicherorte von Verknüpfungen für den computer- und den benutzerspezifischen Installationskontext verglichen.
Computerspezifischer Installationskontext (ALLUSERS=1) | Benutzerspezifischer Installationskontext (ALLUSERS="") |
---|---|
Anwendungen werden für alle Benutzer*innen des Computers in der Systemsteuerung unter „Programme hinzufügen/entfernen“ angezeigt. |
Anwendungen werden nur für Benutzer*innen, die die Anwendungen installiert haben, in der Systemsteuerung unter „Programme hinzufügen/entfernen“ angezeigt. |
Verknüpfungen werden im Profil „Alle Benutzer“ installiert. |
Verknüpfungen werden nur im Profil der betreffenden Benutzer*innen installiert. |
Symbole und Transformationen werden unter %WINDOWS%\Installer\{ProductCode} gespeichert. |
Symbole und Transformationen werden unter „%USERPROFILE%\Application Data\Microsoft\Installer\{ProductCode GUID}“ gespeichert. |
In der folgenden Tabelle werden die Speicherorte von Registrierungseinträgen für den computer- und den benutzerspezifischen Installationskontext verglichen.
Computerspezifischer Installationskontext (ALLUSERS=1) | Benutzerspezifischer Installationskontext (ALLUSERS="") |
---|---|
Der Windows Installer schreibt oder entfernt Registrierungswerte, die in die Registry-Tabelle bzw. in die RemoveRegistry-Tabelle eingegeben werden, mit dem Wert -1 in die Stammspalte unter HKEY_LOCAL_MACHINE. |
Der Windows Installer schreibt oder entfernt Registrierungswerte, die in die Registry-Tabelle bzw. in die RemoveRegistry-Tabelle eingegeben werden, mit dem Wert -1 in die Stammspalte unter HKEY_CURRENT_USER. |
Der Windows Installer schreibt oder entfernt Registrierungswerte, die in die Registry-Tabelle bzw. in die RemoveRegistry-Tabelle eingegeben werden, mit dem Wert msidbRegistryRootClassesRoot (0) in die Stammspalte unter HKLM\Software\Classes. |
Der Windows Installer schreibt oder entfernt Registrierungswerte, die in die Registry-Tabelle bzw. in die RemoveRegistry-Tabelle eingegeben werden, mit dem Wert msidbRegistryRootClassesRoot (0) in die Stammspalte unter HKCU\Software\Classes. |
Die COM-Registrierung wird in HKLM\Software\Classes geschrieben. |
Die COM-Registrierung wird in HKCU\Software\Classes geschrieben. |
Der Windows Installer legt die Werte der Ordnereigenschaften auf den vollständigen Pfad des jeweiligen Ordners für den Installationskontext fest.
Hinweis
Ordner werden durch ihre Konstanten KNOWNFOLDERID und CSIDL identifiziert. Ab Windows Vista sollten Anwendungen die SHGetKnownFolderPath-Funktion und die KNOWNFOLDERID verwenden, um den vollständigen Pfad zu den speziellen Ordnern zu bestimmen. Vorhandene Anwendungen, die die SHGetFolderPath-Funktion und spezielle Konstantenelement-IDs (CSIDL) verwenden, funktionieren weiterhin.
In der folgenden Tabelle werden die Speicherorte von Ordnern verglichen, die jeweils verwendet werden, wenn der Windows Installer das Paket im computerspezifischen oder im benutzerspezifischen Installationskontext installiert.
Computerspezifischer Installationskontext (ALLUSERS=1) | Benutzerspezifischer Installationskontext (ALLUSERS="") |
---|---|
DesktopFolder Der vollständige Pfad des Desktopordners für alle Benutzer*innen. FOLDERID_PublicDesktop (CSIDL_COMMON_DESKTOPDIRECTORY) |
DesktopFolder Der vollständige Pfad des Desktopordners für den aktuellen Benutzer/die aktuelle Benutzerin. FOLDERID_Desktop (CSIDL_DESKTOP, CSIDL_DESKTOPDIRECTORY) |
ProgramMenuFolder Der vollständige Pfad des Programmmenüordners für alle Benutzer*innen. FOLDERID_CommonPrograms (CSIDL_COMMON_PROGRAMS) |
ProgramMenuFolder Der vollständige Pfad des Programmmenüordners für den aktuellen Benutzer/die aktuelle Benutzerin. FOLDERID_Programs (CSIDL_PROGRAMS) |
StartMenuFolder Der vollständige Pfad des Startmenüordners für alle Benutzer*innen. FOLDERID_CommonStartMenu (CSIDL_COMMON_STARTMENU) |
StartMenuFolder Der vollständige Pfad des Startmenüordners für den aktuellen Benutzer/die aktuelle Benutzerin. FOLDERID_StartMenu (CSIDL_STARTMENU) |
StartUpFolder Der vollständige Pfad des Startordners für alle Benutzer*innen. FOLDERID_CommonStartup (CSIDL_COMMON_STARTUP) |
StartUpFolder Der vollständige Pfad des Startordners für den aktuellen Benutzer/die aktuelle Benutzerin. FOLDERID_Startup (CSIDL_STARTUP) |
TemplateFolder Der vollständige Pfad des Vorlagenordners für alle Benutzer*innen. FOLDERID_CommonTemplates (CSIDL_COMMON_TEMPLATES) |
TemplateFolder Der vollständige Pfad des Vorlagenordners für den aktuellen Benutzer/die aktuelle Benutzerin. FOLDERID_Templates (CSIDL_TEMPLATES) |
AdminToolsFolder Der vollständige Pfad des Ordners mit Verwaltungstools für alle Benutzer*innen. FOLDERID_CommonAdminTools (CSIDL_COMMON_ADMINTOOLS) |
AdminToolsFolder Der vollständige Pfad des Ordners mit Verwaltungstools für den aktuellen Benutzer/die aktuelle Benutzerin. FOLDERID_AdminTools (CSIDL_ADMINTOOLS) |
AppDataFolder Der vollständige Pfad des Programmmenüordners. Windows Vista und höher: Der vollständige Pfad des Roamingordners. FOLDERID_RoamingAppData (CSIDL_APPDATA) |
AppDataFolder Der vollständige Pfad des Programmmenüordners. Windows Vista und höher: Der vollständige Pfad des Roamingordners. FOLDERID_RoamingAppData (CSIDL_APPDATA) |
CommonAppDataFolder Der vollständige Pfad des Ordners, der Anwendungsdaten für alle Benutzer*innen enthält. FOLDERID_ProgramData (CSIDL_COMMON_APPDATA) |
CommonAppDataFolder Der vollständige Pfad des Ordners, der Anwendungsdaten für alle Benutzer*innen enthält. FOLDERID_ProgramData (CSIDL_COMMON_APPDATA) |
FavoritesFolder Der vollständige Pfad des Favoritenordners für den aktuellen Benutzer/die aktuelle Benutzerin. FOLDERID_Favorites (CSIDL_FAVORITES) |
FavoritesFolder Der vollständige Pfad des Favoritenordners für den aktuellen Benutzer/die aktuelle Benutzerin. FOLDERID_Favorites (CSIDL_FAVORITES) |
PersonalFolder Der vollständige Pfad des Ordners „Eigene Dokumente“ oder des persönlichen Ordners für den aktuellen Benutzer/die aktuelle Benutzerin. Windows Vista und höher: Der vollständige Pfad des Ordners „Dokumente“ für den aktuellen Benutzer/die aktuelle Benutzerin. FOLDERID_Documents (CSIDL_PERSONAL) |
PersonalFolder Der vollständige Pfad des Ordners „Eigene Dokumente“ oder des persönlichen Ordners für den aktuellen Benutzer/die aktuelle Benutzerin. Windows Vista und höher: Der vollständige Pfad des Ordners „Dokumente“ für den aktuellen Benutzer/die aktuelle Benutzerin. FOLDERID_Documents (CSIDL_PERSONAL) |
SendToFolder Der vollständige Pfad des SendTo-Ordners. FOLDERID_SendTo (CSIDL_SENDTO) |
SendToFolder Der vollständige Pfad des SendTo-Ordners. FOLDERID_SendTo (CSIDL_SENDTO) |
FontsFolder Der vollständige Pfad des Ordners für Systemschriftarten. FOLDERID_Fonts (CSIDL_FONTS) |
FontsFolder Der vollständige Pfad des Ordners für Systemschriftarten. FOLDERID_Fonts (CSIDL_FONTS) |
ProgramFilesFolder32-Bit-Version von Windows: Der Eigenschaftswert ist der vollständige Pfad zum Ordner „Programme“ für alle Benutzer*innen (z. B. „%ProgramFiles%“). Der Bezeichner für diesen Ordner lautet FOLDERID_ProgramFiles (CSIDL_PROGRAM_FILES). Die Bezeichner FOLDERID_ProgramFiles und FOLDERID_ProgramFilesX86 stellen denselben Ordner dar. Dateien in diesem Ordner sind für alle Benutzer*innen zugänglich. 64-Bit-Version von Windows: Der Eigenschaftswert ist der vollständige Pfad zum Ordner „Programme (x86)“ für alle Benutzer*innen (z. B. „%ProgramFiles(x86)%“). Der Bezeichner für diesen Ordner lautet FOLDERID_ProgramFilesX86 (CSIDL_PROGRAM_FILESX86). Dateien in diesem Ordner sind für alle Benutzer*innen zugänglich. |
ProgramFilesFolderWindows Server 2008 R2 und Windows 7: Der Eigenschaftswert ist der vollständige Pfad des Ordners „Programme“ für den aktuellen Benutzer/die aktuelle Benutzerin (z. B. „%LocalAppData%\Programs“). Der Bezeichner für diesen Ordner lautet FOLDERID_UserProgramFiles auf 32-Bit- und 64-Bit-Systemen. Es gibt keinen entsprechenden CSIDL-Bezeichner für FOLDERID_UserProgramFiles. Dateien in diesem Ordner sind nur für den/die Benutzer*in zugänglich, der bzw. die diesen Ordner installiert hat. Windows Server 2008 und früher sowie Windows Vista und früher: Es ist kein Ordner für die benutzerspezifische Installation verfügbar. Der Pfad ist identisch mit dem für den computerspezifischen Kontext (z. B. „%ProgramFiles%“ oder „%ProgramFiles(x86)%“). Dateien in diesem Ordner sind für alle Benutzer*innen zugänglich. |
CommonFilesFolder32-Bit-Version von Windows: Der Eigenschaftswert ist der vollständige Pfad zum Ordner „Common Files“ für alle Benutzer*innen (z. B. „%ProgramFiles%\Common Files“). Der Bezeichner für diesen Ordner lautet FOLDERID_ProgramFilesCommon (CSIDL_PROGRAM_FILES_COMMON). Die Bezeichner FOLDERID_ProgramFilesCommon und FOLDERID_ProgramFilesCommonX86 stellen denselben Ordner dar. Dateien in diesem Ordner sind für alle Benutzer*innen zugänglich. 64-Bit-Version von Windows: Der Eigenschaftswert ist der vollständige Pfad zum Ordner „Common Files“ für alle Benutzer*innen (z. B. „%ProgramFiles(x86)%\Common Files“). Der Bezeichner für diesen Ordner lautet FOLDERID_ProgramFilesCommonX86 (CSIDL_PROGRAM_FILES_COMMONX86). Dateien in diesem Ordner sind für alle Benutzer*innen zugänglich. |
CommonFilesFolderWindows Server 2008 R2 und Windows 7: Der Eigenschaftswert ist der vollständige Pfad des Ordners „Common“ für den aktuellen Benutzer/die aktuelle Benutzerin (z. B. „%LocalAppData%\Programs\Common“). Der Bezeichner für diesen Ordner lautet FOLDERID_UserProgramFilesCommon auf 32-Bit- und 64-Bit-Systemen. Es gibt keinen entsprechenden CSIDL-Bezeichner für FOLDERID_UserProgramFilesCommon. Dateien in diesem Ordner sind nur für den/die Benutzer*in zugänglich, der bzw. die diesen Ordner installiert hat. Windows Server 2008 und früher sowie Windows Vista und früher: Es ist kein Ordner für die benutzerspezifische Installation verfügbar. Der Pfad ist identisch mit dem für den computerspezifischen Kontext (z. B. „%ProgramFiles%\Common Files“ oder „%ProgramFiles(x86)%\Common Files“). Dateien in diesem Ordner sind für alle Benutzer*innen zugänglich. |
ProgramFiles64Folder Der Eigenschaftswert ist der vollständige Pfad zum Ordner „Programme“ für alle Benutzer*innen (z. B. „%ProgramFiles%“). Der Bezeichner für diesen Ordner lautet FOLDERID_ProgramFilesX64. Es gibt keinen entsprechenden CSIDL-Bezeichner für FOLDERID_ProgramFilesX64. Dies ist der vordefinierte Ordner für 64-Bit-Komponenten und gilt für 64-Bit-Systeme. Dateien in diesem Ordner sind für alle Benutzer*innen zugänglich. |
ProgramFiles64FolderWindows Server 2008 R2 und Windows 7: Der Eigenschaftswert ist der vollständige Pfad des Ordners „Programme“ für den aktuellen Benutzer/die aktuelle Benutzerin (z. B. „%LocalAppData%\Programs“). Der Bezeichner für diesen Ordner lautet FOLDERID_UserProgramFiles. Es gibt keinen entsprechenden CSIDL-Bezeichner für FOLDERID_UserProgramFiles. Dateien in diesem Ordner sind nur für den/die Benutzer*in zugänglich, der bzw. die diesen Ordner installiert hat. Windows Server 2008 und früher sowie Windows Vista und früher: Es ist kein Ordner für die benutzerspezifische Installation verfügbar. Der Pfad ist identisch mit dem für den computerspezifischen Kontext (z. B. „%ProgramFiles%“). Dateien in diesem Ordner sind für alle Benutzer*innen zugänglich. |
CommonFiles64Folder Der Eigenschaftswert ist der vollständige Pfad zum Ordner „Common Files“ für alle Benutzer (z. B. „%ProgramFiles%\Common Files“). Dies ist der vordefinierte Ordner für 64-Bit-Komponenten und gilt für 64-Bit-Systeme. Der Bezeichner für diesen Ordner lautet FOLDERID_ProgramFilesCommonX64. Es gibt keinen entsprechenden CSIDL-Bezeichner für FOLDERID_ProgramFilesCommonX64. Dateien in diesem Ordner sind für alle Benutzer*innen zugänglich. |
CommonFiles64FolderWindows Server 2008 R2 und Windows 7: Der Eigenschaftswert ist der vollständige Pfad des Ordners „Common“ für den aktuellen Benutzer/die aktuelle Benutzerin (z. B. „%LocalAppData%\Programs\Common“). Der Bezeichner für diesen Ordner lautet FOLDERID_UserProgramFilesCommon. Es gibt keinen entsprechenden CSIDL-Bezeichner für FOLDERID_UserProgramFilesCommon. Dateien in diesem Ordner sind nur für den/die Benutzer*in zugänglich, der bzw. die diesen Ordner installiert hat. Windows Server 2008 und früher sowie Windows Vista und früher: Es ist kein Ordner für die benutzerspezifische Installation verfügbar. Der Pfad ist identisch mit dem für den computerspezifischen Kontext (z. B. „%ProgramFiles%\Common Files“). Dateien in diesem Ordner sind für alle Benutzer*innen zugänglich. |
WindowsFolder Der vollständige Pfad des Windows-Ordners. FOLDERID_Windows (CSIDL_WINDOWS) |
WindowsFolder Der vollständige Pfad des Windows-Ordners. FOLDERID_Windows (CSIDL_WINDOWS) |
SystemFolder Der vollständige Pfad des Systemordners. FOLDERID_SystemX86 (CSIDL_SYSTEMX86) |
SystemFolder Der vollständige Pfad des Systemordners. FOLDERID_SystemX86 (CSIDL_SYSTEMX86) |
LocalAppDataFolder Der vollständige Pfad zu dem Ordner, der lokale Anwendungen (ohne Roaming) enthält. FOLDERID_LocalAppData (CSIDL_LOCAL_APPDATA) |
LocalAppDataFolder Der vollständige Pfad zu dem Ordner, der lokale Anwendungen (ohne Roaming) enthält. FOLDERID_LocalAppData (CSIDL_LOCAL_APPDATA) |
MyPicturesFolder Der vollständige Pfad des Ordners „Bilder“ oder „Eigene Bilder“. FOLDERID_Pictures (CSIDL_MYPICTURES) |
MyPicturesFolder Der vollständige Pfad des Ordners „Bilder“ oder „Eigene Bilder“. FOLDERID_Pictures (CSIDL_MYPICTURES) |
PrintHoodFolder Der vollständige Pfad des PrintHood-Ordners. FOLDERID_PrintHood (CSIDL_PRINTHOOD) |
PrintHoodFolder Der vollständige Pfad des PrintHood-Ordners. FOLDERID_PrintHood (CSIDL_PRINTHOOD) |
NetHoodFolder Der vollständige Pfad des NetHood-Ordners. FOLDERID_NetHood (CSIDL_NETHOOD) |
NetHoodFolder Der vollständige Pfad des NetHood-Ordners. FOLDERID_NetHood (CSIDL_NETHOOD) |
RecentFolder Der vollständige Pfad des Ordners „Zuletzt verwendet“. FOLDERID_Recent (CSIDL_RECENT) |
RecentFolder Der vollständige Pfad des Ordners „Zuletzt verwendet“. FOLDERID_Recent (CSIDL_RECENT) |
Hinweis
Eine Anwendung kann die Funktionen MsiEnumProducts oder MsiEnumProductsEx aufrufen, um alle auf dem System installierten Produkte aufzulisten. Die Anwendung kann dann Informationen zum Installationskontext dieser Produkte abrufen, indem sie die Funktionen MsiGetProductInfoEx oder MsiGetProductInfo aufruft. Weitere Informationen finden Sie unter Bestimmen des Installationskontexts.