Contexto de instalación

Windows Installer puede instalar un paquete en un equipo en dos contextos de instalación: por máquina y por usuario. Se requiere una instalación por máquina del paquete para permitir que todos los usuarios del equipo accedan y usen la aplicación. Dado que una instalación por máquina realiza cambios en el sistema que afectan a todos los usuarios, se puede impedir que los usuarios estándar que tengan privilegios limitados instalen un paquete en el contexto por máquina sin obtener primero el permiso.

Para especificar el contexto de instalación, cree el paquete para la instalación por usuario o por máquina y use las propiedades ALLUSERS y MSIINSTALLPERUSER. En función de estas propiedades, Windows Installer redirige automáticamente los valores de las propiedades de las carpetas y los registros a ubicaciones para el contexto por usuario o por máquina.

Nota:

La propiedad MSIINSTALLPERUSER, disponible a partir de Windows Installer 5.0 y Windows Server 2008 R2 y Windows 7, puede facilitar el desarrollo de un único paquete capaz de instalarse en el contexto por máquina o por usuario. Para obtener información sobre el desarrollo de un paquete de doble propósito que proporciona al usuario la capacidad de elegir el contexto en el momento de la instalación, consulte Creación de paquetes únicos. Windows Installer omite la propiedad MSIINSTALLPERUSER si el valor de ALLUSERS no es 2. Windows Installer siempre restablece el valor de ALLUSERS a 1 cuando se instala en el contexto por máquina y restablece el valor de ALLUSERS a una cadena vacía ("") cuando se instala en el contexto por usuario.

 

Redireccionamiento de acceso directo

En la siguiente tabla se comparan las ubicaciones de los accesos directos para contextos de instalación por máquina y por usuario.

Contexto de instalación por máquina (ALLUSERS=1) Contexto de instalación por usuario (ALLUSERS="")
Las aplicaciones aparecen en Agregar o quitar programas en Panel de control para todos los usuarios del equipo.
Las aplicaciones solo aparecen en Agregar o quitar programas en Panel de control para los usuarios que han instalado las aplicaciones.
Los accesos directos se instalan en el perfil Todos los usuarios.
Los accesos directos solo se instalan en el perfil de ese usuario.
Los iconos y las transformaciones se almacenan en %WINDOWS%\Installer\{ProductCode}.
Los iconos y las transformaciones se almacenan en %USERPROFILE%\Application Data\Microsoft\Installer\{ProductCode GUID}

 

Redireccionamiento del Registro

En la siguiente tabla se comparan las ubicaciones de las entradas del Registro para los contextos de instalación por máquina y por usuario.

Contexto de instalación por máquina (ALLUSERS=1) Contexto de instalación por usuario (ALLUSERS="")
Windows Installer escribe o quita los valores del Registro especificados en la tabla Registro y la tabla RemoveRegistry, con el valor -1 en la columna Raíz, en HKEY_LOCAL_MACHINE.
Windows Installer escribe o quita los valores del Registro especificados en la tabla Registro y la tabla RemoveRegistry, con el valor -1 en la columna Raíz, en HKEY_CURRENT_USER.
Windows Installer escribe o quita los valores del Registro especificados en la tabla Registro y la tabla RemoveRegistry, con el valor msidbRegistryRootClassesRoot (0) en la columna Raíz en clases\de software\HKLM.
Windows Installer escribe o quita los valores del Registro especificados en la tabla Registro y la tabla RemoveRegistry, con el valor msidbRegistryRootClassesRoot (0) en la columna Raíz en clases\de software\HKCU.
El registro COM se escribe enclases\de software\HKLM.
El registro COM se escribe enclases\de software\HKCU.

 

Redirección de carpetas

Windows Installer establece los valores de las propiedades de la carpeta en el trazado completo de la carpeta correspondiente para el contexto de instalación.

Nota:

Las carpetas se identifican mediante sus constantes KNOWNFOLDERID y CSIDL. A partir de Windows Vista, las aplicaciones deben usar la función SHGetKnownFolderPath y KNOWNFOLDERID para determinar el trazado completo a las carpetas especiales. Las aplicaciones existentes que usan la función SHGetFolderPath y los identificadores de elementos especiales constantes (CSIDL) seguirán funcionando.

 

