Compartir a través de


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.

Puede especificar el contexto de instalación creando el paquete para la instalación por usuario o por máquina y usando las propiedades ALLUSERS y MSIINSTALLPERUSER. En función de estas propiedades, Windows Installer redirige automáticamente los valores de las propiedades de carpeta 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 de instalación 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 tabla siguiente se comparan las ubicaciones de accesos directos para contextos de instalación por máquina y por usuario.

Contexto de instalación de Per-Machine (ALLUSERS=1) contexto de instalación de Per-User (ALLUSERS="")
Las aplicaciones aparecen en Agregar o quitar programas en el Panel de control para todos los usuarios del equipo.
Las aplicaciones solo aparecen en Agregar o quitar programas en el 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 tabla siguiente 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 de Per-Machine (ALLUSERS=1) contexto de instalación de Per-User (ALLUSERS="")
Windows Installer escribe o quita los valores del Registro especificados en la tabla registro de y 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 del Registro de y 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 de y tabla RemoveRegistry, con el valor msidbRegistryRootClassesRoot (0) en la columna Raíz, en HKLM\Software\Classes.
Windows Installer escribe o quita los valores del Registro especificados en la tabla del Registro de y tabla RemoveRegistry, con el valor msidbRegistryRootClassesRoot (0) en la columna Raíz, en HKCU\Software\Classes.
El registro COM se escribe en HKLM\Software\Classes.
El registro COM se escribe en HKCU\Clases\software.

 

Redirección de carpetas

Windows Installer establece los valores de las propiedades de la carpeta en la ruta de acceso completa de la carpeta correspondiente para el contexto de instalación.

Nota

Las carpetas se identifican mediante sus KNOWNFOLDERID y constantes csiDL. A partir de Windows Vista, las aplicaciones deben usar la funciónSHGetKnownFolderPath y el KNOWNFOLDERID para determinar la ruta de acceso completa 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 tabla siguiente 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 de Per-Machine (ALLUSERS=1) contexto de instalación de Per-User (ALLUSERS="")
DesktopFolderLa ruta de acceso completa de la carpeta Escritorio para todos los usuarios.
FOLDERID_PublicDesktop (CSIDL_COMMON_DESKTOPDIRECTORY)
DesktopFolderLa ruta de acceso completa de la carpeta Escritorio para el usuario actual.
FOLDERID_Desktop (CSIDL_DESKTOP, CSIDL_DESKTOPDIRECTORY)
ProgramMenuFolderLa ruta de acceso completa de la carpeta Menú programa para todos los usuarios.
FOLDERID_CommonPrograms (CSIDL_COMMON_PROGRAMS)
ProgramMenuFolderLa ruta de acceso completa de la carpeta Menú programa para el usuario actual.
FOLDERID_Programs (CSIDL_PROGRAMS)
StartMenuFolderLa ruta de acceso completa de la carpeta Menú Inicio para todos los usuarios.
FOLDERID_CommonStartMenu (CSIDL_COMMON_STARTMENU)
StartMenuFolderLa ruta de acceso completa de la carpeta Menú Inicio para el usuario actual.
FOLDERID_StartMenu (CSIDL_STARTMENU)
StartUpFolderLa ruta de acceso completa de la carpeta Inicio para todos los usuarios.
FOLDERID_CommonStartup (CSIDL_COMMON_STARTUP)
StartUpFolderLa ruta de acceso completa de la carpeta Inicio del usuario actual.
FOLDERID_Startup (CSIDL_STARTUP)
TemplateFolderLa ruta de acceso completa de la carpeta Plantillas para todos los usuarios.
FOLDERID_CommonTemplates (CSIDL_COMMON_TEMPLATES)
TemplateFolderLa ruta de acceso completa de la carpeta Templates para el usuario actual.
FOLDERID_Templates (CSIDL_TEMPLATES)
AdminToolsFolderLa ruta de acceso completa de la carpeta Herramientas de administración para todos los usuarios.
FOLDERID_CommonAdminTools (CSIDL_COMMON_ADMINTOOLS)
AdminToolsFolderLa ruta de acceso completa de la carpeta Herramientas de administración para el usuario actual.
FOLDERID_AdminTools (CSIDL_ADMINTOOLS)
AppDataFolderLa ruta de acceso completa de la carpeta Menú programa.
Windows Vista y versiones posteriores: La ruta de acceso completa de la carpeta Roaming.

FOLDERID_RoamingAppData (CSIDL_APPDATA)
AppDataFolderLa ruta de acceso completa de la carpeta Menú programa.
Windows Vista y versiones posteriores: La ruta de acceso completa de la carpeta Roaming.

FOLDERID_RoamingAppData (CSIDL_APPDATA)
CommonAppDataFolderLa ruta de acceso completa de la carpeta que contiene los datos de la aplicación para todos los usuarios.
FOLDERID_ProgramData (CSIDL_COMMON_APPDATA)
CommonAppDataFolderLa ruta de acceso completa de la carpeta que contiene los datos de la aplicación para todos los usuarios.
FOLDERID_ProgramData (CSIDL_COMMON_APPDATA)
FavoritesFolderLa ruta de acceso completa de la carpeta Favoritos para el usuario actual.
FOLDERID_Favorites (CSIDL_FAVORITES)
FavoritesFolderLa ruta de acceso completa de la carpeta Favoritos para el usuario actual.
FOLDERID_Favorites (CSIDL_FAVORITES)
PersonalFolderLa ruta de acceso completa de la carpeta Mis documentos o la carpeta Personal del usuario actual.
Windows Vista y versiones posteriores: La ruta de acceso completa de la carpeta Documentos para el usuario actual.

