Installationskontext

Windows Installer kann ein Paket auf einem Computer in zwei Installationskontexte installieren: pro Computer und pro Benutzer. Eine Computerinstallation des Pakets ist erforderlich, damit alle Benutzer des Computers auf die Anwendung zugreifen und diese verwenden können. Da eine Computerinstallation Änderungen am System vornimmt, die sich auf alle Benutzer auswirken, können Standardbenutzer mit eingeschränkten Berechtigungen möglicherweise daran gehindert werden, ein Paket in den Computerkontext zu installieren, ohne zuerst die Berechtigung zu erhalten.

Sie können den Installationskontext angeben, indem Sie das Paket für die Installation pro Benutzer oder pro Computer erstellen und die EIGENSCHAFTEN ALLUSERS und MSIINSTALLPERUSER verwenden. Basierend auf diesen Eigenschaften leitet Windows Installer automatisch die Werte von Ordnereigenschaften und Registrierungen an Speicherorte für den Benutzer- oder Computerkontext 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 auf dem Computer oder im Benutzerkontext installiert werden kann. Informationen zum Entwickeln eines dualen Pakets, mit dem der Benutzer den Installationskontext zur Installationszeit auswählen kann, finden Sie unter Single Package Authoring. Windows Installer ignoriert die MSIINSTALLPERUSER-Eigenschaft, wenn der Wert von ALLUSERS nicht 2 ist. Windows Installer setzt den Wert von ALLUSERS immer auf 1 zurück, wenn er im Kontext pro Computer installiert wird, und setzt den Wert von ALLUSERS auf eine leere Zeichenfolge ("") zurück, wenn er im Benutzerkontext installiert wird.

 

Verknüpfungsumleitung

In der folgenden Tabelle werden die Speicherorte von Tastenkombinationen für Computer und Benutzerinstallationskontexte verglichen.

Per-Machine Installationskontext (ALLUSERS=1) Per-User Installationskontext (ALLUSERS="")
Anwendungen werden unter "Programme hinzufügen/entfernen" auf Systemsteuerung für alle Benutzer des Computers angezeigt.
Anwendungen werden nur unter "Programme hinzufügen/entfernen" auf Systemsteuerung für Benutzer angezeigt, die die Anwendungen installiert haben.
Verknüpfungen werden im Profil "Alle Benutzer" installiert.
Verknüpfungen werden nur für das Profil dieses Benutzers installiert.
Symbole und Transformationen werden in %WINDOWS%\Installer\{ProductCode}gespeichert.
Symbole und Transformationen werden in %USERPROFILE%\Application Data\Microsoft\Installer\{ProductCode GUID} gespeichert.

 

Registrierungsumleitung

In der folgenden Tabelle werden die Speicherorte von Registrierungseinträgen für den Computer und die Installationskontexte pro Benutzer verglichen.

Per-Machine Installationskontext (ALLUSERS=1) Per-User Installationskontext (ALLUSERS="")
Windows Installer schreibt oder entfernt Registrierungswerte, die in der Registrierungstabelle und removeRegistry-Tabelle eingegeben wurden, mit dem Wert -1 in der Stammspalte unter HKEY_LOCAL_MACHINE.
Windows Installer schreibt oder entfernt Registrierungswerte, die in der Registrierungstabelle und removeRegistry-Tabelle eingegeben wurden, mit dem Wert -1 in der Stammspalte unter HKEY_CURRENT_USER.
Windows Installer schreibt oder entfernt Registrierungswerte, die in der Registrierungstabelle und removeRegistry-Tabelle eingegeben wurden, mit dem Wert msidbRegistryRootClassesRootClasses (0) in der Stammspalte unter HKLMSoftwareClasses\\.
Windows Installer schreibt oder entfernt Registrierungswerte, die in der Registrierungstabelle und removeRegistry-Tabelle eingegeben wurden, mit dem Wert msidbRegistryRootClassesRootClasses (0) in der Stammspalte unter HKCUSoftwareClasses\.\
DIE COM-Registrierung wird in HKLMSoftwareClasses\\ geschrieben.
DIE COM-Registrierung wird in HKCUSoftwareClasses\\ geschrieben.

 