En la siguiente tabla se comparan las ubicaciones de las carpetas que se usan cuando Windows Installer instala el paquete en los contextos de instalación por máquina o por usuario.

Contexto de instalación por máquina (ALLUSERS=1) Contexto de instalación por usuario (ALLUSERS="")
DesktopFolderTrazado completo de la carpeta Escritorio para todos los usuarios.
FOLDERID_PublicDesktop (CSIDL_COMMON_DESKTOPDIRECTORY)
DesktopFolderTrazado completo de la carpeta Escritorio para el usuario actual.
FOLDERID_Desktop (CSIDL_DESKTOP, CSIDL_DESKTOPDIRECTORY)
ProgramMenuFolderTrazado completo de la carpeta Menú programa para todos los usuarios.
FOLDERID_CommonPrograms (CSIDL_COMMON_PROGRAMS)
ProgramMenuFolderTrazado completo de la carpeta Menú programa para el usuario actual.
FOLDERID_Programs (CSIDL_PROGRAMS)
StartMenuFolderTrazado completo de la carpeta Menú Inicio para todos los usuarios.
FOLDERID_CommonStartMenu (CSIDL_COMMON_STARTMENU)
StartMenuFolderTrazado completo de la carpeta Menú Inicio para el usuario actual.
FOLDERID_StartMenu (CSIDL_STARTMENU)
StartUpFolderTrazado completo de la carpeta Inicio para todos los usuarios.
FOLDERID_CommonStartup (CSIDL_COMMON_STARTUP)
StartUpFolderTrazado completo de la carpeta Inicio para el usuario actual.
FOLDERID_Startup (CSIDL_STARTUP)
TemplateFolderTrazado completo de la carpeta Plantillas para todos los usuarios.
FOLDERID_CommonTemplates (CSIDL_COMMON_TEMPLATES)
TemplateFolderTrazado completo de la carpeta Plantillas para el usuario actual.
FOLDERID_Templates (CSIDL_TEMPLATES)
AdminToolsFolderTrazado completo de la carpeta Herramientas de administración para todos los usuarios.
FOLDERID_CommonAdminTools (CSIDL_COMMON_ADMINTOOLS)
AdminToolsFolderTrazado completo de la carpeta Herramientas de administración para el usuario actual.
FOLDERID_AdminTools (CSIDL_ADMINTOOLS)
AppDataFolderTrazado completo de la carpeta Menú programa.
Windows Vista y versiones posteriores:Trazado completo de la carpeta Itinerancia.

FOLDERID_RoamingAppData (CSIDL_APPDATA)
AppDataFolderTrazado completo de la carpeta Menú programa.
Windows Vista y versiones posteriores:Trazado completo de la carpeta Itinerancia.

FOLDERID_RoamingAppData (CSIDL_APPDATA)
CommonAppDataFolderTrazado completo de la carpeta que contiene los datos de la aplicación para todos los usuarios.
FOLDERID_ProgramData (CSIDL_COMMON_APPDATA)
CommonAppDataFolderTrazado completo de la carpeta que contiene los datos de la aplicación para todos los usuarios.
FOLDERID_ProgramData (CSIDL_COMMON_APPDATA)
FavoritesFolderTrazado completo de la carpeta Favoritos del usuario actual.
FOLDERID_Favorites (CSIDL_FAVORITES)
FavoritesFolderTrazado completo de la carpeta Favoritos del usuario actual.
FOLDERID_Favorites (CSIDL_FAVORITES)
PersonalFolderTrazado completo de la carpeta Mis documentos o carpeta Personal para el usuario actual.
Windows Vista y versiones posteriores:Trazado completo de la carpeta Documentos para el usuario actual.

FOLDERID_Documents (CSIDL_PERSONAL)
PersonalFolderTrazado completo de la carpeta Mis documentos o carpeta Personal para el usuario actual.
Windows Vista y versiones posteriores:Trazado completo de la carpeta Documentos para el usuario actual.

