Cómo restaurar los archivos de caché de Windows Installer falta y resolver los problemas que se producen durante una actualización de SQL Server

Seleccione idioma Seleccione idioma
Id. de artículo: 969052 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Síntomas


El proceso descrito en este artículo es proporcionar ayuda de emergencia sólo y corrección no es permanente. Los clientes que utilizan este proceso de emergencia deben validar su caché de Windows Installer con el Paquete de Comprobador de caché de Windows Installer como se indica en el artículo KB 2667628.

Cuando intenta instalar un service pack de Microsoft SQL Server o una actualización acumulativa, puede encontrar los siguientes mensajes de error, lo que pueden indicar problemas con la caché de Windows Installer. La caché de Windows Installer, ubicado en la carpeta c:\windows\installer , almacena archivos de aplicaciones instalan mediante la tecnología de Windows instalador y no deberían ser eliminados. Si la caché de installer se ha comprometido, puede no inmediatamente, consulte problemas hasta que se realice una acción como desinstalación, reparacion o actualización de SQL Server.

Al instalar SQL Server, Windows Installer almacena crítica archivos se almacenan en la caché de Windows Installer (el valor predeterminado es C:\Windows\Installer). Estos archivos son necesarios para la desinstalación y actualización de aplicaciones. No se puede copiar archivos que faltan entre máquinas, ya que son únicos.

Microsoft recomienda que las instalaciones de SQL Server siga primero el proceso de reparación observado en estos artículos para comprobar su instalación actual:
Nota Pueden encontrar los siguientes mensajes de error como mensajes de texto en el registro de sucesos o en los registros de instalación que se encuentran en una de las siguientes carpetas e indican que debería reparar la instancia afectada se continuar:
  • Para SQL Server 2008 y SQL Server 2008 R2:
    C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap
  • Para SQL Server 2012:
    C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap

Para SQL 2005 (todas las ramas)
Contraer esta tablaAmpliar esta tabla
Versión del productoMensaje de error cuando falta el paquete de Installer (MSI)Mensaje de error cuando falta el paquete de caché de Installer (MSP)
SQL Server 2005
1636 No se puede instalar el archivo MSI de Windows Installer
1636 no se puede instalar el archivo MSP de Windows Installer
Nota: Debe revisar los archivos de registro de instalación para identificar si faltan los archivos de la caché. Para obtener más información acerca de cómo hacer esto, vaya a la sección "Solución".

Para SQL Server 2008 SP1
Contraer esta tablaAmpliar esta tabla
Versión del productoMensaje de error cuando falta el paquete de Installer (MSI)Mensaje de error cuando falta el paquete de caché de Installer (MSP)
SQL Server 2008 SP1Ningún mensaje de error
TÍTULO: Error el programa de instalación de SQL Server.
------------------------------
El programa de instalación de SQL Server ha encontrado el siguiente error: no se puede abrir el archivo de revisión. El archivo es: c:\WINNT\Installer\1cf506f.msp. Código de error 0x84B20001.
------------------------------
Para el SP3 de SQL Server 2008 sólo generación (ramas de CU/RDA no son aplicables)
Contraer esta tablaAmpliar esta tabla
Versión del productoMensaje de error cuando falta el paquete de Installer (MSI)Mensaje de error cuando falta el paquete de caché de Installer (MSP)
El Service Pack 3 de SQL Server 2008
Falta el archivo MSI almacenado en caché 'C:\Windows\Installer\2775c8.msi'. Su archivo original es 'sql_engine_core_inst.msi' y se instaló para el producto 'Microsoft SQL Server 2008 Database Engine Services' de'<network path="">', versión '10.3.5500.0,' idioma 'ENU'.</network>
Falta el archivo de revisión en caché "C:\Windows\Installer\19b19196.msp". El archivo original para este archivo almacenado en memoria caché es "sql_engine_core_inst.msp", que se puede instalar desde la versión de "Service Pack 3 de SQL Server 2008 (KB2546951) (64 bits)," 10.3.5500.0
Nota Recibirá el siguiente mensaje de error al realizar una actualización:
Contraer esta imagenAmpliar esta imagen
Error de SQL Server


Para SQL Server 2008 R2 SP1 sólo (ramas de CU/RDA no son aplicables)
Contraer esta tablaAmpliar esta tabla
Versión del productoMensaje de error cuando falta el paquete de Installer (MSI)Mensaje de error cuando falta el paquete de caché de Installer (MSP)
SQL Server 2008 R2 SP1
TÍTULO: Error el programa de instalación de SQL Server.
------------------------------
El programa de instalación de SQL Server ha encontrado el siguiente error: C:\Windows\Installer\932b909.msi.
------------------------------
Falta el archivo de revisión en caché "C:\Windows\Installer\105441.msp". El archivo original para este archivo almacenado en memoria caché es "sql_engine_core_inst_loc.msp", que puede instalarse desde "Service Pack 1 para SQL Server 2008 R2 (KB2528583) (64 bits)", versión 10.51.2500.0.
Nota Recibirá el siguiente mensaje de error al realizar una actualización:
Contraer esta imagenAmpliar esta imagen
Error de SQL Server