Ordnerumleitung

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 KNOWNFOLDERID - und CSIDL-Konstanten identifiziert. Ab Windows Vista sollten Anwendungen die SHGetKnownFolderPath-Funktion und die KNOWNFOLDERID verwenden, um den vollständigen Pfad zu den speziellen Ordnern zu ermitteln. Vorhandene Anwendungen, die die SHGetFolderPath-Funktion und konstante Sonderelement-IDs (CSIDL) verwenden, funktionieren weiterhin.

 

In der folgenden Tabelle werden die Speicherorte von Ordnern verglichen, die verwendet werden, wenn Windows Installer das Paket in den Kontexten pro Computer oder pro Benutzer installiert.

Per-Machine Installationskontext (ALLUSERS=1) Per-User Installationskontext (ALLUSERS="")
DesktopFolder Der vollständige Pfad des Desktopordners für alle Benutzer.
FOLDERID_PublicDesktop (CSIDL_COMMON_DESKTOPDIRECTORY)
DesktopFolder Der vollständige Pfad des Desktopordners für den aktuellen Benutzer.
FOLDERID_Desktop (CSIDL_DESKTOP, CSIDL_DESKTOPDIRECTORY)
ProgramMenuFolder Der vollständige Pfad des Ordners "Programmmenü" für alle Benutzer.
FOLDERID_CommonPrograms (CSIDL_COMMON_PROGRAMS)
ProgramMenuFolder Der vollständige Pfad des Ordners "Programmmenü" für den aktuellen Benutzer.
FOLDERID_Programs (CSIDL_PROGRAMS)
StartMenuFolder Der vollständige Pfad des Startmenüordners für alle Benutzer.
FOLDERID_CommonStartMenu (CSIDL_COMMON_STARTMENU)
StartMenuFolder Der vollständige Pfad des Ordners "Startmenü" für den aktuellen Benutzer.
FOLDERID_StartMenu (CSIDL_STARTMENU)
StartUpFolder Der vollständige Pfad des Ordners "Startup" für alle Benutzer.
FOLDERID_CommonStartup (CSIDL_COMMON_STARTUP)
StartUpFolder Der vollständige Pfad des Ordners "Startup" für den aktuellen Benutzer.
FOLDERID_Startup (CSIDL_STARTUP)
TemplateFolder Der vollständige Pfad des Vorlagenordners für alle Benutzer.
FOLDERID_CommonTemplates (CSIDL_COMMON_TEMPLATES)
TemplateFolder Der vollständige Pfad des Vorlagenordners für den aktuellen Benutzer.
FOLDERID_Templates (CSIDL_TEMPLATES)
AdminToolsFolder Der vollständige Pfad des Ordners "Administratortools" für alle Benutzer.
FOLDERID_CommonAdminTools (CSIDL_COMMON_ADMINTOOLS)
AdminToolsFolder Der vollständige Pfad des Ordners "Administratortools" für den aktuellen Benutzer.
FOLDERID_AdminTools (CSIDL_ADMINTOOLS)
AppDataFolder Der vollständige Pfad des Ordners "Programmmenü".
Windows Vista und höher: Der vollständige Pfad des Roamingordners.

FOLDERID_RoamingAppData (CSIDL_APPDATA)
AppDataFolder Der vollständige Pfad des Ordners "Programmmenü".
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 enthält.
FOLDERID_ProgramData (CSIDL_COMMON_APPDATA)
CommonAppDataFolder Der vollständige Pfad des Ordners, der Anwendungsdaten für alle Benutzer enthält.
FOLDERID_ProgramData (CSIDL_COMMON_APPDATA)
FavoritesFolder Der vollständige Pfad des Ordners "Favoriten" für den aktuellen Benutzer.
FOLDERID_Favorites (CSIDL_FAVORITES)
FavoritesFolder Der vollständige Pfad des Ordners "Favoriten" für den aktuellen Benutzer.
FOLDERID_Favorites (CSIDL_FAVORITES)
PersonalFolder Der vollständige Pfad des Ordners "Meine Dokumente" oder des persönlichen Ordners für den aktuellen Benutzer.
Windows Vista und höher: Der vollständige Pfad des Ordners "Dokumente" für den aktuellen Benutzer.