FOLDERID_Documents (CSIDL_PERSONAL)
SendToFolderTrazado completo de la carpeta Enviados.
FOLDERID_SendTo (CSIDL_SENDTO)
SendToFolderTrazado completo de la carpeta Enviados.
FOLDERID_SendTo (CSIDL_SENDTO)
FontsFolderTrazado completo de la carpeta Fuentes del sistema.
FOLDERID_Fonts (CSIDL_FONTS)
FontsFolderTrazado completo de la carpeta Fuentes del sistema.
FOLDERID_Fonts (CSIDL_FONTS)
ProgramFilesFolderversión de 32 bits de Windows: el valor de la propiedad es el trazado completo a la carpeta Archivos de programa para todos los usuarios (por ejemplo, %ProgramFiles%). El identificador de esta carpeta es FOLDERID_ProgramFiles (CSIDL_PROGRAM_FILES). Los identificadores FOLDERID_ProgramFiles y FOLDERID_ProgramFilesX86 representan la misma carpeta. Todos los usuarios pueden acceder a los archivos de esta carpeta.
Versión de 64 bits de Windows: el valor de la propiedad es el trazado completo a la carpeta Archivos de programa (x86) para todos los usuarios (por ejemplo, %ProgramFiles(x86)%). El identificador de esta carpeta es FOLDERID_ProgramFilesX86 (CSIDL_PROGRAM_FILESX86). Todos los usuarios pueden acceder a los archivos de esta carpeta.
ProgramFilesFolderWindows Server 2008 R2 y Windows 7: el valor de la propiedad es el trazado completo de la carpeta Programas para el usuario actual (por ejemplo, %LocalAppData%\Programs). El identificador de esta carpeta es FOLDERID_UserProgramFiles en sistemas de 32 y 64 bits. No hay ningún identificador CSIDL equivalente para FOLDERID_UserProgramFiles. Solo el usuario que instaló esta carpeta puede acceder a los archivos.
Windows Server 2008 y versiones anteriores, y Windows Vista y versiones anteriores: no hay ninguna carpeta compatible por usuario disponible. El trazado es el mismo que para el contexto por máquina (por ejemplo, %ProgramFiles% o %ProgramFiles(x86)%). Todos los usuarios pueden acceder a los archivos de esta carpeta.

CommonFilesFolderversión de 32 bits de Windows: el valor de la propiedad es el trazado completo a la carpeta Archivos comunes para todos los usuarios (por ejemplo, %ProgramFiles%\Common Files). El identificador de esta carpeta es FOLDERID_ProgramFilesCommon (CSIDL_PROGRAM_FILES_COMMON). Los identificadores FOLDERID_ProgramFilesCommon y FOLDERID_ProgramFilesCommonX86 representan la misma carpeta. Todos los usuarios pueden acceder a los archivos de esta carpeta.
Versión de 64 bits de Windows: el valor de la propiedad es el trazado completo a la carpeta Archivos comunes para todos los usuarios (por ejemplo, %ProgramFiles(x86)%\Common Files). El identificador de esta carpeta es FOLDERID_ProgramFilesCommonX86 (CSIDL_PROGRAM_FILES_COMMONX86). Todos los usuarios pueden acceder a los archivos de esta carpeta.
CommonFilesFolderWindows Server 2008 R2 y Windows 7: el valor de la propiedad es el trazado completo de la carpeta Comunes para el usuario actual (por ejemplo, %LocalAppData%\Programs). El identificador de esta carpeta es FOLDERID_UserProgramFilesCommon en sistemas de 32 y 64 bits. No hay ningún identificador CSIDL equivalente para FOLDERID_UserProgramFilesCommon. Solo el usuario que instaló esta carpeta puede acceder a los archivos.
Windows Server 2008 y versiones anteriores, y Windows Vista y versiones anteriores: no hay ninguna carpeta compatible por usuario disponible. El trazado es el mismo que en el contexto por máquina (por ejemplo, %ProgramFiles%\Common Files o %ProgramFiles(x86)%\Common Files). Todos los usuarios pueden acceder a los archivos de esta carpeta.

ProgramFiles64Folder El valor de la propiedad es la ruta de acceso completa a la carpeta Archivos de programa para todos los usuarios (por ejemplo, %ProgramFiles%.) El identificador de esta carpeta es FOLDERID_ProgramFilesX64. No hay ningún identificador CSIDL equivalente a FOLDERID_UserProgramFilesX64. Esta es la carpeta predefinida para los componentes de 64 bits y se aplica a los sistemas de 64 bits. Todos los usuarios pueden acceder a los archivos de esta carpeta.
ProgramFiles64FolderWindows Server 2008 R2 y Windows 7: el valor de la propiedad es el trazado completo de la carpeta Programas para el usuario actual (por ejemplo, %LocalAppData%\Programs). El identificador de esta carpeta es FOLDERID_UserProgramFiles. No hay ningún identificador CSIDL equivalente para FOLDERID_UserProgramFiles. Solo el usuario que instaló esta carpeta puede acceder a los archivos.
Windows Server 2008 y versiones anteriores, y Windows Vista y versiones anteriores: no hay ninguna carpeta compatible por usuario disponible. El trazado es el mismo que para el contexto por máquina (por ejemplo, %ProgramFiles%.) Todos los usuarios pueden acceder a los archivos de esta carpeta.