Para el Service Pack 2 de SQL Server 2008 R2
Contraer esta tablaAmpliar esta tabla
Versión del productoMensaje de error cuando falta el paquete de Installer (MSI)Mensaje de error cuando falta el paquete de caché de Installer (MSP)
SQL Server 2008 R2 SP1
Falta el archivo MSI almacenado en caché 'C:\Windows\Installer\932b909.msi'. Su archivo original es 'sql_engine_core_inst.msi' y se instaló para el producto 'SQL Server 2008 R2 SP1 de base de datos de servicios de'<network path="">', versión '10.51.2500.0,' idioma 'ENU'.</network>
Falta el archivo de revisión en caché "C:\Windows\Installer\105441.msp". El archivo original para este archivo almacenado en memoria caché es "sql_engine_core_inst_loc.msp", que puede instalarse desde "Service Pack 1 para SQL Server 2008 R2 (KB2528583) (64 bits)", versión 10.51.2500.0.
Nota Recibirá el siguiente mensaje de error al realizar una actualización:
Contraer esta imagenAmpliar esta imagen
Error de SQL Server


Para SQL Server 2012 antes de CU2
No hay ningún mensaje si faltan archivos MSP o MSI. Sin embargo, el código de error 1714 se registra en el registro de instalación.

En el archivo Summary.txt:
Nombre de componente: SQL Server Setup Support Files
Código de error de componente: 1714

En el archivo Detail.txt:
<Date><Time>SLP: Sco: no existe el archivo 'd:\2d5feb4dd893c4adee47f15661ac\1033_ENU_LP\x64\setup\sqlsupport_msi\x64\SqlSupport.msi'
<Date><Time>SLP: Sco: no existe el archivo 'd:\2d5feb4dd893c4adee47f15661ac\1033_ENU_LP\x64\setup\sqlsupport_msi\x64\SqlSupport.msi'
<Date><Time>SLP: Punto de comprobación: PREINSTALL_SQLSUPPORT_CPU64_ACTION
<Date><Time>SLP: Sco: intentar crear la clave base de registro HKEY_LOCAL_MACHINE, equipo<Server name="">
<Date><Time>SLP: Sco: intentar abrir la subclave del registro Software\Microsoft\Windows\CurrentVersion\Installer
<Date><Time>SLP: Sco: al intentar obtener el valor del registro InstallerLocation
<Date><Time>SLP: Windows installer versión: 5.0.7601.17514
<Date><Time>SLP: Sco: esperando msiserver' service' Aceptar la solicitud de detención.
<Date><Time>SLP: Sco: intentando abrir Administrador SC
<Date><Time>SLP: Sco: intentando abrir el identificador de servicio de servicio msiserver
<Date><Time>SLP: Invocar la API de QueryServiceStatus Win32
<Date><Time>SLP: Sco: intentando cerrar el identificador de servicio para el servicio msiserver
<Date><Time>SLP: Sco: intentar cerrar administrador SC
<Date><Time>SLP: Paquete de destino: "d:\2d5feb4dd893c4adee47f15661ac\1033_ENU_LP\x64\setup\sqlsupport_msi\SqlSupport.msi"
<Date><Time>SLP: Error MSI: 1714 No se puede quitar la versión anterior de Microsoft SQL Server 2012 el programa de instalación (en inglés). Póngase en contacto con su grupo de soporte técnico.
<Date><Time>SLP: InstallPackage: MsiInstallProduct devolvió el código de resultado 1603.
<Date><Time>SLP: Mediante el código de error MSI para detectar la opción retry: 1714
<Date><Time>SLP: No puede reintentar MSI devolver código detectado.</Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Server></Time></Date></Time></Date></Time></Date></Time></Date>

Para SQL Server 2012 CU2 (y cualquier CU o SP)
Contraer esta tablaAmpliar esta tabla
Versión del productoMensaje de error cuando falta el paquete de Installer (MSI)Mensaje de error cuando falta el paquete de caché de Installer (MSP)
SQL Server 2008 R2 SP1
El archivo MSI almacenado en caché ' C:\Windows\Installer\<file_encoded_name>msi ' falta. Su archivo original es '' C:\Windows\Installer\sql_<featurename>.msi'}' y se instaló para el producto "Microsoft SQL Server <version>' de 'C:\originalfolder', versión '<versionnumber>', lenguaje '<language>'.</language> </versionnumber> </version> </featurename> </file_encoded_name>
Falta el archivo de revisión en caché "c:\Windows\Installer\1fdb1aec.msp". Su archivo original es "sql_engine_core_inst.msp", que se puede instalar desde el archivo de revisión en caché de "Revisión 2316 para SQL Server 2012 (KB2679368) (64 bits)," versión 11.00.2100.60.The "C:\Windows\Installer\<file_encoded_name>.msp' falta. Su archivo original es '' C:\Windows\Installer\sql_<featurename>.msp'}', que puede instalarse desde ' revisión <number>para SQL Server 2012 <KB number="">', versión '<versionnumber>'.</versionnumber> </KB> </number> </featurename> </file_encoded_name>

Causa

Estos problemas pueden producirse cuando el archivo de base de datos de Windows Installer (.msi) o el archivo de revisión de Windows Installer (.msp) falta de la caché de Windows Installer. La caché de Windows Installer se encuentra en la carpeta siguiente:
%windir%\Installer
Cuando un producto se instala con Windows Installer, una versión eliminada del archivo .msi original se almacena en la caché de Windows Installer. Todas las actualizaciones para el producto como una revisión, una actualización acumulativa o una instalación del service pack, también almacena el .msp pertinentes o el archivo .msi en la caché de Windows Installer.

Cualquier actualización futura del producto como una revisión, una actualización acumulativa o una instalación del service pack, se basa en la información de los archivos que se almacenan en la caché de Windows Installer. Sin esta información, la nueva actualización no puede realizar las transformaciones.

Solución

Para resolver estos problemas, utilice uno de los procedimientos siguientes.

Procedimiento 1: Utilice una secuencia de comandos