FOLDERID_Documents (CSIDL_PERSONAL)
PersonalFolder Der vollständige Pfad des Ordners "Meine Dokumente" oder des persönlichen Ordners für den aktuellen Benutzer.
Windows Vista und höher: Der vollständige Pfad des Ordners "Dokumente" für den aktuellen Benutzer.

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 "Systemschriftarten".
FOLDERID_Fonts (CSIDL_FONTS)
FontsFolder Der vollständige Pfad des Ordners "Systemschriftarten".
FOLDERID_Fonts (CSIDL_FONTS)
ProgramFilesFolder32-Bit-Version von Windows: Der Eigenschaftswert ist der vollständige Pfad zum Ordner "Programme" für alle Benutzer (z. B. %ProgramFiles%.) Der Bezeichner für diesen Ordner ist FOLDERID_ProgramFiles (CSIDL_PROGRAM_FILES.) Die Bezeichner FOLDERID_ProgramFiles und FOLDERID_ProgramFilesX86 stellen denselben Ordner dar. Auf Dateien in diesem Ordner kann von allen Benutzern zugegriffen werden.
64-Bit-Version von Windows: Der Eigenschaftswert ist der vollständige Pfad zum Ordner "Programme " (x86) für alle Benutzer (z. B. %ProgramFiles(x86)%.) Der Bezeichner für diesen Ordner ist FOLDERID_ProgramFilesX86 (CSIDL_PROGRAM_FILESX86.) Auf Dateien in diesem Ordner kann von allen Benutzern zugegriffen werden.
ProgramFilesFolderWindows Server 2008 R2 und Windows 7: Der Eigenschaftswert ist der vollständige Pfad des Ordners "Programme" für den aktuellen Benutzer (z. B. %LocalAppData%\Programs.) Der Bezeichner für diesen Ordner ist FOLDERID_UserProgramFiles auf 32-Bit- und 64-Bit-Systemen. Es gibt keinen entsprechenden CSIDL-Bezeichner für FOLDERID_UserProgramFiles. Auf Dateien in diesem Ordner kann nur der Benutzer zugreifen, der diesen Ordner installiert hat.
Windows Server 2008 und früher und Windows Vista und früher: Kein benutzerfähiger Ordner ist verfügbar. Der Pfad entspricht dem Kontext pro Computer (z. B. %ProgramFiles% oder %ProgramFiles(x86)%.) Auf Dateien in diesem Ordner kann von allen Benutzern zugegriffen werden.

CommonFilesFolder32-Bit-Version von Windows: Der Eigenschaftswert ist der vollständige Pfad zum Ordner "Common Files" für alle Benutzer (z. B. %ProgramFiles%\Common Files.) Der Bezeichner für diesen Ordner ist FOLDERID_ProgramFilesCommon (CSIDL_PROGRAM_FILES_COMMON.) Die Bezeichner FOLDERID_ProgramFilesCommon und FOLDERID_ProgramFilesCommonX86 stellen denselben Ordner dar. Auf Dateien in diesem Ordner kann von allen Benutzern zugegriffen werden.
64-Bit-Version von Windows: Der Eigenschaftswert ist der vollständige Pfad zum Ordner "Common Files" für alle Benutzer (z. B. %ProgramFiles(x86)%\Common Files.) Der Bezeichner für diesen Ordner ist FOLDERID_ProgramFilesCommonX86 (CSIDL_PROGRAM_FILES_COMMONX86.) Auf Dateien in diesem Ordner kann von allen Benutzern zugegriffen werden.
CommonFilesFolderWindows Server 2008 R2 und Windows 7: Der Eigenschaftswert ist der vollständige Pfad des gemeinsamen Ordners für den aktuellen Benutzer (z. B. %LocalAppData%\Programs\Common.) Der Bezeichner für diesen Ordner ist FOLDERID_UserProgramFilesCommon auf 32-Bit- und 64-Bit-Systemen. Es gibt keinen entsprechenden CSIDL-Bezeichner für FOLDERID_UserProgramFilesCommon. Auf Dateien in diesem Ordner kann nur der Benutzer zugreifen, der diesen Ordner installiert hat.
Windows Server 2008 und früher und Windows Vista und früher: Kein benutzerfähiger Ordner ist verfügbar. Der Pfad ist identisch mit dem Kontext pro Computer (z. B. %ProgramFiles%\Common Files oder %ProgramFiles(x86)%\Common Files.) Auf Dateien in diesem Ordner kann von allen Benutzern zugegriffen werden.

