Como restaurar os arquivos ausentes de cache do Windows Installer e resolver problemas que ocorrem durante uma atualização do SQL Server

Traduções deste artigo Traduções deste artigo
ID do artigo: 969052 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas


O processo descrito neste artigo é fornecer apenas alívio de emergência e correção permanente não. Os clientes que usam esse processo de emergência devem validar seu Cache do Windows Installer usando o Pacote do Windows Installer Cache verificador conforme indicado no artigo do KB 2667628.

Quando você tenta instalar um service pack do Microsoft SQL Server ou uma atualização cumulativa, você pode encontrar as seguintes mensagens de erro que podem indicar problemas de Cache do Windows Installer. Cache do Windows Installer, localizado na pasta c:\Windows\Installer. , armazena importantes arquivos para aplicativos instalados usando a tecnologia do Windows Installer e não devem ser excluídos. Se o cache do installer foi comprometido, você pode não imediatamente consulte problemas até que você execute uma ação como desinstalar, reparar ou atualizar o SQL Server.

Ao instalar o SQL Server o Windows Installer armazena importantes arquivos são armazenados no Cache do Windows Installer (o padrão é c:\Windows\Installer.). Esses arquivos são necessários para desinstalar e atualizar aplicativos. Não não possível copiar arquivos ausentes entre máquinas, uma vez que eles são exclusivos.

A Microsoft recomenda que para instalações do SQL Server você primeiro usar o processo de reparação indicado neste artigo para verificar sua instalação atual:
Observação As seguintes mensagens de erro podem ser encontradas como mensagens de texto no log de eventos ou nos logs de instalação que estão localizados em uma das seguintes pastas e indicam que você deve reparar sua instância afetada sendo continuar:
  • Para o SQL Server 2008 e 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 o SQL 2005 (todas as ramificações)
Recolher esta tabelaExpandir esta tabela
Versão do produtoMensagem de erro quando o Installer Package (MSI) está ausenteMensagem de erro quando o instalador Cache pacote (MSP) está ausente
SQL Server 2005
1636 Não é possível instalar o arquivo MSI do Windows Installer
1636 Não é possível instalar o arquivo MSP do Windows Installer
ObservaçãoVocê deve revisar os arquivos de log da instalação para identificar se os arquivos de cache estão ausentes. Para obter mais informações sobre como fazer isso, vá para a seção "Resolução".

Para o SQL Server 2008 SP1
Recolher esta tabelaExpandir esta tabela
Versão do produtoMensagem de erro quando o Installer Package (MSI) está ausenteMensagem de erro quando o instalador Cache pacote (MSP) está ausente
SQL Server 2008 SP1Nenhuma mensagem de erro
TÍTULO: Falha o programa de instalação do SQL Server.
------------------------------
O programa de instalação do SQL Server encontrou o seguinte erro: O arquivo de patch não pode ser aberto. O arquivo é: c:\WINNT\Installer\1cf506f.msp. Código de erro 0x84B20001.
------------------------------
Para o SQL Server 2008 SP3 somente compilação (ramificações CU/GDR não são aplicáveis)
Recolher esta tabelaExpandir esta tabela
Versão do produtoMensagem de erro quando o Installer Package (MSI) está ausenteMensagem de erro quando o instalador Cache pacote (MSP) está ausente
SP3 do SQL Server 2008
O arquivo MSI em cache 'C:\Windows\Installer\2775c8.msi' está faltando. Seu arquivo original é 'sql_engine_core_inst.msi' e foi instalado para o produto 'Microsoft SQL Server 2008 banco de dados de serviços do mecanismo de'<network path="">', versão '10.3.5500.0' Idioma 'ENU'.</network>
Está faltando o arquivo de patch em cache "C:\Windows\Installer\19b19196.msp". O arquivo original para o arquivo em cache é "sql_engine_core_inst.msp", que pode ser instalado de "versão do Service Pack 3 para o SQL Server 2008 (KB2546951) (64 bits)", 10.3.5500.0
Observação Você recebe a seguinte mensagem de erro quando você executa uma atualização:
Recolher esta imagemExpandir esta imagem
Erro do SQL Server