Para completar los pasos de este procedimiento, tiene que copiar el Secuencia de comandos FindSQLInstalls.vbs en la sección "Más información" en una carpeta local en el equipo donde está intentando actualizar la instalación de SQL Server.

Nota La secuencia de comandos FindSQLInstalls.vbs recopila la información para corregir las rutas de acceso del paquete no es válido. Y esta secuencia de comandos se utiliza con las ubicaciones de origen para asegurarse de que todos los paquetes MSP están en el directorio de caché de Windows Installer. Si está disponible el medio original, se vuelven a agregar los paquetes que faltan.

Para resolver estos problemas mediante el uso de una secuencia de comandos, siga estos pasos:
  1. Busque el directorio en el que guardó el contenido de la secuencia de comandos.
  2. Abra un símbolo del sistema con privilegios elevados para el directorio en el que guardó la secuencia de comandos y ejecute el siguiente comando:
    Cscript FindSQLInstalls.vbs %computername%_sql_install_details.txt
  3. Abra el archivo desde el paso 2 en un editor de texto como el Bloc de notas e identificar los problemas que son la causa del error. Para ello, busque el archivo de texto para los modelos de cadena como la siguiente:
    • no lo hace
    • !!!
  4. Basado en los resultados en el paso 3, siga los pasos que se requieren.

    Nota Buscar más información acerca de estos pasos en la sección "Ejemplos".

  5. Repita los pasos 2 a 4 hasta que el archivo de texto que se crea en el paso 2 ya no contiene texto que hace referencia a las rutas no válidas o los archivos que faltan para el componente que se está actualizando.

Ejemplos

Los ejemplos siguientes son las entradas y las explicaciones de las acciones que se describen en el archivo de salida que se genera cuando se ejecuta la secuencia de comandos FindSQLInstalls.vbs.

Ejemplo 1: Faltan archivos del instalador
El siguiente es un ejemplo de la salida que se genera cuando falta un paquete .msi en la carpeta de caché de Windows Installer.
================================================================================
PRODUCT NAME   : Microsoft SQL Server 2008 Database Engine Services
================================================================================
  Product Code: {9FFAE13C-6160-4DD0-A67A-DAC5994F81BD}
  Version     : 10.2.4000.0
  Most Current Install Date: 20110211
  Target Install Location: 
  Registry Path: 
   HKEY_CLASSES_ROOT\Installer\Products\C31EAFF906160DD46AA7AD5C99F418DB\SourceList
     Package    : sql_engine_core_inst.msi
  Install Source: \x64\setup\sql_engine_core_inst_msi\
  LastUsedSource: m;1;G:\x64\setup\sql_engine_core_inst_msi\

La línea "LastUsedSource" señala a la ubicación que se utilizó para ejecutar el programa de instalación.

En la línea "LastUsedSource", la entrada m; significa media e indica que el origen es el CD o DVD.

En el ejemplo siguiente, el origen es un CD o un DVD en la unidad G. Si la instalación se produjo desde una carpeta de archivos o desde un recurso compartido de red, la línea empieza con una entrada n; "LastUsedSource" seguido de una entrada de Numeric_Data_Name; y la ruta de acceso real:
!!!! sql_engine_core_inst.msi DOES NOT exist on the path in the path G:\x64\setup\sql_engine_core_inst_msi\ !!!!
 
Action needed, re-establish the path to G:\x64\setup\sql_engine_core_inst_msi\ 

La "acción necesaria" línea muestra la ruta de acceso completa que debe existir para actualizar los archivos que faltan para el medio de instalación original:
Installer Cache File: C:\WINDOWS\Installer\19b4d2.msi 

La línea "Archivo de caché del instalador" Confirma el nombre del archivo de caché del instalador:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!! C:\WINDOWS\Installer\19b4d2.msi DOES NOT exist in the Installer cache. !!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

La siguiente sección de la salida informa de las acciones que se requieren para resolver los archivos que faltan:
 Action needed, recreate or re-establish path to the directory:
     G:\x64\setup\sql_engine_core_inst_msi\then rerun this script to update installer cache and results
     The path on the line above must exist at the root location to resolve
     this problem with your msi/msp file not being found or corrupted,
     In some cases you may need to manually copy the missing file or manually
     replace the problem file overwriting it is exist: 
 
     Copy "G:\x64\setup\sql_engine_core_inst_msi\sql_engine_core_inst.msi" C:\WINDOWS\Installer\19b4d2.msi
 
     Replace the existing file if prompted to do so.
Ejemplo 2: Las revisiones que faltan
Las revisiones que faltan pueden ocasionar entradas similares a las del ejemplo 1. La mayoría de los casos, observará que las entradas en la línea "LastUsedSource de revisión" que hacen referencia a una revisión y esta línea es similar a la siguiente:
Patch LastUsedSource:   n;1;c:\0ca91e857a4f12dd390f0821a3\HotFixSQL\Files\

Este resultado indica lo siguiente acerca de la instalación de la revisión:
  • Se instaló la revisión original haciendo doble clic en el archivo ejecutable de la revisión.
  • El programa de instalación de la revisión utiliza una carpeta temporal, c:\0ca91e857a4f12dd390f0821a3, durante la instalación de la revisión.
  • Para volver a crear la ruta de acceso, debe ejecutar el mismo ejecutable y agregar el siguiente parámetro:
    /x:c:\0ca91e857a4f12dd390f0821a3
    Nota Este comando hace que el archivo ejecutable para extraer los archivos en la ubicación anterior falta y se volverán a crear la estructura que se requiere para actualizar la caché de Windows installer con los archivos que faltan. La ubicación real variará, y puede tener una única revisión como un service pack que se extraigan a varias ubicaciones. Cada producto instalado, incluye una sección que contiene la siguiente información para "Parches instalados":
    Display name:
    KB Article URL:  http://support.microsoft.com/?kbid=<value>
    Patch LastUsedSource: 

    La línea "URL de artículo de KB" puede ayudar a descargar cualquier medio de revisión, si es necesario.