ProgramFiles64Folder Der Eigenschaftswert ist der vollständige Pfad zum Ordner "Programme" für alle Benutzer (z. B. %ProgramFiles%.) Der Bezeichner für diesen Ordner ist 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. Auf Dateien in diesem Ordner kann von allen Benutzern zugegriffen werden.
ProgramFiles64FolderWindows Server 2008 R2 und Windows 7: Der Eigenschaftswert ist der vollständige Pfad des Ordners "Programme" für den aktuellen Benutzer (z. B. %LocalAppData%\Programs.) Der Bezeichner für diesen Ordner ist FOLDERID_UserProgramFiles. Es gibt keinen entsprechenden CSIDL-Bezeichner für FOLDERID_UserProgramFiles. Auf Dateien in diesem Ordner kann nur der Benutzer zugreifen, der diesen Ordner installiert hat.
Windows Server 2008 und früher und Windows Vista und früher: Kein benutzerfähiger Ordner ist verfügbar. Der Pfad ist identisch mit dem Kontext pro Computer (z. B. %ProgramFiles%.) Auf Dateien in diesem Ordner kann von allen Benutzern zugegriffen werden.

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 ist FOLDERID_ProgramFilesCommonX64. Es gibt keinen entsprechenden CSIDL-Bezeichner für FOLDERID_ProgramFilesCommonX64. Auf Dateien in diesem Ordner kann von allen Benutzern zugegriffen werden.
CommonFiles64FolderWindows Server 2008 R2 und Windows 7: Der Eigenschaftswert ist der vollständige Pfad des gemeinsamen Ordners für den aktuellen Benutzer (z. B. %LocalAppData%\Programs\Common.) Der Bezeichner für diesen Ordner ist FOLDERID_UserProgramFilesCommon. Es gibt keinen entsprechenden CSIDL-Bezeichner für FOLDERID_UserProgramFilesCommon. Auf Dateien in diesem Ordner kann nur der Benutzer zugreifen, der diesen Ordner installiert hat.
Windows Server 2008 und früher und Windows Vista und früher: Kein benutzerfähiger Ordner ist verfügbar. Der Pfad ist identisch mit dem Kontext pro Computer (z. B. %ProgramFiles%\Common Files.) Auf Dateien in diesem Ordner kann von allen Benutzern zugegriffen werden.

WindowsFolder Der vollständige Pfad des ordners Windows.
FOLDERID_Windows (CSIDL_WINDOWS)
WindowsFolder Der vollständige Pfad des ordners Windows.
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 des Ordners, der lokale (nichtroamierende) Anwendungen enthält.
FOLDERID_LocalAppData (CSIDL_LOCAL_APPDATA)
LocalAppDataFolder Der vollständige Pfad des Ordners, der lokale (nichtroamierende) Anwendungen enthält.
FOLDERID_LocalAppData (CSIDL_LOCAL_APPDATA)
MyPicturesFolder Der vollständige Pfad des Ordners "Bilder" oder "Meine Bilder".
FOLDERID_Pictures (CSIDL_MYPICTURES)
MyPicturesFolder Der vollständige Pfad des Ordners "Bilder" oder "Meine 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 MsiEnumProducts - oder MsiEnumProductsEx-Funktionen aufrufen, um alle im System installierten Produkte aufzählen zu können. Die Anwendung kann dann Informationen zum Installationskontext dieser Produkte abrufen, indem Sie die Funktionen MsiGetProductInfoEx oder MsiGetProductInfo aufrufen. Informationen finden Sie unter "Ermitteln des Installationskontexts".