FOLDERID_Documents (CSIDL_PERSONAL)
PersonalFolderLa ruta de acceso completa de la carpeta Mis documentos o la carpeta Personal del usuario actual.
Windows Vista y versiones posteriores: La ruta de acceso completa de la carpeta Documentos para el usuario actual.

FOLDERID_Documents (CSIDL_PERSONAL)
SendToFolderLa ruta de acceso completa de la carpeta SendTo.
FOLDERID_SendTo (CSIDL_SENDTO)
SendToFolderLa ruta de acceso completa de la carpeta SendTo.
FOLDERID_SendTo (CSIDL_SENDTO)
FontsFolderLa ruta de acceso completa de la carpeta Fuentes del sistema.
FOLDERID_Fonts (CSIDL_FONTS)
FontsFolderLa ruta de acceso completa de la carpeta Fuentes del sistema.
FOLDERID_Fonts (CSIDL_FONTS)
ProgramFilesFolderversión de 32 bits de Windows: 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_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 la ruta de acceso completa 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 la ruta de acceso completa 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 de esta carpeta.
Windows Server 2008 y versiones anteriores, y Windows Vista y versiones anteriores: No hay ninguna carpeta compatible con el usuario disponible. La ruta de acceso es la misma 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 la ruta de acceso completa a la carpeta Common Files 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 la ruta de acceso completa a la carpeta Common Files 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 la ruta de acceso completa de la carpeta Common para el usuario actual (por ejemplo, %LocalAppData%\Programs\Common). 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 de esta carpeta.
Windows Server 2008 y versiones anteriores, y Windows Vista y versiones anteriores: No hay ninguna carpeta compatible con el usuario disponible. La ruta de acceso es la misma 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.

ProgramFiles64FolderEl 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 para FOLDERID_ProgramFilesX64. Esta es la carpeta predefinida para componentes de 64 bits y se aplica a 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 la ruta de acceso completa 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 de esta carpeta.
Windows Server 2008 y versiones anteriores, y Windows Vista y versiones anteriores: No hay ninguna carpeta compatible con el usuario disponible. La ruta de acceso es la misma 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 la ruta de acceso completa a la carpeta Common Files para todos los usuarios (por ejemplo, %ProgramFiles%\Common Files). Esta es la carpeta predefinida para componentes de 64 bits y se aplica a sistemas de 64 bits. El identificador de esta carpeta es FOLDERID_ProgramFilesCommonX64. No hay ningún identificador CSIDL equivalente para FOLDERID_ProgramFilesCommonX64. Todos los usuarios pueden acceder a los archivos de esta carpeta.
CommonFiles64FolderWindows Server 2008 R2 y Windows 7: El valor de la propiedad es la ruta de acceso completa de la carpeta Common para el usuario actual (por ejemplo, %LocalAppData%\Programs\Common). 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 de esta carpeta.
Windows Server 2008 y versiones anteriores, y Windows Vista y versiones anteriores: No hay ninguna carpeta compatible con el usuario disponible. La ruta de acceso es la misma que para el contexto por máquina (por ejemplo, %ProgramFiles%\Common Files). Todos los usuarios pueden acceder a los archivos de esta carpeta.

WindowsFolderLa ruta de acceso completa de la carpeta Windows.
FOLDERID_Windows (CSIDL_WINDOWS)
WindowsFolderLa ruta de acceso completa de la carpeta Windows.
FOLDERID_Windows (CSIDL_WINDOWS)
SystemFolderLa ruta de acceso completa de la carpeta System.
FOLDERID_SystemX86 (CSIDL_SYSTEMX86)
SystemFolderLa ruta de acceso completa de la carpeta System.
FOLDERID_SystemX86 (CSIDL_SYSTEMX86)
LocalAppDataFolderLa ruta de acceso completa de la carpeta que contiene aplicaciones locales (que no son de redondeo).
FOLDERID_LocalAppData (CSIDL_LOCAL_APPDATA)
LocalAppDataFolderLa ruta de acceso completa de la carpeta que contiene aplicaciones locales (que no son de redondeo).
FOLDERID_LocalAppData (CSIDL_LOCAL_APPDATA)
MyPicturesFolderLa ruta de acceso completa de la carpeta Imágenes o Mis imágenes.
FOLDERID_Pictures (CSIDL_MYPICTURES)
MyPicturesFolderLa ruta de acceso completa de la carpeta Imágenes o Mis imágenes.
FOLDERID_Pictures (CSIDL_MYPICTURES)
PrintHoodFolderLa ruta de acceso completa de la carpeta PrintHood.
FOLDERID_PrintHood (CSIDL_PRINTHOOD)
PrintHoodFolderLa ruta de acceso completa de la carpeta PrintHood.
FOLDERID_PrintHood (CSIDL_PRINTHOOD)
NetHoodFolderLa ruta de acceso completa de la carpeta NetHood.
FOLDERID_NetHood (CSIDL_NETHOOD)
NetHoodFolderLa ruta de acceso completa de la carpeta NetHood.
FOLDERID_NetHood (CSIDL_NETHOOD)
RecentFolderLa ruta de acceso completa de la carpeta Recent.
FOLDERID_Recent (CSIDL_RECENT)
RecentFolderLa ruta de acceso completa de la carpeta Recent.
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. Después, la aplicación puede recuperar información sobre el contexto de instalación de estos productos llamando a las funcionesMsiGetProductInfoEx o MsiGetProductInfo. Para obtener información, vea Determinar el contexto de instalación.