Procedimiento 2: Restaurar manualmente los archivos

Para restaurar manualmente los archivos que faltan en la caché de Windows Installer, siga estos pasos:
  1. Recopilar todos los detalles sobre el archivo que falta desde el mensaje de error, el archivo de registro de instalación o de las entradas del registro que son mantenidas por el instalador de Windows. Por ejemplo, en un mensaje de Error 1 en la sección "Síntomas", toda la información necesaria para resolver el problema está presente en el mensaje de error:
    • PatchName: "revisión 1702 para SQL Server 2008 R2 (KB981355) (64 bits)"
    • Archivo MSP original utilizado por la revisión de seguridad: sql_engine_core_inst.msp
    • Archivo MSP en caché: c:\Windows\Installer\1fdb1aec.msp
  2. Si no tiene todos los detalles, consulte el "obtener más información de la sección 2" procedimiento de los pasos necesarios para recopilar estos datos.
  3. Visite http://support.Microsoft.comy busque el artículo de KB asociado con esta revisión. En este ejemplo, debe buscar KB981355.
  4. Descargar este paquete de revisión en el equipo. Asegúrese de que descargue el paquete de revisión que corresponde a la plataforma requerida. En este ejemplo, el paquete es SQLServer2008R2-KB981355-x64.exe.
  5. Extraiga el contenido del paquete de revisiones mediante la sintaxis siguiente:
    C:\Temp>SQLServer2008R2-KB981355-x64.exe /x C:\Temp\SQLServer2008R2-KB981355-x64\
  6. Busque el archivo de sql_engine_core_inst.msp de archivo msp original. El archivo debe estar en la carpeta siguiente:
    C:\Temp\SQLServer2008R2-KB981355-x64\x64\setup\sql_engine_core_inst_msi\
  7. Copiar este archivo msp original en la caché de Windows Installer siguiente:
    %windir%\installer\
  8. Cambiar el nombre del archivo msp original, sql_engine_core_inst.msp, a la siguiente:
    1fdb1aec.msp de archivo msp en caché

Puede iniciar el programa de instalación de la actualización que se ha producido el error y reanudar el proceso de actualización. Puede encontrar este mensaje para un archivo de caché de Windows Installer falta para otro componente u otra actualización del mismo producto.

Para obtener una lista de todos los Windows Installer caché archivos que faltan relacionados con los componentes del producto de SQL Server, puede descargar la herramienta BPA de SQL Server 2008 R2 que se menciona en la sección "Más información".

Si el mensaje de error hace referencia a un archivo de base de datos de Windows Installer (.msi) falta, no es necesario realizar los pasos 2 a 4. En su lugar, puede ir directamente al paso 5. Tiene que localizar el archivo .msi desde el medio original que utilizó para instalar el producto. Si se generó este mensaje de error de sql_engine_core_inst.msi, tienen que buscar este archivo desde el medio de instalación en la siguiente estructura de carpetas:
\x64\setup\sql_engine_core_inst_msi\
Los demás pasos son los mismos.

Para obtener más información para el procedimiento 2

Cómo encontrar el paquete de revisión y los detalles del producto para la falta de un archivo .msp
Diferentes versiones del producto, generan mensajes de error diferentes para este problema. Aparecen los mensajes de error que se mencionan en la sección "Síntomas" de los programas de instalación de actualizaciones a partir de Microsoft SQL Server 2008 SP1. Para otras actualizaciones, recibirá mensajes de error que no se pueden especificar con claridad el qué revisión no está en la caché de Windows Installer y los detalles de la actualización. Estos mensajes de error, los archivos de registro de instalación contiene información acerca del archivo de caché de Windows Installer falta. Ejemplo de registro de instalación similar al siguiente:
MSI (s) (FC:F8) [13:48:58:649]: Opening existing patch 'C:\WINDOWS\Installer\145258.msp'.
MSI (s) (FC:F8) [13:48:58:649]: Couldn't find local patch 'C:\WINDOWS\Installer\145258.msp'. Looking for it at its source.
MSI (s) (FC:F8) [13:48:58:649]: Resolving Patch source.
MSI (s) (FC:F8) [13:48:58:649]: Note: 1: 2203 2: D:\cda162709d239766830bae5ce12b\HotFixSQL\Files\sqlrun_sql.msp 3: -2147287037 
MSI (s) (FC:F8) [13:48:58:649]: SOURCEMGMT: Source is invalid due to missing/inaccessible package.
MSI (s) (FC:F8) [13:49:29:961]: Product: Microsoft SQL Server 2005 -- Installation failed.
MSI (s) (FC:F8) [13:49:29:992]: MainEngineThread is returning 1635
This patch package could not be opened.  Verify that the patch package exists and that you can access it, or contact the application vendor to verify that this is a valid Windows Installer patch package.
D:\SQL2K5\Servers\Setup\SqlRun_SQL.msi

Si examina cuidadosamente el registro de la instalación, ya proporciona la información sobre el archivo MSP Original utilizado por la siguiente:
sqlrun_sql.msp


Para obtener más detalles acerca del archivo .msp falta en la caché de Windows Installer, siga estos pasos:
  1. Busque el archivo .msp falta en la siguiente subclave del registro de revisiones de Windows Installer:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Patches\
  2. Encontrar el GUID de la revisión.
  3. Buscar el GUID de la revisión en la siguiente subclave del registro de productos de Windows Installer:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\