CommonFiles64FolderEl valor de la propiedad es el trazado completo a la carpeta Common Files para todos los usuarios (por ejemplo, %ProgramFiles%\Common Files). Esta es la carpeta predefinida para los componentes de 64 bits y se aplica a los sistemas de 64 bits. El identificador de esta carpeta es FOLDERID_ProgramFilesCommonX64. No hay ningún identificador CSIDL equivalente a FOLDERID_UserProgramFilesCommonX64. Todos los usuarios pueden acceder a los archivos de esta carpeta.
CommonFiles64FolderWindows Server 2008 R2 y Windows 7: el valor de la propiedad es el trazado completo de la carpeta Comunes para el usuario actual (por ejemplo, %LocalAppData%\Programs). El identificador de esta carpeta es FOLDERID_UserProgramFilesCommon. No hay ningún identificador CSIDL equivalente para FOLDERID_UserProgramFilesCommon. Solo el usuario que instaló esta carpeta puede acceder a los archivos.
Windows Server 2008 y versiones anteriores, y Windows Vista y versiones anteriores: no hay ninguna carpeta compatible por usuario disponible. El trazado es el mismo que para el contexto por máquina (por ejemplo, %ProgramFiles%\Common Files). Todos los usuarios pueden acceder a los archivos de esta carpeta.

WindowsFolderTrazado completo de la carpeta Windows.
FOLDERID_Windows (CSIDL_WINDOWS)
WindowsFolderTrazado completo de la carpeta Windows.
FOLDERID_Windows (CSIDL_WINDOWS)
SystemFolderTrazado completo de la carpeta Sistema.
FOLDERID_SystemX86 (CSIDL_SYSTEMX86)
SystemFolderTrazado completo de la carpeta Sistema.
FOLDERID_SystemX86 (CSIDL_SYSTEMX86)
LocalAppDataFolderTrazado completo de la carpeta que contiene aplicaciones locales (que no son de enlace).
FOLDERID_LocalAppData (CSIDL_LOCAL_APPDATA)
LocalAppDataFolderTrazado completo de la carpeta que contiene aplicaciones locales (que no son de enlace).
FOLDERID_LocalAppData (CSIDL_LOCAL_APPDATA)
MyPicturesFolderTrazado completo de la carpeta Imágenes o Mis imágenes.
FOLDERID_Pictures (CSIDL_MYPICTURES)
MyPicturesFolderTrazado completo de la carpeta Imágenes o Mis imágenes.
FOLDERID_Pictures (CSIDL_MYPICTURES)
PrintHoodFolderTrazado completo de la carpeta PrintHood.
FOLDERID_PrintHood (CSIDL_PRINTHOOD)
PrintHoodFolderTrazado completo de la carpeta PrintHood.
FOLDERID_PrintHood (CSIDL_PRINTHOOD)
NetHoodFolderTrazado completo de la carpeta NetHood.
FOLDERID_NetHood (CSIDL_NETHOOD)
NetHoodFolderTrazado completo de la carpeta NetHood.
FOLDERID_NetHood (CSIDL_NETHOOD)
RecentFolderTrazado completo de la carpeta Recientes.
FOLDERID_Recent (CSIDL_RECENT)
RecentFolderTrazado completo de la carpeta Recientes.
FOLDERID_Recent (CSIDL_RECENT)

 

Nota:

Una aplicación puede llamar a las funciones MsiEnumProducts o MsiEnumProductsEx para enumerar todos los productos instalados en el sistema. A continuación, la aplicación puede recuperar información sobre el contexto de instalación de estos productos llamando a las funciones MsiGetProductInfoEx o MsiGetProductInfo. Para obtener información, consulte Cómo determinar el contexto de instalación.