Para o SQL Server 2008 R2 SP1 somente (não são aplicáveis as ramificações CU/GDR)
Recolher esta tabelaExpandir esta tabela
Versão do produtoMensagem de erro quando o Installer Package (MSI) está ausenteMensagem de erro quando o instalador Cache pacote (MSP) está ausente
SQL Server 2008 R2 SP1
TÍTULO: Falha o programa de instalação do SQL Server.
------------------------------
O programa de instalação do SQL Server encontrou o seguinte erro: C:\Windows\Installer\932b909.msi.
------------------------------
Está faltando o arquivo de patch em cache "C:\Windows\Installer\105441.msp". O arquivo original para o arquivo em cache é "sql_engine_core_inst_loc.msp", que podem ser instalados do "Service Pack 1 para SQL Server 2008 R2 (KB2528583) (64 bits)", versão 10.51.2500.0.
Observação Você recebe a seguinte mensagem de erro quando você executa uma atualização:
Recolher esta imagemExpandir esta imagem
Erro do SQL Server


Para o SQL Server 2008 R2 SP2
Recolher esta tabelaExpandir esta tabela
Versão do produtoMensagem de erro quando o Installer Package (MSI) está ausenteMensagem de erro quando o instalador Cache pacote (MSP) está ausente
SQL Server 2008 R2 SP1
O arquivo MSI em cache 'C:\Windows\Installer\932b909.msi' está faltando. Seu arquivo original é 'sql_engine_core_inst.msi' e foi instalado para o produto 'SQL Server 2008 R2 SP1 banco de dados de serviços do mecanismo de'<network path="">', versão '10.51.2500.0' Idioma 'ENU'.</network>
Está faltando o arquivo de patch em cache "C:\Windows\Installer\105441.msp". O arquivo original para o arquivo em cache é "sql_engine_core_inst_loc.msp", que podem ser instalados do "Service Pack 1 para SQL Server 2008 R2 (KB2528583) (64 bits)", versão 10.51.2500.0.
Observação Você recebe a seguinte mensagem de erro quando você executa uma atualização:
Recolher esta imagemExpandir esta imagem
Erro do SQL Server


Para o SQL Server 2012 antes de CU2
Não há nenhuma mensagem para saber se faltam arquivos MSP ou MSI. No entanto, o código de erro 1714 é registrado no log do programa de instalação.

No arquivo Summary. txt:
Nome do componente: arquivos de suporte de instalação do SQL Server
Código de erro do componente: 1714