Para el registro de configuración de ejemplo, la información sobre el archivo .msp falta y los detalles de revisión correspondientes están presentes en las entradas del registro siguientes:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Patches\A3B085EA74A9A7640A496636F7EF9A44

Valor: 0
Nombre: LocalPackage
Datos: C:\WINDOWS\Installer\145258.msp

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\1EB3A031CC585314E87AA527E46EECC2\Patches\A3B085EA74A9A7640A496636F7EF9A44
Valor: 6
Nombre: DisplayName
Datos: RDA 2050 para SQL Server Database Services 2005 ENU (KB932555)

Ahora dispone de todos los puntos de información para iniciar los pasos para resolver los archivos que faltan en la caché de Windows Installer.

Nota Si utiliza Microsoft SQL Server 2008 Service Pack 3 (SP3) o una versión posterior, también puede recibir un mensaje de error similar a los archivos .msi que faltan. Mediante el uso de este mensaje de error, puede determinar rápidamente qué archivo falta, qué service pack para descargar, y dónde puede encontrar la descarga.

Para obtener más información acerca de cómo obtener el service pack, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2546951 Lista de los errores corregidos en el Service Pack 3 de SQL Server 2008

Más información

Para obtener más información acerca de los archivos de Windows Installer (.msi) de la base de datos, visite el siguiente sitio Web de Microsoft Developer Network (MSDN):
Windows Installer
Para obtener más información acerca de los archivos de parches (archivo .msp) de Windows Installer, visite el siguiente sitio Web MSDN:
Paquetes de revisiones
Para obtener más información acerca de los detalles internos de la caché de Windows Installer, consulte el blog MSDN siguiente:
Caché de Windows Installer
Para obtener más información sobre el proceso de revisión, consulte el blog MSDN siguiente:
Cómo funciona la aplicación de revisiones
Para obtener más información acerca de cómo asegurarse de que almacena en caché el archivo de revisión para la plataforma correcta, consulte el blog MSDN siguiente:
El programa de instalación de SQL Server le pide con "el producto instalado no coincide con los orígenes de la instalación"
Para obtener más información acerca de por qué cualquier producto que use al instalador de Windows puede surgir este problema, consulte el blog MSDN siguiente:
Volver a generar la caché de Installer
Para obtener más información acerca de los detalles sobre los distintos conjuntos de mensajes de error que aparecen en los archivos de registro de instalación, consulte el blog MSDN siguiente:
Parte - 1: SQL Server 2005 revisión no instala un error "no se puede instalar Windows Installer MSP archivo"


Para obtener más información acerca de los productos o herramientas que comprueban automáticamente si esta condición en la instancia de SQL Server y en las versiones del producto SQL Server, vea la tabla siguiente:
Contraer esta tablaAmpliar esta tabla
Software de reglaTítulo de la reglaDescripción de la reglaVersiones del producto con el que se evalúa la regla
SQL Server 2008 R2 Best Practices Analyzer (SQL Server 2008 R2 BPA)Programa de instalación: falta caché Installer para la instalación de SQLSQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA) proporciona una regla para detectar el archivo de caché falta el instalador para los componentes de SQL Server. El BPA de SQL Server 2008 R2 es compatible con SQL Server 2008 y SQL Server 2008 R2. Si ejecuta la herramienta BPA y se producirá un Error con el título del programa de instalación: falta memoria caché Installer para la instalación de SQL y, a continuación, los archivos de caché no están en la carpeta de caché.SQL Server 2008
SQL Server 2008 R2
SQL Server 2012 Best Practices Analyzer (BPA de SQL Server 2012)Programa de instalación: falta caché Installer para la instalación de SQLSQL Server 2012 Best Practices Analyzer (BPA de SQL Server 2012) proporciona una regla para detectar el archivo de caché falta el instalador para los componentes de SQL Server.Si ejecuta la herramienta BPA y se producirá un Error con el título del programa de instalación: falta memoria caché Installer para la instalación de SQL y, a continuación, los archivos de caché no están en la carpeta de caché.SQL Server 2012



Secuencia de comandos FindSQLInstalls.vbs

' Copyright © Microsoft Corporation.  All Rights Reserved.
' This code released under the terms of the 
' Microsoft Public License (MS-PL, http://opensource.org/licenses/ms-pl.html.)
 
 
On Error Resume Next
 
Dim arrSubKeys, arrSubKeys2
Dim objFSO, objShell, objFile, objReg, objConn, objExec
Dim strComputer, strKeyPath, strNewSource
Dim strWorkstationName, strDBPath, strSubKey, strSubKey2(), strKeyPath02,  strRetValue00
Dim strRetValue01, strRetValue02, strRetValNew02, strRetValNew03, strRetValNew04, strRetValNew05, strRetValNew06, strRetValNew07, strRetValNew08, strRetValNew09, strRetValue10, strRetValNew10, strRetValNew11, strRetValNew12, strRetValNew13, strRetValNew14, strRetValNew14a, strRetValNew14b, strRetValNew15, strRetValNew15a, strRetValNew15b, strRetValNew16, strRetValNew17, strRetValNew18
 
Const HKCR = &H80000000 'HKEY_CLASSES_ROOT
Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE
Const ForReading = 1, ForWriting = 2, ForAppEnding = 8
 
' Checking for Elevated permissions
Dim oShell, oExec
szStdOutszStdOut = ""
Set oShell = CreateObject("WScript.Shell")
Set oExec = oShell.Exec("whoami /groups")
 
Do While (oExec.Status = cnWshRunning)
    WScript.Sleep 100
       if not oExec.StdOut.AtEndOfStream Then
                szStdOut = szStdOut & oExec.StdOut.ReadAll
       end If
Loop
 select case oExec.ExitCode
   case 0
       if not oExec.StdOut.AtEndOfStream Then
           szStdOut = szStdOut & oExec.StdOut.ReadAll
       End If
       If instr(szStdOut,"Mandatory Label\High Mandatory Level") Then
                wscript.echo "Elevated, executing script and gathering requested data"
       Else
           if instr(szStdOut,"Mandatory Label\Medium Mandatory Level")  Then
          Wscript.echo "Not Elevated must run from Administrative commmand line."
       Else
          Wscript.echo "Gathering requested data..."
           end If
      End If
   case Else
       if not oExec.StdErr.AtEndOfStream Then
          wscript.echo oExec.StdErr.ReadAll
       end If
       end select
 
'
' Leaving strNewSource will result in no search path updating.
' Currently DO NOT EDIT these.
strNewSource = ""
strNewRTMSource = ""
 
' Define string values
strComputer = "."
strSQLName = "SQL"
strDotNetName = ".NET"
strVStudioName = "Visual Studio"
strXML = "XML"
strOWC = "Microsoft Office 2003 Web Components"
strKeyPath = "Installer\Products"
strKeyPath2 = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products"
strNValue00 = "ProductName"
strNValue01 = "PackageName"
strNValue02 = "LastUsedSource"
strNValue03 = "InstallSource"
strNValue04 = "LocalPackage"
strNValue05 = "DisplayVersion"
strNValue06 = "InstallDate"
strNValue07 = "UninstallString"
strNValue08 = "PackageCode"
strNValue09 = "MediaPackage"
strNValue10 = "InstallSource"
strNValue11 = "AllPatches"
strNValue12 = "NoRepair"
strNValue13 = "MoreInfoURL"
strNValue14 = "PackageName"
strNValue15 = "LastUsedSource"
strNValue16 = "Uninstallable"
strNValue17 = "DisplayName"
strNValue18 = "Installed"
 
If WScript.arguments.count <> 1 Then
   WScript.echo "Usage: cscript " & WScript.scriptname & " outputfilename.txt"
   WScript.quit
End If
 
'--Setup the output file
Set fso = CreateObject("Scripting.FileSystemObject")
Set txtFile = fso.OpenTextFile(WScript.arguments(0), ForWriting, True)
If err.number <> 0 Then
    WScript.echo "Error 0x" & myHex(err.number,8) & ": " & err.source & " - " & err.description
    WScript.quit
End If
 
txtFile.writeline "Products installed on the local system"
txtFile.writeline " "
txtFile.writeline " "
 
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = WScript.CreateObject("WScript.Shell")
 
'--Set up the registry provider.
Set objReg = GetObject("winmgmts:\\" & strComputer & _
"\root\default:StdRegProv")
 
Set wiInstaller = CreateObject("WindowsInstaller.Installer")
 
'--Enumerate the "installer\products" key on HKCR
objReg.EnumKey HKCR, strKeyPath, arrSubKeys
 
For Each strSubKey In arrSubKeys
 
' Define the various registry paths
strProduct01 = "Installer\Products\" & strSubKey
strKeyPath02 = "Installer\Products\" & strSubKey & "\SourceList"
strKeyPath03 = "Installer\Products\" & strSubKey & "\SourceList\Media"
strInstallSource = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\" & strSubKey & "\InstallProperties\"
strInstallSource2 = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\" & strSubKey & "\patches\"
strInstallSource3 = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Patches"
strInstallSource5 = "SOFTWARE\Classes\Installer\Patches\"
strInstallSource6 = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
strInstallSource7 = "SOFTWARE\Microsoft\Microsoft SQL Server\"
strInstallSource8 = "SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\"
 
' Pull the intial values
objReg.GetStringValue HKCR, strProduct01, strNValue00, strRetValue00
objReg.GetStringValue HKCR, strKeyPath02, strNValue01, strRetValue01
objReg.GetStringValue HKCR, strKeyPath02, strNValue02, strRetValue02
strRetValNew02 = Mid(strRetValue02, 5)
objReg.GetStringValue HKCR, strKeyPath03, strNValue09, strRetValue09
strRetValue10 = strNewRTMSource & strRetValue09
objReg.GetStringValue HKLM, strInstallSource, strNValue03, strRetValNew03
objReg.GetStringValue HKLM, strInstallSource, strNValue04, strRetValNew04
objReg.GetStringValue HKLM, strInstallSource, strNValue05, strRetValNew05
objReg.GetStringValue HKLM, strInstallSource, strNValue06, strRetValNew06
objReg.GetStringValue HKLM, strInstallSource, strNValue07, strRetValNew07
objReg.GetStringValue HKLM, strInstallSource, strNValue10, strRetValNew10
objReg.GetStringValue HKLM, strInstallSource, strNValue12, strRetValNew12
objReg.GetStringValue HKLM, strInstallSource, strNValue13, strRetValNew13
objReg.GetStringValue HKLM, strInstallSource2, strNValue11, strRetValNew11
 
' Pull the Product Code from the Uninstall String
strProdCode = strRetValNew07
  ProdCodeLen = Len(strProdCode)
  ProdCodeLen = ProdCodeLen - 14
strRetValNew08 = Right(strProdCode, ProdCodeLen)
 
' Pull out path from LastUsedSource
strGetRealPath = strRetValue02
  GetRealPath = Len(strRetValue02)