No arquivo Detail txt:
<Date><Time>SLP: Sco: arquivo 'd:\2d5feb4dd893c4adee47f15661ac\1033_ENU_LP\x64\setup\sqlsupport_msi\x64\SqlSupport.msi' não existe
<Date><Time>SLP: Sco: arquivo 'd:\2d5feb4dd893c4adee47f15661ac\1033_ENU_LP\x64\setup\sqlsupport_msi\x64\SqlSupport.msi' não existe
<Date><Time>SLP: Ponto de verificação: PREINSTALL_SQLSUPPORT_CPU64_ACTION
<Date><Time>SLP: Sco: tentativa de criar a chave do registro base HKEY_LOCAL_MACHINE, máquina<Server name="">
<Date><Time>SLP: Sco: tentativa de abrir a subchave do registro Software\Microsoft\Windows\CurrentVersion\Installer
<Date><Time>SLP: Sco: tentativa de obter o valor do registro InstallerLocation
<Date><Time>SLP: Windows installer versão: 5.0.7601.17514
<Date><Time>SLP: Sco: aguardando o serviço 'msiserver' aceitar a solicitação de parada.
<Date><Time>SLP: Sco: tentativa de abrir o Gerenciador de SC
<Date><Time>SLP: Sco: tentativa de abrir o identificador do serviço para o serviço msiserver
<Date><Time>SLP: Chamando a API do Win32 de QueryServiceStatus
<Date><Time>SLP: Sco: tentativa de fechar o identificador do serviço para o serviço msiserver
<Date><Time>SLP: Sco: tentativa de fechar SC Manager
<Date><Time>SLP: Pacote de destino: "d:\2d5feb4dd893c4adee47f15661ac\1033_ENU_LP\x64\setup\sqlsupport_msi\SqlSupport.msi"
<Date><Time>SLP: Erro MSI: 1714 não é possível remover a versão antiga de instalação do Microsoft SQL Server 2012 (em inglês). Entre em contato com seu grupo de suporte técnico.
<Date><Time>SLP: InstallPackage: MsiInstallProduct retornou o código de resultado 1603.
<Date><Time>SLP: Usando o código de erro MSI para detectar a opção Repetir: 1714
<Date><Time>SLP: Nenhum MSI capaz de repetir retornar 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 (e subseqüentes CU ou SP)
Recolher esta tabelaExpandir esta tabela
Versão do produtoMensagem de erro quando o Installer Package (MSI) está ausenteMensagem de erro quando o instalador Cache pacote (MSP) está ausente
SQL Server 2008 R2 SP1
O arquivo MSI em cache ' C:\Windows\Installer\<file_encoded_name>. msi ' está faltando. Seu arquivo original é ' C:\Windows\Installer\sql_<featurename>. msi '}' e foi instalado para o produto ' do Microsoft SQL Server <version>' de 'C:\originalfolder', versão '<versionnumber>', idioma '<language>'.</language> </versionnumber> </version> </featurename> </file_encoded_name>
Está faltando o arquivo de patch em cache "c:\Windows\Installer\1fdb1aec.msp". Seu arquivo original é "sql_engine_core_inst.msp", que podem ser instalados do arquivo de patch em cache uma versão "Hotfix 2316 para SQL Server 2012 (KB2679368) (64 bits)," 11.00.2100.60.The "C:\Windows\Installer\<file_encoded_name>. msp ' está faltando. Seu arquivo original é ' C:\Windows\Installer\sql_<featurename>. msp '}', que podem ser instalados do ' Hotfix <number>para o SQL Server 2012 <KB number="">', versão '<versionnumber>'.</versionnumber> </KB> </number> </featurename> </file_encoded_name>

Causa

Esses problemas podem ocorrer quando o arquivo de banco de dados do Windows Installer (. msi) ou o arquivo de patch do Windows Installer (. msp) estiver faltando na cache do Windows Installer. Cache do Windows Installer está localizado na seguinte pasta:
%windir%\Installer
Quando um produto é instalado usando o Windows Installer, uma versão separada do arquivo. msi original é armazenada em cache do Windows Installer. Todas as atualizações do produto, como um hotfix, uma atualização cumulativa ou uma instalação do service pack, também armazena o arquivo. msi ou. msp relevantes na cache do Windows Installer.

Qualquer atualização futura do produto, como um hotfix, uma atualização cumulativa ou uma instalação do service pack, depende das informações nos arquivos que são armazenados no cache do Windows Installer. Sem essas informações, a nova atualização não é possível realizar as transformações necessárias.

Resolução

Para resolver esses problemas, use um dos seguintes procedimentos.

Procedimento 1: Usar um script

Para concluir as etapas neste procedimento, você precisa copiar o Script de FindSQLInstalls.vbs na seção "Mais informações" para uma pasta local no computador onde você está tentando atualizar a instalação do SQL Server.

Observação O script FindSQLInstalls.vbs coleta as informações para corrigir caminhos de pacote inválido. E, esse script é usado contra os locais de origem para certificar-se de que todos os pacotes MSP estão no diretório de cache do Windows Installer. Todos os pacotes ausentes será adicionados novamente se a mídia de origem original estiver disponível.