strRealPath = Mid(strRetValue02, 5, GetRealPath)
 
' Identifie the string in the ProductName
If instr(1, strRetValue00, strSQLName, 1) Then
' Start the log output
    txtFile.writeline "================================================================================"
    txtFile.writeline "PRODUCT NAME   : " & strRetValue00
    txtFile.writeline "================================================================================"
    txtFile.writeline "  Product Code: " & strRetValNew08
    txtFile.writeline "  Version     : " & strRetValNew05
    txtFile.writeline "  Most Current Install Date: " & strRetValNew06
    txtFile.writeline "  Target Install Location: "  & strRetValNew13
    txtFile.writeline "  Registry Path: "
    txtFile.writeline "   HKEY_CLASSES_ROOT\" & strKeyPath02
    txtFile.writeline "     Package    : " & strRetValue01
    txtFile.writeline "  Install Source: " & strRetValue10
    txtFile.writeline "  LastUsedSource: " & strRetValue02
'   txtFile.writeline "Does this file on this path exist? " & strRetValNew02 & "\" & strRetValue01
    If fso.fileexists(strRetValNew02 & "\" & strRetValue01) Then
    txtFile.writeline  " "
        txtFile.writeline "    " & strRetValue01 & " exists on the LastUsedSource path, no actions needed."
    Else
        txtFile.writeline " "
        txtFile.writeline " !!!! " & strRetValue01 & " DOES NOT exist on the path in the path " & strRealPath & " !!!!"
        txtFile.writeline " "
        txtFile.writeline " Action needed, re-establish the path to " & strRealPath
' Placeholder for altering the LastUsedSource by adding source location and Forcing search of list
'        If strNewSource <> "" Then
'        txtFile.writeline "      New Install Source Path Added: " & strNewSource
'        wiInstaller.AddSource strRetValNew08, "", strNewSource
'        Else
'        If strNewRTMSource <> "" Then
'        wiInstaller.AddSource strRetValNew08, "", strNewRTMSource
'        txtFile.writeline "      Forcing SourceList Resolution For: " & strRetValNew08
'        wiInstaller.ForceSourceListResolution strRetValNew08, ""
'        End If
'        End If
    End If
        txtFile.writeline " "
        txtFile.writeline "Installer Cache File: " & strRetValNew04
    If fso.fileexists(strRetValNew04) Then
        txtFile.writeline " "
        txtFile.writeline "    Package exists in the Installer cache, no actions needed."
        txtFile.writeline "    Any missing packages will update automatically if needed assuming that"
        txtFile.writeline "    the LastUsedSource exists."
        txtFile.writeline " "
        txtFile.writeline "    Should you get errors about " & strRetValNew04 & " or " & strRealPath & strRetValue01 & " then you"
        txtFile.writeline "    may need to manually copy the file, if file exists replace the problem file, " 
        txtFile.writeline "    Copy and paste the following command line into an administrative command prompt:"
        txtFile.writeline " "
        txtFile.writeline "     Copy " & chr(34) & strRealPath  & strRetValue01 & chr(34) & " " &strRetValNew04
        txtFile.writeline " "
    ElseIf fso.fileexists(strRetValNew02 & "\" & strRetValue01) Then
              fso.CopyFile strRetValNew02 & "\" & strRetValue01, strRetValNew04
        If fso.fileexists(strRetValNew04) Then
          txtFile.writeline " "
          txtFile.writeline "     Missing cache file replaced by copying " & strRealPath  & strRetValue01 & " to " & strRetValNew04
          txtFile.writeline "     Previously missing package " & strRetValNew04 &  " now exists in the Installer cache."
          txtFile.writeline " "
        End If
    Else
        txtFile.writeline " "
        txtFile.writeline " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
        txtFile.writeline " !!!! " & strRetValNew04 & " DOES NOT exist in the Installer cache. !!!!"
        txtFile.writeline " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
        txtFile.writeline " "
        txtFile.writeline "     Action needed, recreate or re-establish path to the directory:"
        txtFile.writeline "       " & strRealPath & "then rerun this script to update installer cache and results"
        txtFile.writeline "     The path on the line above must exist at the root location to resolve"
        txtFile.writeline "     this problem with your msi/msp file not being found or corrupted,"
        txtFile.writeline "     In some cases you may need to manually copy the missing file or manually"
        txtFile.writeline "     replace the problem file overwriting it is exist: " 
        txtFile.writeline " "
        txtFile.writeline "     Copy " & chr(34) & strRealPath  & strRetValue01 & chr(34) & " " &strRetValNew04
        txtFile.writeline " "
        txtFile.writeline "     Replace the existing file if prompted to do so."
        txtFile.writeline " "
    End If
    txtFile.writeline " "
    txtFile.writeline strRetValue00 & " Patches Installed "
    txtFile.writeline "--------------------------------------------------------------------------------"
 
    err.clear
    objReg.EnumKey HKLM, strInstallSource2, arrSubKeys2
    uUpperBounds = UBound(arrSubKeys2,1)
     If err.number = 0  Then
        For Each strSubKey2 in arrSubKeys2
    '    WScript.echo "value = " & strSubKey2
 
strKeyPath04 = "Installer\Patches\" & strSubKey2 & "\SourceList"
 
     objReg.GetDWORDValue HKLM, strInstallSource2 & "\" & strSubKey2 & "\", strNValue16, strRetValue16
     objReg.GetStringValue HKCR, strKeyPath04, strNValue15, strRetValue15a
     objReg.GetStringValue HKCR, strKeyPath04, strNValue14, strRetValue14a
     objReg.GetStringValue HKCR, strKeyPath02, strNValue15, strRetValue15b
     objReg.GetStringValue HKCR, strKeyPath02, strNValue14, strRetValue14b
     objReg.GetStringValue HKLM, strInstallSource2 & "\" & strSubKey2 & "\", strNValue17, strRetValue17
     objReg.GetStringValue HKLM, strInstallSource2 & "\" & strSubKey2 & "\", strNValue18, strRetValue18
     objReg.GetStringValue HKLM, strInstallSource2 & "\" & strSubKey2 & "\", strNValue13, strRetValue13a
     objReg.GetStringValue HKLM, strInstallSource3 & "\" & strSubKey2 & "\", strNValue04, strRetValue04a
 
' Pull the URL from the MoreInfoURL String
strMoreInfoURL = strRetValue13a
  MoreInfoURLLen = Len(strMoreInfoURL)
strRetValue13b = Right(strMoreInfoURL, 42)
 
' Pull the URL from the LastUsedPath String
strLastUsedPath = strRetValue15a
  LastUsedPathLen = Len(strLastUsedPath)
  'LastUsedPathLen = LastUsedPathLen - 15
strRetValue15c = Mid(strLastUsedPath, 5)
 
      txtFile.writeline " Display Name:    " & strRetValue17 
      txtFile.writeline " KB Article URL:  " & strRetValue13b
      txtFile.writeline " Install Date:    " & strRetValue18 
              txtFile.writeline "   Uninstallable:   " & strRetValue16 
      txtfile.writeline " Patch Details: "
      txtFile.writeline "   HKEY_CLASSES_ROOT\Installer\Patches\" & strSubKey2
              txtFile.writeline "   PackageName:   " & strRetValue14a
' Determine if someone has modified the Uninstallable state from 0 to 1 allowing possible unexpected uninstalls
              txtFile.writeline "    Patch LastUsedSource: " & strRetValue15a 
              txtFile.writeline "   Installer Cache File Path:     " & strRetValue04a 
        txtFile.writeline "     Per " & strInstallSource3 & "\" & strSubKey2 & "\" & strNValue04
              mspFileName = (strRetValue15c  & strRetValue14a)
      If strRetValue14a <> "" Then
      If fso.fileexists(strRetValue04a) Then
        txtFile.writeline " "
        txtFile.writeline "    Package exists in the Installer cache, no actions needed."
        txtFile.writeline "    Package will update automatically if needed assuming that"
        txtFile.writeline "    the LastUsedSource exists."
        txtFile.writeline " "
        txtFile.writeline "    Should you get errors about " & strRetValue04a & " or " & strRetValue15c  & strRetValue14a & " then you"
        txtFile.writeline "    may need to manually copy missing files, if file exists replace the problem file, " 
        txtFile.writeline "    Copy and paste the following command line into an administrative command prompt."
        txtFile.writeline " "
        txtFile.writeline "     Copy " & chr(34) & strRetValue15c  & strRetValue14a & chr(34) & " " & strRetValue04a
        txtFile.writeline " "
      ElseIf fso.fileexists(mspFileName) Then
              fso.CopyFile mspFileName, strRetValue04a
          If fso.fileexists(strRetValue04a) Then
          txtFile.writeline " "
          txtFile.writeline " Missing cache file replaced by copying " & strRetValue15c  & strRetValue14a & " to " & strRetValue04a
          txtFile.writeline " Previously missing package " & strRetValNew04 &  " now exists in the Installer cache."
          txtFile.writeline " "
          End If
'        End If
      Else
        txtFile.writeline " "
        txtFile.writeline "!!!! " & strRetValue04a & " package DOES NOT exist in the Installer cache. !!!!"
        txtFile.writeline " "
        txtFile.writeline "     Action needed, recreate or re-establish path to the directory:"
        txtFile.writeline "       " & strRetValue15c & " then rerun this script to update installer cache and results"
        txtFile.writeline "     The path on the line above must exist at the root location to resolve"
        txtFile.writeline "     this problem with your msi/msp file not being found or corrupted,"
        txtFile.writeline "     In some cases you may need to manually copy missing files or manually"
        txtFile.writeline "     replace the problem file, " 
        txtFile.writeline " "
        txtFile.writeline "     Copy " & chr(34) & strRetValue15c  & strRetValue14a & chr(34) & " " & strRetValue04a
        txtFile.writeline " "
        txtFile.writeline "     Replace the existing file if prompted to do so."
        txtFile.writeline " "
        txtFile.writeline "     Use the following URL to assist with downloading the patch:"
        txtFile.writeline "      " & strRetValue13b
        txtFile.writeline " "
        txtFile.writeline " "
      End If
       Else
        txtFile.writeline " "
     End If
        next
     Else
        txtfile.writeline " "
        txtfile.Writeline "  No Patches Found"
        txtfile.writeline " "
    End If
 
    End If
 
 
Next
txtFile.Close
Set txtFile = Nothing
Set fso = Nothing

Propiedades

Id. de artículo: 969052 - Última revisión: lunes, 03 de marzo de 2014 - Versión: 18.0
La información de este artículo se refiere a:
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Enterprise Evaluation
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Express with Advanced Services
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Standard Edition for Small Business
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2008 R2 Express with Advanced Services
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Standard Edition for Small Business
  • Microsoft SQL Server 2008 R2 Web
  • Microsoft SQL Server 2008 R2 Workgroup
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Evaluation Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Express Edition with Advanced Services
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Web
Palabras clave: 
kbtshoot kbexpertiseinter kbprb kbsurveynew kbmt KB969052 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 969052

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com