Para resolver esses problemas usando um script, execute estas etapas:
  1. Localize o diretório em que você salvou o conteúdo do script.
  2. Abra um prompt de comando elevado para o diretório em que você salvou o script e execute o seguinte comando:
    Cscript FindSQLInstalls.vbs %computername%_sql_install_details.txt
  3. Abra o arquivo da etapa 2 em um editor de texto como o bloco de notas e identificar os problemas que estão causando a falha. Para fazer isso, procure o arquivo de texto para padrões de cadeia de caracteres, como a seguir:
    • não
    • !!!
  4. Com base nos resultados na etapa 3, siga as etapas que são necessárias.

    Observação Procure mais informações sobre essas etapas na seção "Exemplos".

  5. Repita as etapas 2 a 4 até que o arquivo de texto criado na etapa 2 não contém mais texto que faz referência a caminhos inválidos ou arquivos ausentes para o componente que está sendo atualizado.

Exemplos

Os exemplos a seguir são entradas e explicações das ações descritas no arquivo de saída que é gerado quando você executar o script FindSQLInstalls.vbs.

Exemplo 1: Faltando arquivos do instalador
A seguir está um exemplo da saída que é gerada quando não tiver um pacote. msi na pasta de cache do 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\

A linha "LastUsedSource" aponta para o local que foi usado para executar o programa de instalação.

Na linha "LastUsedSource", a entrada de m; significa mídia e indica que a fonte original é mídia de CD/DVD.

No exemplo a seguir, a origem é um CD ou um DVD na unidade G. Se a instalação ocorreu a partir de uma pasta de arquivos ou um compartilhamento de rede, a linha começa com uma entrada de n; "LastUsedSource" seguido de uma entrada de Numeric_Data_Name; e, em seguida, o caminho 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\ 

A "ação necessária" linha mostra o caminho completo que deve existir para atualizar os arquivos ausentes para a mídia de instalação original:
Installer Cache File: C:\WINDOWS\Installer\19b4d2.msi 

A linha "Arquivo de Cache do Installer" confirma o nome do arquivo de cache do installer:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!! C:\WINDOWS\Installer\19b4d2.msi DOES NOT exist in the Installer cache. !!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

A seção a seguir da saída aconselha sobre as ações necessárias para resolver os arquivos ausentes:
 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.
Exemplo 2: Patches que faltam
Patches ausentes podem resultar em entradas que pareçam com os do exemplo 1. Na maioria das vezes, você irá notar entradas na linha "Patch LastUsedSource" que fazem referência a um patch e esta linha semelhante à seguinte:
Patch LastUsedSource:   n;1;c:\0ca91e857a4f12dd390f0821a3\HotFixSQL\Files\

Essa saída indica o seguinte sobre a instalação do patch:
  • Instalação do patch original clicando duas vezes no arquivo executável do patch.
  • O installer para o patch usado uma pasta temp, c:\0ca91e857a4f12dd390f0821a3, durante a instalação do patch.
  • Para recriar o caminho, você deve executar o mesmo executável e adicionar o seguinte parâmetro:
    /x:c:\0ca91e857a4f12dd390f0821a3
    Observação Este comando força o executável para extrair os arquivos para o local anterior do ausente, e isso cria novamente a estrutura que é necessária para atualizar o cache do Windows installer com os arquivos ausentes. O local real irá variar, e pode ter um único patch como um service pack sejam extraídos para vários locais. Cada produto instalado inclui uma seção que contém as seguintes informações para "Patches instalados":
    Display name:
    KB Article URL:  http://support.microsoft.com/?kbid=<value>
    Patch LastUsedSource: 

    A linha "URL do artigo KB" pode ajudá-lo a fazer o download de qualquer mídia de patch, caso isso seja necessário.

Procedimento 2: Restaurar os arquivos manualmente

Para restaurar manualmente os arquivos que não estão presentes no cache do Windows Installer, execute estas etapas:
  1. Colete os detalhes completos sobre o arquivo que está faltando na mensagem de erro, o arquivo de log de instalação ou as entradas de registro são mantidas pelo Windows Installer. Por exemplo, na mensagem de erro 1 na seção "Sintomas", todas as informações necessárias para resolver o problema estão presentes na mensagem de erro:
    • PatchName: "Hotfix 1702 para SQL Server 2008 R2 (KB981355) (64 bits)"
    • Arquivo MSP original que é usado pelo Patch: sql_engine_core_inst.msp
    • Arquivo MSP em cache: c:\Windows\Installer\1fdb1aec.msp
  2. Se você não tiver todos os detalhes, consulte o "obter mais informações para a seção 2" procedimentos para obter as etapas coletar esses detalhes.
  3. Visite http://support.microsoft.come procure o artigo do KB que está associado com esse patch. Neste exemplo, você deve procurar por KB981355.
  4. Baixe este pacote de patch em seu computador. Certifique-se de que você baixe o pacote do patch que corresponde à plataforma necessária. Neste exemplo, o pacote é SQLServer2008R2-KB981355-x64.exe.
  5. Extraia o conteúdo do pacote do patch, usando a seguinte sintaxe:
    C:\Temp>SQLServer2008R2-KB981355-x64.exe /x C:\Temp\SQLServer2008R2-KB981355-x64\
  6. Localize o arquivo de sql_engine_core_inst.msp de arquivo msp original. O arquivo deve estar na seguinte pasta:
    C:\Temp\SQLServer2008R2-KB981355-x64\x64\setup\sql_engine_core_inst_msi\
  7. Copie esse arquivo msp original cache do Windows Installer a seguir:
    %windir%\installer\
  8. Renomeie o arquivo msp original, sql_engine_core_inst.msp, para o seguinte nome:
    1fdb1aec.msp de arquivo msp em cache

Você pode iniciar o programa de instalação para a atualização que causou o erro e continuar o processo de atualização. Você pode encontrar esta mensagem para um arquivo de cache do Windows Installer ausente para outro componente ou para outra atualização do mesmo produto.

Para obter uma lista de todos os ausentes do Windows Installer cache arquivos que estão relacionados a componentes de produto do SQL Server, você pode baixar a ferramenta BPA do SQL Server 2008 R2 que é mencionada na seção "Mais informações".

Se a mensagem de erro fizer referência a um arquivo de banco de dados ausente do Windows Installer (. msi), você não precisa executar as etapas 2 a 4. Em vez disso, você pode ir diretamente para a etapa 5. Você terá que localizar o arquivo. msi a partir da mídia original que você usou para instalar o produto. Se essa mensagem de erro foi gerada por sql_engine_core_inst.msi, você deve localizar esse arquivo da mídia de instalação sob a seguinte estrutura de pastas:
\x64\setup\sql_engine_core_inst_msi\
As outras etapas são as mesmas.

Para obter mais informações para o procedimento 2

Como localizar o pacote de patch e os detalhes do produto para um arquivo. msp está faltando
Versões diferentes do produto geram mensagens de erro diferentes para esse problema. As mensagens de erro mencionadas na seção "Sintomas" aparecem para programas de instalação para atualizações a partir do Microsoft SQL Server 2008 SP1. Você recebe mensagens de erro podem não especificar claramente qual arquivo de patch estiver faltando na cache do Windows Installer e os detalhes de atualização específica para outras atualizações. Para essas mensagens de erro, os arquivos de log do programa de instalação irá conter informações sobre o arquivo de cache do Windows Installer está faltando. Um log de instalação de exemplo semelhante à seguinte:
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

Se você examinar o log de instalação cuidadosamente, ele já oferece as informações sobre o arquivo MSP Original que foi usada pelo seguinte patch:
sqlrun_sql.msp


Para obter mais detalhes sobre o arquivo. msp está faltando na cache do Windows Installer, execute estas etapas:
  1. Procure o arquivo. msp está faltando na seguinte subchave do registro de Patches do Windows Installer:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Patches\
  2. Localize o GUID do Patch.
  3. Procurar o GUID do Patch na seguinte subchave de registro de produtos do Windows Installer:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\
Para o log de instalação de exemplo, as informações sobre o arquivo. msp está faltando e seus detalhes de patch correspondente estão presentes nas entradas de registro a seguir:

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

Valor: 0
Nome: LocalPackage
Dados: C:\WINDOWS\Installer\145258.msp

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\1EB3A031CC585314E87AA527E46EECC2\Patches\A3B085EA74A9A7640A496636F7EF9A44
Valor: 6
Nome: DisplayName
Dados: GDR 2050 para serviços de banco de dados do SQL Server 2005 ENU (KB932555)

Agora você tem todos os pontos de informações para iniciar as etapas para resolver os arquivos ausentes no cache do Windows Installer.

Observação Se você usar o Microsoft SQL Server 2008 Service Pack 3 (SP3) ou posterior, você também pode receber uma mensagem de erro semelhante para os arquivos. msi ausente. Usando essa mensagem de erro, você pode determinar rapidamente qual arquivo está faltando, que service pack para download, e onde você pode encontrar o download.

Para obter mais informações sobre como obter o service pack, clique no número abaixo para ler o artigo na Base de dados de Conhecimento Microsoft:
2546951 Lista de bugs corrigidos no SQL Server 2008 Service Pack 3

Mais Informações

Para obter mais informações sobre arquivos de banco de dados (. msi) do Windows Installer, visite o seguinte site da Microsoft Developer Network (MSDN):
Banco de dados do instalador
Para obter mais informações sobre arquivos de (arquivo. msp) do patch do Windows Installer, visite o seguinte site da MSDN:
Pacotes de patch
Para obter mais informações sobre os detalhes internos do cache do Windows Installer, consulte o seguinte blog do MSDN:
Cache do Windows Installer
Para obter mais informações sobre o processo de aplicação de patches, consulte o seguinte blog do MSDN:
Como funciona a aplicação de patches
Para obter mais informações sobre como garantir que você armazena em cache o arquivo de correção para a plataforma correta, consulte o seguinte blog do MSDN:
Solicita que o programa de instalação do SQL Server com "o produto instalado não corresponde a fonte de instalação"
Para obter mais informações sobre por que qualquer produto que usa o Windows Installer pode encontrar esse problema, consulte o seguinte blog do MSDN:
Recriar o Cache do instalador
Para obter mais informações sobre os detalhes sobre conjuntos diferentes de mensagens de erro que aparecem nos arquivos de log de instalação, consulte o seguinte blog do MSDN:
Parte - 1: Falha de Patch do SQL Server 2005 instalar com um erro "não é possível instalar o Windows Installer MSP arquivo"


Para obter mais informações sobre os produtos e ferramentas que verificam automaticamente a essa condição na sua instância do SQL Server e sobre as versões do produto SQL Server, consulte a tabela a seguir:
Recolher esta tabelaExpandir esta tabela
Software de regraTítulo de regraDescrição da regraVersões do produto em relação à qual a regra será avaliada
SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA)Configuração - cache Installer está ausente para a instalação do SQLO SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA) fornece uma regra para detectar o arquivo de cache do instalador ausente para os componentes do SQL Server. A ferramenta BPA do SQL Server 2008 R2 oferece suporte ao SQL Server 2008 e do SQL Server 2008 R2. Se você executar a ferramenta BPA e encontrar um erro com o título da instalação - cache Installer está ausente para a instalação do SQL e, em seguida, os arquivos de cache estão ausentes na pasta de cache.SQL Server 2008
SQL Server 2008 R2
Analisador de práticas recomendadas (BPA do SQL Server 2012) do SQL Server 2012Configuração - cache Installer está ausente para a instalação do SQLO SQL Server 2012 Best Practice Analyzer (SQL Server 2012 BPA) fornece uma regra para detectar o arquivo de cache do instalador ausente para os componentes do SQL Server.Se você executar a ferramenta BPA e encontrar um erro com o título da instalação - cache Installer está ausente para a instalação do SQL e, em seguida, os arquivos de cache estão ausentes na pasta de cache.SQL Server 2012



Script de 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

Propriedades

ID do artigo: 969052 - Última revisão: terça-feira, 22 de outubro de 2013 - Revisão: 13.0
A informação contida neste artigo aplica-se 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
Palavras-chave: 
kbtshoot kbexpertiseinter kbprb kbsurveynew kbmt KB969052 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.
Clique aqui para ver a versão em Inglês deste artigo: 969052

Submeter comentários

 

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